(*
   $Id$
   ISO TC184/SC4/WG12 N3769 - ISO/WD 10303-1455 Transformation order - EXPRESS ARM
*) 

SCHEMA Transformation_order_arm;
  USE FROM Product_view_definition_arm;
  USE FROM Order_condition_arm;
  USE FROM Input_output_arm;
  USE FROM Transformation_arm;
  ENTITY Transformation_order
    SUBTYPE OF (Product_view_definition);
    transformation_ordered : Transformation_view_definition;
  END_ENTITY;

  ENTITY Transformation_invocation
    SUBTYPE OF (Transformation_order);
  END_ENTITY;

  ENTITY Transformation_order_levels
    SUBTYPE OF (Transformation_order);
    alternatives : LIST [2:?] OF Transformation_order;
    notes : OPTIONAL LIST [1:?] OF Abvisory_transformation_step;
  END_ENTITY;

  ENTITY Transformation_step
    SUBTYPE OF (Transformation_order);
    description : STRING;
  END_ENTITY;

  ENTITY Abvisory_transformation_step
    SUBTYPE OF (Transformation_step);
  END_ENTITY;

  ENTITY End_transformation
    SUBTYPE OF (Transformation_order);
  END_ENTITY;

  ENTITY Exit_loop_transformation_order
    SUBTYPE OF (Transformation_order);
  END_ENTITY;

  ENTITY Structured_transformation_order
    SUBTYPE OF (Transformation_order);
  END_ENTITY;

  ENTITY Transformation_order_sequence
    SUBTYPE OF (Structured_transformation_order);
    order : LIST [2:?] OF Structured_transformation_order;
  END_ENTITY;

  ENTITY Path;
    number_of_paths : REAL;
    path_name : OPTIONAL STRING;
  END_ENTITY;

  ENTITY Concurrent_order
    SUBTYPE OF (Structured_transformation_order);
    includes : LIST [2:?] OF Path;
    order : LIST [2:?] OF Structured_transformation_order;
  END_ENTITY;

  ENTITY And_in
    SUBTYPE OF (Concurrent_order);
  END_ENTITY;

  ENTITY And_out
    SUBTYPE OF (Concurrent_order);
  END_ENTITY;

  ENTITY Looping_order
    SUBTYPE OF (Structured_transformation_order);
    repeated_order : Structured_transformation_order;
  END_ENTITY;

  ENTITY Repeat_count_transformation_order
    SUBTYPE OF (Looping_order);
    count : INTEGER;
  END_ENTITY;

  ENTITY Repeat_until_transformation_order
    SUBTYPE OF (Looping_order);
    condition : Order_condition;
  END_ENTITY;

  ENTITY Repeat_while_transformation_order
    SUBTYPE OF (Looping_order);
    condition : Order_condition;
  END_ENTITY;

  ENTITY Selection
    SUBTYPE OF (Structured_transformation_order);
    condition : Order_condition;
    number_of_paths : LIST [2:?] OF REAL;
  END_ENTITY;

  ENTITY Or_selection
    SUBTYPE OF (Selection);
  END_ENTITY;

  ENTITY Or_out
    SUBTYPE OF (Or_selection);
  END_ENTITY;

  ENTITY Or_in
    SUBTYPE OF (Or_selection, Transformation_selection);
  END_ENTITY;

  ENTITY Transformation_selection
    SUBTYPE OF (Selection);
  END_ENTITY;

  ENTITY Transformation_out
    SUBTYPE OF (Transformation_view_definition, Transformation_selection);
  END_ENTITY;

END_SCHEMA;
