<!-- ISO 10303-28:2000 PDTS Annex D Base Architecture DTD -->
<!-- DTD elements: total number = 246
Referenced not defined: NIL
Defined not referenced: (iso_10303_28)
Duplicate definitions: NIL
 -->
<!-- Date: Year: 2000, Month:10, Day:27, time 16:14 -->


<!NOTATION base64 PUBLIC "base-64 encoded data">
<!NOTATION hex PUBLIC "hexadecimal digits">
<!NOTATION uri SYSTEM "http://www.w3.org/REC/uri.xml">

<!ELEMENT abs EMPTY>
<!ATTLIST abs 
      express-production CDATA #FIXED "ABS">

<!ELEMENT abstract_supertype 
 ((embedded_remark | tail_remark)?, 
  (entity_ref | supertype_one_of | supertype_and_or | supertype_and)?)>
<!ATTLIST abstract_supertype 
      express-production CDATA #FIXED "abstract_supertype_declaration">

<!ELEMENT acos EMPTY>
<!ATTLIST acos 
      express-production CDATA #FIXED "ACOS">

<!ELEMENT add EMPTY>
<!ATTLIST add 
      express-production CDATA #FIXED "+">

<!ELEMENT aggregate_initializer 
 ((embedded_remark | tail_remark)?, element_list)>
<!ATTLIST aggregate_initializer 
      express-production CDATA #FIXED "aggregate_initializer">

<!ELEMENT aggregate_source 
 ((embedded_remark | tail_remark)?, 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term | simple_expression))>
<!ATTLIST aggregate_source 
      express-production CDATA #FIXED "aggregate_source">

<!ELEMENT aggregate_type 
 ((embedded_remark | tail_remark)?, 
  (aggregate_type | general_array_type | general_bag_type | general_list_type | general_set_type | generic_type | entity_ref | type_ref | binary | boolean | integer | logical | number | real | string), 
  (type_label_id | type_label_ref)?)>
<!ATTLIST aggregate_type 
      express-production CDATA #FIXED "aggregate_type">

<!ELEMENT algorithm_head 
 ((embedded_remark | tail_remark)?, declaration_block?, constant_block?, local_variable_block?)>
<!ATTLIST algorithm_head 
      express-production CDATA #FIXED "algorithm_head">

<!ELEMENT alias_stmt 
 ((embedded_remark | tail_remark)?, variable_id, 
  (parameter_ref | variable_ref), qualifier?, statement_block)>
<!ATTLIST alias_stmt 
      express-production CDATA #FIXED "alias_stmt">

<!ELEMENT and EMPTY>
<!ATTLIST and 
      express-production CDATA #FIXED "AND">

<!ELEMENT applies_to_entities 
 ((embedded_remark | tail_remark)?, entity_ref+)>
<!ATTLIST applies_to_entities 
      express-production CDATA #FIXED "rule_head">

<!ELEMENT array_literal 
 (binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | bag_literal | list_literal | set_literal | array_literal | type_literal | entity_instance | entity_instance_as_group | entity_instance_ref | unset)*>
<!ATTLIST array_literal 
      express_constant_name NMTOKEN #IMPLIED >

<!ELEMENT array_type 
 ((embedded_remark | tail_remark)?, index_spec, base_type, optional?, unique?)>
<!ATTLIST array_type 
      express-production CDATA #FIXED "array_type">

<!ELEMENT asin EMPTY>
<!ATTLIST asin 
      express-production CDATA #FIXED "ASIN">

<!ELEMENT assignment_stmt 
 ((embedded_remark | tail_remark)?, 
  (parameter_ref | variable_ref), qualifier?, 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term | simple_expression | relation_expression))>
<!ATTLIST assignment_stmt 
      express-production CDATA #FIXED "assignment_stmt">

<!ELEMENT atan EMPTY>
<!ATTLIST atan 
      express-production CDATA #FIXED "ATAN">

<!ELEMENT attribute_id 
 (#PCDATA)>
<!ATTLIST attribute_id 
      express-production CDATA #FIXED "attribute_id"
      id ID #IMPLIED >

<!ELEMENT attribute_instance 
 (binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | bag_literal | list_literal | set_literal | array_literal | type_literal | entity_instance | entity_instance_as_group | entity_instance_ref)>
<!ATTLIST attribute_instance 
      express_attribute_name NMTOKEN #REQUIRED 
      express_attribute_type  (explicit | inverse | derived) "explicit">

<!ELEMENT attribute_ref 
 (#PCDATA)>
<!ATTLIST attribute_ref 
      express-production CDATA #FIXED "attribute_ref"
      refid IDREF #IMPLIED 
      reftype CDATA #FIXED "refid (attribute_id)">

<!ELEMENT author 
 (#PCDATA)>

<!ELEMENT authorization 
 (#PCDATA)>

<!ELEMENT bag_literal 
 (binary_literal* | boolean_literal* | integer_literal* | logical_literal* | real_literal* | string_literal* | bag_literal* | list_literal* | set_literal* | array_literal* | type_literal* | 
  (entity_instance | entity_instance_as_group | entity_instance_ref)*)>
<!ATTLIST bag_literal 
      express_constant_name NMTOKEN #IMPLIED >

<!ELEMENT bag_type 
 ((embedded_remark | tail_remark)?, bound_spec?, base_type)>
<!ATTLIST bag_type 
      express-production CDATA #FIXED "bag_type">

<!ELEMENT base_type 
 ((embedded_remark | tail_remark)?, 
  (array_type | bag_type | list_type | set_type | binary | boolean | integer | logical | number | real | string | entity_ref | type_ref))>
<!ATTLIST base_type 
      express-production CDATA #FIXED "base_type">

<!ELEMENT binary 
 ((embedded_remark | tail_remark)?, width_spec?)>
<!ATTLIST binary 
      express-production CDATA #FIXED "binary_type">

<!ELEMENT binary_literal 
 (#PCDATA)>
<!ATTLIST binary_literal 
      empty_bits CDATA #REQUIRED 
      express-production CDATA #FIXED "binary_literal"
      express_constant_name NMTOKEN #IMPLIED 
      external_binary_literal ENTITY #IMPLIED 
      notation  (hex | base64) #IMPLIED >

<!ELEMENT blength EMPTY>
<!ATTLIST blength 
      express-production CDATA #FIXED "BLENGTH">

<!ELEMENT boolean EMPTY>
<!ATTLIST boolean 
      express-production CDATA #FIXED "boolean_type">

<!ELEMENT boolean_literal 
 ((embedded_remark | tail_remark)?, 
  (false | true))>
<!ATTLIST boolean_literal 
      express-production CDATA #FIXED "#NONE"
      express_constant_name NMTOKEN #IMPLIED >

<!ELEMENT bound_spec 
 ((embedded_remark | tail_remark)?, lower_bound, upper_bound)>
<!ATTLIST bound_spec 
      express-production CDATA #FIXED "bound_spec">

<!ELEMENT case_action 
 ((embedded_remark | tail_remark)?, case_label, 
  (alias_stmt | assignment_stmt | case_stmt | statement_block | escape_stmt | if_stmt | null_stmt | procedure_call_stmt | repeat_stmt | return_stmt | skip_stmt))>
<!ATTLIST case_action 
      express-production CDATA #FIXED "case_action">

<!ELEMENT case_label 
 ((embedded_remark | tail_remark)?, 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term | simple_expression | relation_expression)+)>
<!ATTLIST case_label 
      express-production CDATA #FIXED "case_label">

<!ELEMENT case_stmt 
 ((embedded_remark | tail_remark)?, 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term | simple_expression | relation_expression), case_action*, otherwise?)>
<!ATTLIST case_stmt 
      express-production CDATA #FIXED "case_stmt">

<!ELEMENT complex_entity_constructor EMPTY>
<!ATTLIST complex_entity_constructor 
      express-production CDATA #FIXED "||">

<!ELEMENT constant_block 
 ((embedded_remark | tail_remark)?, constant_decl*)>
<!ATTLIST constant_block 
      express-production CDATA #FIXED "constant_decl">

<!ELEMENT constant_decl 
 ((embedded_remark | tail_remark)?, constant_id, base_type, 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term | simple_expression | relation_expression))>
<!ATTLIST constant_decl 
      express-production CDATA #FIXED "constant_body">

<!ELEMENT constant_id 
 (#PCDATA)>
<!ATTLIST constant_id 
      express-production CDATA #FIXED "constant_id"
      id ID #IMPLIED >

<!ELEMENT constant_import 
 ((embedded_remark | tail_remark)?, constant_id, constant_ref)>
<!ATTLIST constant_import 
      express-production CDATA #FIXED "resource_or_rename">

<!ELEMENT constant_ref 
 (#PCDATA)>
<!ATTLIST constant_ref 
      express-production CDATA #FIXED "constant_ref"
      refid IDREF #IMPLIED 
      reftype CDATA #FIXED "refid (constant_id)">

<!ELEMENT const_e EMPTY>
<!ATTLIST const_e 
      express-production CDATA #FIXED "CONST_E">

<!ELEMENT cos EMPTY>
<!ATTLIST cos 
      express-production CDATA #FIXED "COS">

<!ELEMENT data_section_header 
 (documentation?)>

<!ELEMENT declaration_block 
 ((embedded_remark | tail_remark)?, 
  (entity_decl | function_decl | procedure_decl | type_decl)*)>
<!ATTLIST declaration_block 
      express-production CDATA #FIXED "declaration">

<!ELEMENT derived_attr 
 ((embedded_remark | tail_remark)?, 
  (attribute_id | qualified_attribute), base_type, 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term | simple_expression | relation_expression))>
<!ATTLIST derived_attr 
      express-production CDATA #FIXED "derived_attr">

<!ELEMENT derive_clause 
 ((embedded_remark | tail_remark)?, derived_attr+)>
<!ATTLIST derive_clause 
      express-production CDATA #FIXED "derive_clause">

<!ELEMENT documentation 
 (#PCDATA)>

<!ELEMENT document_name 
 (#PCDATA)>

<!ELEMENT domain_rule 
 ((embedded_remark | tail_remark)?, label?, logical_expression)>
<!ATTLIST domain_rule 
      express-production CDATA #FIXED "domain_rule">

<!ELEMENT element_item 
 ((embedded_remark | tail_remark)?, 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term | simple_expression | relation_expression), repetition?)>
<!ATTLIST element_item 
      express-production CDATA #FIXED "element">

<!ELEMENT element_list 
 ((embedded_remark | tail_remark)?, element_item*)>
<!ATTLIST element_list 
      express-production CDATA #FIXED "element">

<!ELEMENT embedded_remark 
 (#PCDATA | embedded_remark)*>
<!ATTLIST embedded_remark 
      express-production CDATA #FIXED "embedded_remark">

<!ELEMENT entity_constructor 
 ((embedded_remark | tail_remark)?, entity_ref, 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term | simple_expression | relation_expression)*)>
<!ATTLIST entity_constructor 
      express-production CDATA #FIXED "entity_constructor">

<!ELEMENT entity_decl 
 ((embedded_remark | tail_remark)?, entity_id, 
  (abstract_supertype | supertype_of)?, subtype_of?, explicit_attr_block?, derive_clause?, inverse_clause?, unique_clause?, where_clause?)>
<!ATTLIST entity_decl 
      express-production CDATA #FIXED "entity_decl">

<!ELEMENT entity_id 
 (#PCDATA)>
<!ATTLIST entity_id 
      express-production CDATA #FIXED "entity_id"
      id ID #IMPLIED >

<!ELEMENT entity_import 
 ((embedded_remark | tail_remark)?, entity_id, entity_ref)>
<!ATTLIST entity_import 
      express-production CDATA #FIXED "resource_or_rename">

<!ELEMENT entity_instance 
 ((inherited_attribute_instance | attribute_instance)*, partial_entity_instance*)>
<!ATTLIST entity_instance 
      express_constant_name NMTOKEN #IMPLIED 
      express_entity_name NMTOKEN #REQUIRED 
      express_schema_name NMTOKEN #IMPLIED 
      id ID #REQUIRED >

<!ELEMENT entity_instance_as_group 
 (partial_entity_instance+)>
<!ATTLIST entity_instance_as_group 
      express_constant_name NMTOKEN #IMPLIED 
      id ID #REQUIRED >

<!ELEMENT entity_instance_ref EMPTY>
<!ATTLIST entity_instance_ref 
      refid IDREF #REQUIRED 
      reftype CDATA #FIXED "refid (entity_instance | entity_instance_as_group | partial_entity_instance | external_refid)">

<!ELEMENT entity_ref 
 (#PCDATA)>
<!ATTLIST entity_ref 
      express-production CDATA #FIXED "entity_ref"
      refid IDREF #IMPLIED 
      reftype CDATA #FIXED "refid (entity_id)">

<!ELEMENT enumeration 
 ((embedded_remark | tail_remark)?, enumeration_id+)>
<!ATTLIST enumeration 
      express-production CDATA #FIXED "enumeration_type">

<!ELEMENT enumeration_id 
 (#PCDATA)>
<!ATTLIST enumeration_id 
      express-production CDATA #FIXED "enumeration_id"
      id ID #IMPLIED >

<!ELEMENT enumeration_ref 
 (#PCDATA)>
<!ATTLIST enumeration_ref 
      express-production CDATA #FIXED "enumeration_ref"
      refid IDREF #IMPLIED 
      reftype CDATA #FIXED "refid (enumeration_id)">

<!ELEMENT enumeration_reference 
 ((embedded_remark | tail_remark)?, type_ref?, enumeration_ref)>
<!ATTLIST enumeration_reference 
      express-production CDATA #FIXED "enumeration_reference">

<!ELEMENT equal EMPTY>
<!ATTLIST equal 
      express-production CDATA #FIXED "=">

<!ELEMENT escape_stmt EMPTY>
<!ATTLIST escape_stmt 
      express-production CDATA #FIXED "escape_stmt">

<!ELEMENT exists EMPTY>
<!ATTLIST exists 
      express-production CDATA #FIXED "EXISTS">

<!ELEMENT exp EMPTY>
<!ATTLIST exp 
      express-production CDATA #FIXED "EXP">

<!ELEMENT explicit_attr 
 ((embedded_remark | tail_remark)?, 
  (attribute_id | qualified_attribute), optional?, base_type)>
<!ATTLIST explicit_attr 
      express-production CDATA #FIXED "explicit_attr">

<!ELEMENT explicit_attr_block 
 ((embedded_remark | tail_remark)?, explicit_attr+)>
<!ATTLIST explicit_attr_block 
      express-production CDATA #FIXED "explicit_attr_block">

<!ELEMENT express_data 
 (data_section_header?, schema_instance)>
<!ATTLIST express_data 
      id ID #REQUIRED 
      name CDATA #IMPLIED 
      representation_category NMTOKEN #IMPLIED >

<!ELEMENT express_schema 
 (schema_decl | schema_text | external_refid)>
<!ATTLIST express_schema 
      express_schema_description CDATA #IMPLIED 
      express_schema_identifier CDATA #IMPLIED 
      express_schema_version CDATA #IMPLIED 
      id ID #IMPLIED >

<!ELEMENT external_refid EMPTY>
<!ATTLIST external_refid 
      xlink:actuate CDATA #IMPLIED 
      xlink:arcrole CDATA #REQUIRED 
      xlink:href CDATA #REQUIRED 
      id ID #REQUIRED 
      xlink:role CDATA #IMPLIED 
      xlink:show CDATA #IMPLIED 
      xlink:title CDATA #IMPLIED 
      xlink:type CDATA #FIXED "simple">

<!ELEMENT factor 
 (raise_to_power, 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op), 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op))>
<!ATTLIST factor 
      express-production CDATA #FIXED "factor">

<!ELEMENT false EMPTY>
<!ATTLIST false 
      express-production CDATA #FIXED "FALSE">

<!ELEMENT fixed EMPTY>
<!ATTLIST fixed 
      express-production CDATA #FIXED "FIXED">

<!ELEMENT formal_parameter 
 ((embedded_remark | tail_remark)?, parameter_id, 
  (aggregate_type | general_array_type | general_bag_type | general_list_type | general_set_type | generic_type | entity_ref | type_ref | binary | boolean | integer | logical | number | real | string))>
<!ATTLIST formal_parameter 
      express-production CDATA #FIXED "formal_parameter">

<!ELEMENT formal_parameter_block 
 ((embedded_remark | tail_remark)?, formal_parameter*)>
<!ATTLIST formal_parameter_block 
      express-production CDATA #FIXED "formal_parameter">

<!ELEMENT format EMPTY>
<!ATTLIST format 
      express-production CDATA #FIXED "FORMAT">

<!ELEMENT function_call 
 ((embedded_remark | tail_remark)?, 
  (abs | acos | asin | atan | blength | cos | exists | exp | format | hibound | hiindex | length | lobound | loindex | log | log2 | log10 | nvl | odd | rolesof | sin | sizeof | sqrt | tan | typeof | usedin | value | value_in | value_unique | function_ref), 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term | simple_expression | relation_expression)*)>
<!ATTLIST function_call 
      express-production CDATA #FIXED "function_call">

<!ELEMENT function_decl 
 ((embedded_remark | tail_remark)?, function_id, formal_parameter_block?, function_return_type, algorithm_head?, statement_block)>
<!ATTLIST function_decl 
      express-production CDATA #FIXED "function_decl">

<!ELEMENT function_id 
 (#PCDATA)>
<!ATTLIST function_id 
      express-production CDATA #FIXED "function_id"
      id ID #IMPLIED >

<!ELEMENT function_import 
 ((embedded_remark | tail_remark)?, function_id, function_ref)>
<!ATTLIST function_import 
      express-production CDATA #FIXED "resource_or_rename">

<!ELEMENT function_ref 
 (#PCDATA)>
<!ATTLIST function_ref 
      express-production CDATA #FIXED "function_ref"
      refid IDREF #IMPLIED 
      reftype CDATA #FIXED "refid (function_id)">

<!ELEMENT function_return_type 
 (aggregate_type | general_array_type | general_bag_type | general_list_type | general_set_type | generic_type | entity_ref | type_ref | binary | boolean | integer | logical | number | real | string)>
<!ATTLIST function_return_type 
      express-production CDATA #FIXED "parameter_type">

<!ELEMENT general_array_type 
 ((embedded_remark | tail_remark)?, 
  (aggregate_type | general_array_type | general_bag_type | general_list_type | general_set_type | generic_type | entity_ref | type_ref | binary | boolean | integer | logical | number | real | string), bound_spec?, optional?, unique?)>
<!ATTLIST general_array_type 
      express-production CDATA #FIXED "general_array_type">

<!ELEMENT general_bag_type 
 ((embedded_remark | tail_remark)?, 
  (aggregate_type | general_array_type | general_bag_type | general_list_type | general_set_type | generic_type | entity_ref | type_ref | binary | boolean | integer | logical | number | real | string), bound_spec?)>
<!ATTLIST general_bag_type 
      express-production CDATA #FIXED "general_bag_type">

<!ELEMENT general_list_type 
 ((embedded_remark | tail_remark)?, 
  (aggregate_type | general_array_type | general_bag_type | general_list_type | general_set_type | generic_type | entity_ref | type_ref | binary | boolean | integer | logical | number | real | string), bound_spec?, unique?)>
<!ATTLIST general_list_type 
      express-production CDATA #FIXED "general_list_type">

<!ELEMENT general_set_type 
 ((embedded_remark | tail_remark)?, 
  (aggregate_type | general_array_type | general_bag_type | general_list_type | general_set_type | generic_type | entity_ref | type_ref | binary | boolean | integer | logical | number | real | string), bound_spec?)>
<!ATTLIST general_set_type 
      express-production CDATA #FIXED "general_set_type">

<!ELEMENT generic_type 
 ((embedded_remark | tail_remark)?, 
  (type_label_id | type_label_ref)?)>
<!ATTLIST generic_type 
      express-production CDATA #FIXED "generic_type">

<!ELEMENT greater_than EMPTY>
<!ATTLIST greater_than 
      express-production CDATA #FIXED "&gt;">

<!ELEMENT greater_than_or_equal EMPTY>
<!ATTLIST greater_than_or_equal 
      express-production CDATA #FIXED "&gt;=">

<!ELEMENT hibound EMPTY>
<!ATTLIST hibound 
      express-production CDATA #FIXED "HIBOUND">

<!ELEMENT high_index 
 ((embedded_remark | tail_remark)?, 
  (integer_literal | numeric_expression))>
<!ATTLIST high_index 
      express-production CDATA #FIXED "index_2">

<!ELEMENT hiindex EMPTY>
<!ATTLIST hiindex 
      express-production CDATA #FIXED "HIINDEX">

<!ELEMENT if_stmt 
 ((embedded_remark | tail_remark)?, logical_expression, statement_block, statement_block?)>
<!ATTLIST if_stmt 
      express-production CDATA #FIXED "if_stmt">

<!ELEMENT import_all EMPTY>
<!ATTLIST import_all 
      express-production CDATA #FIXED "#NONE">

<!ELEMENT in EMPTY>
<!ATTLIST in 
      express-production CDATA #FIXED "IN">

<!ELEMENT increment 
 ((embedded_remark | tail_remark)?, 
  (integer_literal | numeric_expression))>
<!ATTLIST increment 
      express-production CDATA #FIXED "increment">

<!ELEMENT increment_control 
 ((embedded_remark | tail_remark)?, variable_id, lower_bound, upper_bound, increment?)>
<!ATTLIST increment_control 
      express-production CDATA #FIXED "increment_control">

<!ELEMENT index_qualifier 
 ((embedded_remark | tail_remark)?, low_index, high_index?)>
<!ATTLIST index_qualifier 
      express-production CDATA #FIXED "index_qualifier">

<!ELEMENT index_spec 
 ((embedded_remark | tail_remark)?, low_index, high_index?)>
<!ATTLIST index_spec 
      express-production CDATA #FIXED "bound_spec">

<!ELEMENT inherited_attribute_instance 
 (binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | bag_literal | list_literal | set_literal | array_literal | type_literal | entity_instance | entity_instance_as_group | entity_instance_ref)>
<!ATTLIST inherited_attribute_instance 
      express_attribute_name NMTOKEN #REQUIRED 
      express_attribute_type  (explicit | inverse | derived) "explicit">

<!ELEMENT insert EMPTY>
<!ATTLIST insert 
      express-production CDATA #FIXED "INSERT">

<!ELEMENT instance_equal EMPTY>
<!ATTLIST instance_equal 
      express-production CDATA #FIXED ":=:">

<!ELEMENT instance_not_equal EMPTY>
<!ATTLIST instance_not_equal 
      express-production CDATA #FIXED ":&lt;&gt;:">

<!ELEMENT integer EMPTY>
<!ATTLIST integer 
      express-production CDATA #FIXED "integer_type">

<!ELEMENT integer_divide EMPTY>
<!ATTLIST integer_divide 
      express-production CDATA #FIXED "DIV">

<!ELEMENT integer_literal 
 (#PCDATA)>
<!ATTLIST integer_literal 
      express-production CDATA #FIXED "integer_literal"
      express_constant_name NMTOKEN #IMPLIED >

<!ELEMENT interface_specification_block 
 ((embedded_remark | tail_remark)?, 
  (reference_from | use_from)+)>
<!ATTLIST interface_specification_block 
      express-production CDATA #FIXED "interface_specification">

<!ELEMENT interval 
 ((embedded_remark | tail_remark)?, 
  (interval_low_inclusive | interval_low_exclusive), interval_item, 
  (interval_high_inclusive | interval_high_exclusive))>
<!ATTLIST interval 
      express-production CDATA #FIXED "interval">

<!ELEMENT interval_high_exclusive 
 ((embedded_remark | tail_remark)?, 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term | simple_expression))>
<!ATTLIST interval_high_exclusive 
      express-production CDATA #FIXED "interval_high">

<!ELEMENT interval_high_inclusive 
 ((embedded_remark | tail_remark)?, 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term | simple_expression))>
<!ATTLIST interval_high_inclusive 
      express-production CDATA #FIXED "interval_high">

<!ELEMENT interval_item 
 ((embedded_remark | tail_remark)?, 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term | simple_expression))>
<!ATTLIST interval_item 
      express-production CDATA #FIXED "interval_item">

<!ELEMENT interval_low_exclusive 
 ((embedded_remark | tail_remark)?, 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term | simple_expression))>
<!ATTLIST interval_low_exclusive 
      express-production CDATA #FIXED "interval_low">

<!ELEMENT interval_low_inclusive 
 ((embedded_remark | tail_remark)?, 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term | simple_expression))>
<!ATTLIST interval_low_inclusive 
      express-production CDATA #FIXED "interval_low">

<!ELEMENT inverse_attr 
 ((embedded_remark | tail_remark)?, 
  (attribute_id | qualified_attribute), entity_ref, attribute_ref, 
  (inverse_set | inverse_bag)?)>
<!ATTLIST inverse_attr 
      express-production CDATA #FIXED "inverse_attr">

<!ELEMENT inverse_bag 
 ((embedded_remark | tail_remark)?, bound_spec?)>
<!ATTLIST inverse_bag 
      express-production CDATA #FIXED "BAG">

<!ELEMENT inverse_clause 
 ((embedded_remark | tail_remark)?, inverse_attr+)>
<!ATTLIST inverse_clause 
      express-production CDATA #FIXED "inverse_clause">

<!ELEMENT inverse_set 
 ((embedded_remark | tail_remark)?, bound_spec?)>
<!ATTLIST inverse_set 
      express-production CDATA #FIXED "SET">

<!ELEMENT iso_10303_28 
 (iso_10303_28_header?, 
  (express_schema | express_data)+)>
<!ATTLIST iso_10303_28 
      representation_category NMTOKENS #REQUIRED 
      version CDATA #FIXED "PDTS">

<!ELEMENT iso_10303_28_header 
 (document_name, purpose?, time_stamp?, author?, originating_organization?, authorization?, originating_system?, preprocessor_version?, documentation?)>

<!ELEMENT label 
 (#PCDATA)>
<!ATTLIST label 
      express-production CDATA #FIXED "label">

<!ELEMENT length EMPTY>
<!ATTLIST length 
      express-production CDATA #FIXED "LENGTH">

<!ELEMENT less_than EMPTY>
<!ATTLIST less_than 
      express-production CDATA #FIXED "&lt;">

<!ELEMENT less_than_or_equal EMPTY>
<!ATTLIST less_than_or_equal 
      express-production CDATA #FIXED "&lt;=">

<!ELEMENT like EMPTY>
<!ATTLIST like 
      express-production CDATA #FIXED "LIKE">

<!ELEMENT list_literal 
 (binary_literal* | boolean_literal* | integer_literal* | logical_literal* | real_literal* | string_literal* | bag_literal* | list_literal* | set_literal* | array_literal* | type_literal* | 
  (entity_instance | entity_instance_as_group | entity_instance_ref)*)>
<!ATTLIST list_literal 
      express_constant_name NMTOKEN #IMPLIED >

<!ELEMENT list_type 
 ((embedded_remark | tail_remark)?, bound_spec?, base_type, unique?)>
<!ATTLIST list_type 
      express-production CDATA #FIXED "list_type">

<!ELEMENT lobound EMPTY>
<!ATTLIST lobound 
      express-production CDATA #FIXED "LOBOUND">

<!ELEMENT local_variable_block 
 ((embedded_remark | tail_remark)?, local_variable_decl*)>
<!ATTLIST local_variable_block 
      express-production CDATA #FIXED "local_decl">

<!ELEMENT local_variable_decl 
 ((embedded_remark | tail_remark)?, variable_id, 
  (aggregate_type | general_array_type | general_bag_type | general_list_type | general_set_type | generic_type | entity_ref | type_ref | binary | boolean | integer | logical | number | real | string), 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term | simple_expression | relation_expression)?)>
<!ATTLIST local_variable_decl 
      express-production CDATA #FIXED "local_variable">

<!ELEMENT log EMPTY>
<!ATTLIST log 
      express-production CDATA #FIXED "LOG">

<!ELEMENT log10 EMPTY>
<!ATTLIST log10 
      express-production CDATA #FIXED "LOG10">

<!ELEMENT log2 EMPTY>
<!ATTLIST log2 
      express-production CDATA #FIXED "LOG2">

<!ELEMENT logical EMPTY>
<!ATTLIST logical 
      express-production CDATA #FIXED "logical_type">

<!ELEMENT logical_expression 
 ((embedded_remark | tail_remark)?, 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term | simple_expression | relation_expression))>
<!ATTLIST logical_expression 
      express-production CDATA #FIXED "logical_expression">

<!ELEMENT logical_literal 
 ((embedded_remark | tail_remark)?, 
  (false | true | unknown))>
<!ATTLIST logical_literal 
      express-production CDATA #FIXED "logical_literal"
      express_constant_name NMTOKEN #IMPLIED >

<!ELEMENT loindex EMPTY>
<!ATTLIST loindex 
      express-production CDATA #FIXED "LOINDEX">

<!ELEMENT lower_bound 
 ((embedded_remark | tail_remark)?, 
  (integer_literal | numeric_expression))>
<!ATTLIST lower_bound 
      express-production CDATA #FIXED "bound_1">

<!ELEMENT low_index 
 ((embedded_remark | tail_remark)?, 
  (integer_literal | numeric_expression))>
<!ATTLIST low_index 
      express-production CDATA #FIXED "index_1">

<!ELEMENT mod EMPTY>
<!ATTLIST mod 
      express-production CDATA #FIXED "MOD">

<!ELEMENT multiply EMPTY>
<!ATTLIST multiply 
      express-production CDATA #FIXED "*">

<!ELEMENT negate EMPTY>
<!ATTLIST negate 
      express-production CDATA #FIXED "-">

<!ELEMENT not EMPTY>
<!ATTLIST not 
      express-production CDATA #FIXED "NOT">

<!ELEMENT not_equal EMPTY>
<!ATTLIST not_equal 
      express-production CDATA #FIXED "&lt;&gt;">

<!ELEMENT null_stmt EMPTY>
<!ATTLIST null_stmt 
      express-production CDATA #FIXED "null_stmt">

<!ELEMENT number EMPTY>
<!ATTLIST number 
      express-production CDATA #FIXED "number_type">

<!ELEMENT numeric_expression 
 ((embedded_remark | tail_remark)?, 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term | simple_expression))>
<!ATTLIST numeric_expression 
      express-production CDATA #FIXED "numeric_expression">

<!ELEMENT nvl EMPTY>
<!ATTLIST nvl 
      express-production CDATA #FIXED "NVL">

<!ELEMENT odd EMPTY>
<!ATTLIST odd 
      express-production CDATA #FIXED "ODD">

<!ELEMENT optional EMPTY>
<!ATTLIST optional 
      express-production CDATA #FIXED "OPTIONAL">

<!ELEMENT or EMPTY>
<!ATTLIST or 
      express-production CDATA #FIXED "OR">

<!ELEMENT originating_organization 
 (#PCDATA)>

<!ELEMENT originating_system 
 (#PCDATA)>

<!ELEMENT otherwise 
 ((embedded_remark | tail_remark)?, 
  (alias_stmt | assignment_stmt | case_stmt | statement_block | escape_stmt | if_stmt | null_stmt | procedure_call_stmt | repeat_stmt | return_stmt | skip_stmt))>
<!ATTLIST otherwise 
      express-production CDATA #FIXED "OTHERWISE">

<!ELEMENT parameter_id 
 (#PCDATA)>
<!ATTLIST parameter_id 
      express-production CDATA #FIXED "parameter_id"
      id ID #IMPLIED >

<!ELEMENT parameter_ref 
 (#PCDATA)>
<!ATTLIST parameter_ref 
      express-production CDATA #FIXED "parameter_ref"
      refid IDREF #IMPLIED 
      reftype CDATA #FIXED "refid (parameter_id)">

<!ELEMENT parenthetic_expression 
 ((embedded_remark | tail_remark)?, 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term | simple_expression | relation_expression))>
<!ATTLIST parenthetic_expression 
      express-production CDATA #FIXED "()">

<!ELEMENT partial_entity_instance 
 ((inherited_attribute_instance | attribute_instance)*, partial_entity_instance*)>
<!ATTLIST partial_entity_instance 
      express_entity_name NMTOKEN #REQUIRED 
      express_schema_name NMTOKEN #IMPLIED 
      id ID #IMPLIED >

<!ELEMENT pi EMPTY>
<!ATTLIST pi 
      express-production CDATA #FIXED "PI">

<!ELEMENT plus EMPTY>
<!ATTLIST plus 
      express-production CDATA #FIXED "+">

<!ELEMENT population 
 ((embedded_remark | tail_remark)?, entity_ref)>
<!ATTLIST population 
      express-production CDATA #FIXED "population">

<!ELEMENT precision_spec 
 ((embedded_remark | tail_remark)?, 
  (integer_literal | numeric_expression))>
<!ATTLIST precision_spec 
      express-production CDATA #FIXED "precision_spec">

<!ELEMENT preprocessor_version 
 (#PCDATA)>

<!ELEMENT procedure_call_stmt 
 ((embedded_remark | tail_remark)?, 
  ((insert | remove | procedure_ref), 
   (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term | simple_expression | relation_expression)*))>
<!ATTLIST procedure_call_stmt 
      express-production CDATA #FIXED "procedure_call_stmt">

<!ELEMENT procedure_decl 
 ((embedded_remark | tail_remark)?, procedure_id, procedure_formal_parameter_block?, algorithm_head?, statement_block?)>
<!ATTLIST procedure_decl 
      express-production CDATA #FIXED "procedure_decl">

<!ELEMENT procedure_formal_parameter_block 
 ((embedded_remark | tail_remark)?, 
  (formal_parameter | var_formal_parameter)*)>
<!ATTLIST procedure_formal_parameter_block 
      express-production CDATA #FIXED "formal_parameter">

<!ELEMENT procedure_id 
 (#PCDATA)>
<!ATTLIST procedure_id 
      express-production CDATA #FIXED "procedure_id"
      id ID #IMPLIED >

<!ELEMENT procedure_import 
 ((embedded_remark | tail_remark)?, procedure_id, procedure_ref)>
<!ATTLIST procedure_import 
      express-production CDATA #FIXED "resource_or_rename">

<!ELEMENT procedure_ref 
 (#PCDATA)>
<!ATTLIST procedure_ref 
      express-production CDATA #FIXED "procedure_ref"
      refid IDREF #IMPLIED 
      reftype CDATA #FIXED "refid (procedure_id)">

<!ELEMENT purpose 
 (#PCDATA)>

<!ELEMENT qualified_attribute 
 ((embedded_remark | tail_remark)?, entity_ref, attribute_ref)>
<!ATTLIST qualified_attribute 
      express-production CDATA #FIXED "qualified_attribute">

<!ELEMENT qualified_factor 
 ((embedded_remark | tail_remark)?, 
  (attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population), qualifier)>
<!ATTLIST qualified_factor 
      express-production CDATA #FIXED "qualifiable_factor">

<!ELEMENT qualifier 
 ((embedded_remark | tail_remark)?, 
  (attribute_ref | entity_ref | index_qualifier)*)>
<!ATTLIST qualifier 
      express-production CDATA #FIXED "qualifier">

<!ELEMENT query 
 ((embedded_remark | tail_remark)?, variable_id, 
  (aggregate_source, logical_expression))>
<!ATTLIST query 
      express-production CDATA #FIXED "query_expression">

<!ELEMENT raise_to_power EMPTY>
<!ATTLIST raise_to_power 
      express-production CDATA #FIXED "**">

<!ELEMENT real 
 ((embedded_remark | tail_remark)?, precision_spec?)>
<!ATTLIST real 
      express-production CDATA #FIXED "real_type">

<!ELEMENT real_divide EMPTY>
<!ATTLIST real_divide 
      express-production CDATA #FIXED "/">

<!ELEMENT real_literal 
 (#PCDATA)>
<!ATTLIST real_literal 
      express-production CDATA #FIXED "real_literal"
      express_constant_name NMTOKEN #IMPLIED >

<!ELEMENT reference_from 
 ((embedded_remark | tail_remark)?, schema_ref, 
  (import_all | 
   (constant_import | entity_import | function_import | procedure_import | type_import)+))>
<!ATTLIST reference_from 
      express-production CDATA #FIXED "reference_clause">

<!ELEMENT relation_expression 
 ((embedded_remark | tail_remark)?, 
  (less_than | greater_than | less_than_or_equal | greater_than_or_equal | not_equal | equal | instance_not_equal | instance_equal | in | like), 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term | simple_expression), 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term | simple_expression))>
<!ATTLIST relation_expression 
      express-production CDATA #FIXED "expression">

<!ELEMENT remove EMPTY>
<!ATTLIST remove 
      express-production CDATA #FIXED "REMOVE">

<!ELEMENT repeat_control 
 ((embedded_remark | tail_remark)?, increment_control, while?, until?)>
<!ATTLIST repeat_control 
      express-production CDATA #FIXED "repeat_control">

<!ELEMENT repeat_stmt 
 ((embedded_remark | tail_remark)?, repeat_control, statement_block)>
<!ATTLIST repeat_stmt 
      express-production CDATA #FIXED "repeat_stmt">

<!ELEMENT repetition 
 ((embedded_remark | tail_remark)?, 
  (integer_literal | numeric_expression))>
<!ATTLIST repetition 
      express-production CDATA #FIXED "repetition">

<!ELEMENT return_stmt 
 ((embedded_remark | tail_remark)?, 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term | simple_expression | relation_expression)?)>
<!ATTLIST return_stmt 
      express-production CDATA #FIXED "return_stmt">

<!ELEMENT rolesof EMPTY>
<!ATTLIST rolesof 
      express-production CDATA #FIXED "ROLESOF">

<!ELEMENT rule_decl 
 ((embedded_remark | tail_remark)?, rule_id, applies_to_entities, algorithm_head?, statement_block?, where_clause)>
<!ATTLIST rule_decl 
      express-production CDATA #FIXED "rule_decl">

<!ELEMENT rule_id 
 (#PCDATA)>
<!ATTLIST rule_id 
      express-production CDATA #FIXED "rule_id">

<!ELEMENT schema_decl 
 ((embedded_remark | tail_remark)?, schema_id, interface_specification_block?, constant_block?, 
  (entity_decl | function_decl | procedure_decl | type_decl | rule_decl)*)>
<!ATTLIST schema_decl 
      express-production CDATA #FIXED "schema_decl">

<!ELEMENT schema_id 
 (#PCDATA)>
<!ATTLIST schema_id 
      express-production CDATA #FIXED "schema_id"
      id ID #IMPLIED >

<!ELEMENT schema_instance 
 (entity_instance | entity_instance_as_group | external_refid)*>
<!ATTLIST schema_instance 
      complete_population  (yes | no) "yes"
      express_schema_identifier CDATA #IMPLIED 
      express_schema_name NMTOKEN #REQUIRED 
      express_schema_version CDATA #IMPLIED 
      id ID #IMPLIED 
      xml:lang CDATA #IMPLIED 
      refid IDREF #IMPLIED 
      reftype CDATA #FIXED "refid (express_schema | external_refid)">

<!ELEMENT schema_ref 
 (#PCDATA)>
<!ATTLIST schema_ref 
      express-production CDATA #FIXED "schema_ref"
      refid IDREF #IMPLIED 
      reftype CDATA #FIXED "refid (schema_id | external_refid)">

<!ELEMENT schema_text 
 (#PCDATA)>

<!ELEMENT select 
 ((embedded_remark | tail_remark)?, 
  (entity_ref | type_ref)+)>
<!ATTLIST select 
      express-production CDATA #FIXED "select_type">

<!ELEMENT self EMPTY>
<!ATTLIST self 
      express-production CDATA #FIXED "SELF">

<!ELEMENT set_literal 
 (binary_literal* | boolean_literal* | integer_literal* | logical_literal* | real_literal* | string_literal* | bag_literal* | list_literal* | set_literal* | array_literal* | type_literal* | 
  (entity_instance | entity_instance_as_group | entity_instance_ref)*)>
<!ATTLIST set_literal 
      express_constant_name NMTOKEN #IMPLIED >

<!ELEMENT set_type 
 ((embedded_remark | tail_remark)?, bound_spec?, base_type)>
<!ATTLIST set_type 
      express-production CDATA #FIXED "set_type">

<!ELEMENT simple_expression 
 ((embedded_remark | tail_remark)?, 
  (add | subtract | or | xor), 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term), 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term))>
<!ATTLIST simple_expression 
      express-production CDATA #FIXED "simple_expression">

<!ELEMENT sin EMPTY>
<!ATTLIST sin 
      express-production CDATA #FIXED "SIN">

<!ELEMENT sizeof EMPTY>
<!ATTLIST sizeof 
      express-production CDATA #FIXED "SIZEOF">

<!ELEMENT skip_stmt EMPTY>
<!ATTLIST skip_stmt 
      express-production CDATA #FIXED "SKIP">

<!ELEMENT sqrt EMPTY>
<!ATTLIST sqrt 
      express-production CDATA #FIXED "SQRT">

<!ELEMENT statement_block 
 ((embedded_remark | tail_remark)?, 
  (alias_stmt | assignment_stmt | case_stmt | statement_block | escape_stmt | if_stmt | null_stmt | procedure_call_stmt | repeat_stmt | return_stmt | skip_stmt)+)>
<!ATTLIST statement_block 
      express-production CDATA #FIXED "stmt">

<!ELEMENT string 
 ((embedded_remark | tail_remark)?, width_spec?)>
<!ATTLIST string 
      express-production CDATA #FIXED "string_type">

<!ELEMENT string_literal 
 (#PCDATA)>
<!ATTLIST string_literal 
      express-production CDATA #FIXED "string_literal"
      express_constant_name NMTOKEN #IMPLIED >

<!ELEMENT subtract EMPTY>
<!ATTLIST subtract 
      express-production CDATA #FIXED "-">

<!ELEMENT subtype_of 
 ((embedded_remark | tail_remark)?, entity_ref+)>
<!ATTLIST subtype_of 
      express-production CDATA #FIXED "subtype_declaration">

<!ELEMENT supertype_and 
 ((embedded_remark | tail_remark)?, 
  (entity_ref | supertype_one_of | supertype_and_or | supertype_and)+)>
<!ATTLIST supertype_and 
      express-production CDATA #FIXED "supertype_rule">

<!ELEMENT supertype_and_or 
 ((embedded_remark | tail_remark)?, 
  (entity_ref | supertype_one_of | supertype_and_or | supertype_and)+)>
<!ATTLIST supertype_and_or 
      express-production CDATA #FIXED "supertype_rule">

<!ELEMENT supertype_of 
 ((embedded_remark | tail_remark)?, 
  (entity_ref | supertype_one_of | supertype_and_or | supertype_and))>
<!ATTLIST supertype_of 
      express-production CDATA #FIXED "supertype_rule">

<!ELEMENT supertype_one_of 
 ((embedded_remark | tail_remark)?, 
  (entity_ref | supertype_one_of | supertype_and_or | supertype_and)+)>
<!ATTLIST supertype_one_of 
      express-production CDATA #FIXED "one_of">

<!ELEMENT tail_remark 
 (#PCDATA)*>
<!ATTLIST tail_remark 
      express-production CDATA #FIXED "tail_remark">

<!ELEMENT tan EMPTY>
<!ATTLIST tan 
      express-production CDATA #FIXED "TAN">

<!ELEMENT term 
 ((multiply | real_divide | integer_divide | mod | and | complex_entity_constructor), 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term), 
  (aggregate_initializer | entity_constructor | enumeration_reference | interval | query | binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression | unary_op | factor | term))>
<!ATTLIST term 
      express-production CDATA #FIXED "term">

<!ELEMENT time_stamp 
 (#PCDATA)>

<!ELEMENT true EMPTY>
<!ATTLIST true 
      express-production CDATA #FIXED "TRUE">

<!ELEMENT typeof EMPTY>
<!ATTLIST typeof 
      express-production CDATA #FIXED "TYPEOF">

<!ELEMENT type_decl 
 ((embedded_remark | tail_remark)?, type_id, underlying_type, where_clause?)>
<!ATTLIST type_decl 
      express-production CDATA #FIXED "type_decl">

<!ELEMENT type_id 
 (#PCDATA)>
<!ATTLIST type_id 
      express-production CDATA #FIXED "type_id"
      id ID #IMPLIED >

<!ELEMENT type_import 
 ((embedded_remark | tail_remark)?, type_id, type_ref)>
<!ATTLIST type_import 
      express-production CDATA #FIXED "resource_or_rename">

<!ELEMENT type_label_id 
 (#PCDATA)>
<!ATTLIST type_label_id 
      express-production CDATA #FIXED "type_label_id"
      id ID #IMPLIED >

<!ELEMENT type_label_ref 
 (#PCDATA)>
<!ATTLIST type_label_ref 
      express-production CDATA #FIXED "type_label_ref"
      refid IDREF #IMPLIED 
      reftype CDATA #FIXED "refid (type_label_id)">

<!ELEMENT type_literal 
 (binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | bag_literal | list_literal | set_literal | array_literal | type_literal | entity_instance | entity_instance_as_group | entity_instance_ref | enumeration_ref)>
<!ATTLIST type_literal 
      enumeration_domain NMTOKENS #IMPLIED 
      express_constant_name NMTOKEN #IMPLIED 
      express_schema_name NMTOKEN #IMPLIED 
      express_type_name NMTOKEN #REQUIRED >

<!ELEMENT type_ref 
 (#PCDATA)>
<!ATTLIST type_ref 
      express-production CDATA #FIXED "type_ref"
      refid IDREF #IMPLIED 
      reftype CDATA #FIXED "refid (type_id)">

<!ELEMENT unary_op 
 ((embedded_remark | tail_remark)?, 
  (plus | negate | not), 
  (binary_literal | boolean_literal | integer_literal | logical_literal | real_literal | string_literal | attribute_ref | const_e | pi | self | unset | constant_ref | function_call | parameter_ref | variable_ref | population | qualified_factor | parenthetic_expression))>
<!ATTLIST unary_op 
      express-production CDATA #FIXED "unary_op">

<!ELEMENT underlying_type 
 ((embedded_remark | tail_remark)?, 
  (enumeration | select | array_type | bag_type | list_type | set_type | binary | boolean | integer | logical | number | real | string | type_ref))>
<!ATTLIST underlying_type 
      express-production CDATA #FIXED "underlying_type">

<!ELEMENT unique EMPTY>
<!ATTLIST unique 
      express-production CDATA #FIXED "UNIQUE">

<!ELEMENT unique_clause 
 ((embedded_remark | tail_remark)?, unique_rule+)>
<!ATTLIST unique_clause 
      express-production CDATA #FIXED "unique_clause">

<!ELEMENT unique_rule 
 ((embedded_remark | tail_remark)?, label?, 
  (attribute_ref | qualified_attribute)+)>
<!ATTLIST unique_rule 
      express-production CDATA #FIXED "unique_rule">

<!ELEMENT unknown EMPTY>
<!ATTLIST unknown 
      express-production CDATA #FIXED "UNKNOWN">

<!ELEMENT unset EMPTY>
<!ATTLIST unset 
      express-production CDATA #FIXED "?">

<!ELEMENT until 
 ((embedded_remark | tail_remark)?, logical_expression)>
<!ATTLIST until 
      express-production CDATA #FIXED "until_control">

<!ELEMENT upper_bound 
 ((embedded_remark | tail_remark)?, 
  (unset | integer_literal | numeric_expression))>
<!ATTLIST upper_bound 
      express-production CDATA #FIXED "bound_2">

<!ELEMENT usedin EMPTY>
<!ATTLIST usedin 
      express-production CDATA #FIXED "USEDIN">

<!ELEMENT use_from 
 ((embedded_remark | tail_remark)?, schema_ref, 
  (import_all | 
   (entity_import | type_import)+))>
<!ATTLIST use_from 
      express-production CDATA #FIXED "use_clause">

<!ELEMENT value EMPTY>
<!ATTLIST value 
      express-production CDATA #FIXED "VALUE">

<!ELEMENT value_in EMPTY>
<!ATTLIST value_in 
      express-production CDATA #FIXED "VALUE_IN">

<!ELEMENT value_unique EMPTY>
<!ATTLIST value_unique 
      express-production CDATA #FIXED "VALUE_UNIQUE">

<!ELEMENT variable_id 
 (#PCDATA)>
<!ATTLIST variable_id 
      express-production CDATA #FIXED "variable_id"
      id ID #IMPLIED >

<!ELEMENT variable_ref 
 (#PCDATA)>
<!ATTLIST variable_ref 
      express-production CDATA #FIXED "variable_ref"
      refid IDREF #IMPLIED 
      reftype CDATA #FIXED "refid (variable_id)">

<!ELEMENT var_formal_parameter 
 ((embedded_remark | tail_remark)?, parameter_id, 
  (aggregate_type | general_array_type | general_bag_type | general_list_type | general_set_type | generic_type | entity_ref | type_ref | binary | boolean | integer | logical | number | real | string))>
<!ATTLIST var_formal_parameter 
      express-production CDATA #FIXED "formal_parameter">

<!ELEMENT where_clause 
 ((embedded_remark | tail_remark)?, domain_rule+)>
<!ATTLIST where_clause 
      express-production CDATA #FIXED "where_clause">

<!ELEMENT while 
 ((embedded_remark | tail_remark)?, logical_expression)>
<!ATTLIST while 
      express-production CDATA #FIXED "while_control">

<!ELEMENT width_spec 
 ((embedded_remark | tail_remark)?, 
  (integer_literal | numeric_expression), fixed?)>
<!ATTLIST width_spec 
      express-production CDATA #FIXED "width_spec">

<!ELEMENT xor EMPTY>
<!ATTLIST xor 
      express-production CDATA #FIXED "XOR">