<?xml version="1.0" encoding="utf-8"?>
<!-- 
  $Id: item_identification.xml,v 1.1 2010/11/30 00:35:59 fredrik_larsen Exp $
  ============================================================
  item_identification DEX long form 

  Copyright OASIS 2010
  ============================================================
-->
<express language_version="1" rcs.date="$Date: 2010/11/30 00:35:59 $" rcs.revision="$Revision: 1.1 $">

  
   <application name=" Eurostep EXPRESS Parser (Eep!)" owner="Eurostep Limited" url="www.eurostep.com" version="1, 3, 29, 37" source="C:\Data\DEXlib\data\schemas\item_identification.exp"/>

  
   <schema name="item_identification_dex">
    
      <type name="any_number_value">
      
         <builtintype type="NUMBER"/>
    
      </type>

    
      <type name="any_string_value">
      
         <builtintype type="STRING"/>
    
      </type>

    
      <type name="assigned_document_select">
      
         <select selectitems="Document Document_version File"/>
    
      </type>

    
      <type name="classification_item">
      
         <select selectitems="Activity Activity_method Address Address_assignment Applied_state_assignment Assigned_property Calendar_date Class Content_item Date_or_date_time_assignment Date_time Digital_file Document Document_assignment Document_version Effectivity Effectivity_assignment External_class_library Identification_assignment Local_time Location Location_assignment Message Organization Organization_or_person_in_organization_assignment Part Part_version Partial_document_assignment Person Person_in_organization Product Product_as_realized Product_category Product_design_version_to_individual Product_group Product_relationship Product_version Product_view_definition Property_representation Representation Representation_context Representation_item Resource_item State State_assertion State_definition State_role Uncertainty_with_unit Unit Value_with_unit View_definition_context View_definition_relationship"/>
    
      </type>

    
      <type name="date_or_date_time_item">
      
         <select selectitems="Activity Activity_method Address_assignment Applied_state_assignment Assigned_property Classification_assignment Date_or_date_time_assignment Digital_file Document Document_assignment Document_version Effectivity Effectivity_assignment Identification_assignment Location_assignment Message Organization_or_person_in_organization_assignment Part Part_version Person Person_in_organization Product_as_realized Product_category_assignment Product_design_version_to_individual Product_group Product_relationship Product_version Product_view_definition Property_representation Representation Resource_item State State_assertion State_definition View_definition_context"/>
    
      </type>

    
      <type name="date_or_date_time_select">
      
         <select selectitems="Calendar_date Date_time"/>
    
      </type>

    
      <type name="date_or_event">
      
         <select selectitems="Calendar_date Date_time"/>
    
      </type>

    
      <type name="day_in_month_number">
      
         <builtintype type="INTEGER"/>
      
         <where label="WR1" expression="{1 &lt;= SELF &lt;= 31}">
      
         </where>
    
      </type>

    
      <type name="documented_element_select">
      
         <select selectitems="Document_assignment Class Activity Activity_method Assigned_property Document Document_version Effectivity Effectivity_assignment Identification_assignment Location Location_assignment Message Organization Organization_or_person_in_organization_assignment Part Part_version Person Product Product_as_realized Product_design_version_to_individual Product_group Product_relationship Product_version Product_view_definition Property_representation Representation Representation_item Resource_item State State_assertion State_definition View_definition_relationship"/>
    
      </type>

    
      <type name="effectivity_item">
      
         <select selectitems="View_definition_usage Classification_assignment Activity Activity_method Address_assignment Assigned_property Date_or_date_time_assignment Document Document_assignment Document_version Effectivity_assignment File Identification_assignment Location_assignment Organization_or_person_in_organization_assignment Part Part_version Person_in_organization Product Product_as_individual Product_as_individual_version Product_as_individual_view Product_design_version_to_individual Product_group Product_relationship Product_version Product_view_definition"/>
    
      </type>

    
      <type name="hour_in_day">
      
         <builtintype type="INTEGER"/>
      
         <where label="WR1" expression="{0 &lt;= SELF &lt; 24}">
      
         </where>
    
      </type>

    
      <type name="identification_item">
      
         <select selectitems="Class Activity Activity_method Address Applied_state_assignment Assigned_property Digital_file Document Document_assignment Document_version Effectivity External_class_library Location Message Organization Organization_or_person_in_organization_assignment Part Part_version Person Person_in_organization Product_as_individual Product_as_individual_version Product_as_individual_view Product_as_realized Product_group Product_relationship Resource_item State State_assertion State_definition View_definition_relationship"/>
    
      </type>

    
      <type name="length_measure">
      
         <builtintype type="REAL"/>
    
      </type>

    
      <type name="location_assignment_select">
      
         <select selectitems="Activity Document Document_version File Organization Person Person_in_organization Product Product_group Product_version Product_view_definition Resource_item View_definition_relationship"/>
    
      </type>

    
      <type name="measure_value">
      
         <select selectitems="any_number_value any_string_value length_measure plane_angle_measure"/>
    
      </type>

    
      <type name="message_definer_select">
      
         <select selectitems="Organization Person_in_organization"/>
    
      </type>

    
      <type name="minute_in_hour">
      
         <builtintype type="INTEGER"/>
      
         <where label="WR1" expression="{0 &lt;= SELF &lt;= 59}">
      
         </where>
    
      </type>

    
      <type name="month_in_year_number">
      
         <builtintype type="INTEGER"/>
      
         <where label="WR1" expression="{1 &lt;= SELF &lt;= 12}">
      
         </where>
    
      </type>

    
      <type name="offset_orientation">
      
         <enumeration items="ahead exact behind"/>
    
      </type>

    
      <type name="organization_or_person_in_organization_item">
      
         <select selectitems="Activity Activity_method Address_assignment Applied_state_assignment Assigned_property Classification_assignment Date_or_date_time_assignment Digital_file Document Document_assignment Document_version Effectivity Effectivity_assignment Identification_assignment Location_assignment Message Organization_or_person_in_organization_assignment Part Part_version Person_in_organization Product_as_individual Product_as_realized Product_category Product_category_assignment Product_group Product_relationship Product_version Product_view_definition Property_representation Representation Resource_item State State_assertion State_definition View_definition_context"/>
    
      </type>

    
      <type name="organization_or_person_in_organization_select">
      
         <select selectitems="Organization Person_in_organization"/>
    
      </type>

    
      <type name="plane_angle_measure">
      
         <builtintype type="REAL"/>
    
      </type>

    
      <type name="property_assignment_select">
      
         <select selectitems="Address Applied_state_assignment Document_assignment File Location_assignment Organization_or_person_in_organization_assignment Person Person_in_organization Product_view_definition State State_definition View_definition_relationship"/>
    
      </type>

    
      <type name="resource_item_select">
      
         <select selectitems="Document Document_version File Location Organization Part Part_version Person Person_in_organization Product_as_individual Product_as_individual_version Product_as_individual_view Product_group"/>
    
      </type>

    
      <type name="second_in_minute">
      
         <builtintype type="REAL"/>
      
         <where label="WR1" expression="{0 &lt;= SELF &lt;= 60.000000}">
      
         </where>
    
      </type>

    
      <type name="state_of_item">
      
         <select selectitems="Activity Activity_method Digital_file Document Document_version Location Message Organization Part Part_version Person_in_organization Product Product_as_individual Product_as_individual_view Product_as_realized Product_group Product_version Resource_item View_definition_relationship"/>
    
      </type>

    
      <type name="year_number">
      
         <builtintype type="INTEGER"/>
    
      </type>

    
      <type name="message_content_item">
      
         <select selectitems="Product Product_version Activity Activity_method External_class_library Resource_item"/>
    
      </type>

    
      <entity name="Activity">
      
         <explicit name="id">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="name">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="description" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="chosen_method">
        
            <typename name="Activity_method"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Activity_actual" supertypes="Activity">
    
      </entity>

    
      <entity name="Activity_method">
      
         <explicit name="name">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="description" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="consequence" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="purpose">
        
            <builtintype type="STRING"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Address">
      
         <explicit name="name" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="street_number" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="street" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="postal_box" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="town" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="region" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="postal_code" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="country" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="internal_location" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="facsimile_number" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="telephone_number" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="electronic_mail_address" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="telex_number" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="url" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <where label="WR1" expression="EXISTS(street_number) OR EXISTS(street) OR EXISTS(postal_box) OR EXISTS(town) OR EXISTS(region) OR EXISTS(postal_code) OR EXISTS(country) OR EXISTS(internal_location) OR EXISTS(facsimile_number) OR EXISTS(telephone_number) OR EXISTS(electronic_mail_address) OR EXISTS(telex_number)">
      
         </where>
    
      </entity>

    
      <entity name="Address_assignment">
      
         <explicit name="address_type" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="assigned_address">
        
            <typename name="Address"/>
      
         </explicit>
      
         <explicit name="located_person_organizations">
        
            <aggregate type="SET" lower="1" upper="?"/>
        
            <typename name="organization_or_person_in_organization_select"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Applied_state_assignment">
      
         <explicit name="described_state">
        
            <typename name="State"/>
      
         </explicit>
      
         <explicit name="assigned_to">
        
            <typename name="state_of_item"/>
      
         </explicit>
      
         <explicit name="role">
        
            <typename name="State_role"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Assigned_property">
      
         <explicit name="id" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="name">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="description" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="described_element">
        
            <typename name="property_assignment_select"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Calendar_date">
      
         <explicit name="year_component">
        
            <typename name="year_number"/>
      
         </explicit>
      
         <explicit name="month_component">
        
            <typename name="month_in_year_number"/>
      
         </explicit>
      
         <explicit name="day_component">
        
            <typename name="day_in_month_number"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Class">
      
         <explicit name="id">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="name">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="description" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Classification_assignment">
      
         <explicit name="assigned_class">
        
            <typename name="Class"/>
      
         </explicit>
      
         <explicit name="items">
        
            <aggregate type="SET" lower="1" upper="?"/>
        
            <typename name="classification_item"/>
      
         </explicit>
      
         <explicit name="role" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Content_item">
      
         <explicit name="item_identifier">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="item_type">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="access_comment" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Content_item_selected" supertypes="Content_item">
      
         <explicit name="contents">
        
            <typename name="message_content_item"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Date_or_date_time_assignment">
      
         <explicit name="assigned_date">
        
            <typename name="date_or_date_time_select"/>
      
         </explicit>
      
         <explicit name="role">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="items">
        
            <aggregate type="SET" lower="1" upper="?"/>
        
            <typename name="date_or_date_time_item"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Date_time">
      
         <explicit name="date_component">
        
            <typename name="Calendar_date"/>
      
         </explicit>
      
         <explicit name="time_component">
        
            <typename name="Local_time"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Dated_effectivity" supertypes="Effectivity">
      
         <explicit name="start_bound">
        
            <typename name="date_or_event"/>
      
         </explicit>
      
         <explicit name="end_bound" optional="YES">
        
            <typename name="date_or_event"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Digital_file" supertypes="File">
    
      </entity>

    
      <entity name="Document" supertypes="Product">
    
      </entity>

    
      <entity name="Document_assignment">
      
         <explicit name="assigned_document">
        
            <typename name="assigned_document_select"/>
      
         </explicit>
      
         <explicit name="is_assigned_to">
        
            <typename name="documented_element_select"/>
      
         </explicit>
      
         <explicit name="role">
        
            <builtintype type="STRING"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Document_version" supertypes="Product_version">
      
         <explicit name="of_product">
        
            <typename name="Document"/>
        
            <redeclaration entity-ref="Product_version"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Effectivity" super.expression="ONEOF(Dated_effectivity)">
      
         <explicit name="id">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="name">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="description" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Effectivity_assignment">
      
         <explicit name="assigned_effectivity">
        
            <typename name="Effectivity"/>
      
         </explicit>
      
         <explicit name="role">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="items">
        
            <aggregate type="SET" lower="1" upper="?"/>
        
            <typename name="effectivity_item"/>
      
         </explicit>
    
      </entity>

    
      <entity name="External_class" supertypes="Class">
      
         <explicit name="external_source">
        
            <typename name="External_class_library"/>
      
         </explicit>
    
      </entity>

    
      <entity name="External_class_library">
      
         <explicit name="id">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="description" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
    
      </entity>

    
      <entity name="File" abstract.supertype="YES" super.expression="ONEOF(Digital_file)">
      
         <explicit name="id">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="version" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="contained_data_type" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Identification_assignment">
      
         <explicit name="identifier">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="role">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="description" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="items">
        
            <aggregate type="SET" lower="1" upper="?"/>
        
            <typename name="identification_item"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Local_time">
      
         <explicit name="hour_component">
        
            <typename name="hour_in_day"/>
      
         </explicit>
      
         <explicit name="minute_component" optional="YES">
        
            <typename name="minute_in_hour"/>
      
         </explicit>
      
         <explicit name="second_component" optional="YES">
        
            <typename name="second_in_minute"/>
      
         </explicit>
      
         <explicit name="zone">
        
            <typename name="Time_offset"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Location">
      
         <explicit name="name">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="description" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Location_assignment">
      
         <explicit name="description" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="role" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="entity_for_location">
        
            <typename name="location_assignment_select"/>
      
         </explicit>
      
         <explicit name="location_for_assignment">
        
            <typename name="Location"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Measure_item" abstract.supertype="YES" supertypes="Representation_item" super.expression="ONEOF(Numerical_item_with_unit)">
      
         <where label="WR1" expression="SIZEOF(USEDIN(SELF, 'ITEM_IDENTIFICATION_DEX.REPRESENTATION.ITEMS')) &gt; 0">
      
         </where>
    
      </entity>

    
      <entity name="Message">
      
         <explicit name="id">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="message_type">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="contains">
        
            <aggregate type="SET"/>
        
            <typename name="Content_item"/>
      
         </explicit>
      
         <explicit name="defined_by" optional="YES">
        
            <aggregate type="SET"/>
        
            <typename name="message_definer_select"/>
      
         </explicit>
      
         <explicit name="purpose" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Numerical_item_with_unit" supertypes="Measure_item Value_with_unit">
    
      </entity>

    
      <entity name="Numerical_representation_context" supertypes="Representation_context">
      
         <explicit name="units" optional="YES">
        
            <aggregate type="SET" lower="1" upper="?"/>
        
            <typename name="Unit"/>
      
         </explicit>
      
         <explicit name="accuracies" optional="YES">
        
            <aggregate type="SET" lower="1" upper="?"/>
        
            <typename name="Uncertainty_with_unit"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Organization">
      
         <explicit name="id" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="name">
        
            <builtintype type="STRING"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Organization_or_person_in_organization_assignment">
      
         <explicit name="assigned_entity">
        
            <typename name="organization_or_person_in_organization_select"/>
      
         </explicit>
      
         <explicit name="role">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="items">
        
            <aggregate type="SET" lower="1" upper="?"/>
        
            <typename name="organization_or_person_in_organization_item"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Part" supertypes="Product">
      
         <where label="WR1" expression="SIZEOF(['part', 'raw material', 'tool'] * types_of_product(SELF)) = 1">
      
         </where>
    
      </entity>

    
      <entity name="Part_version" supertypes="Product_version">
      
         <explicit name="of_product">
        
            <typename name="Part"/>
        
            <redeclaration entity-ref="Product_version"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Partial_document_assignment" supertypes="Document_assignment">
      
         <explicit name="document_portion">
        
            <builtintype type="STRING"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Person">
      
         <explicit name="last_name">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="first_name" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="middle_names" optional="YES">
        
            <aggregate type="LIST" lower="1" upper="?"/>
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="prefix_titles" optional="YES">
        
            <aggregate type="LIST" lower="1" upper="?"/>
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="suffix_titles" optional="YES">
        
            <aggregate type="LIST" lower="1" upper="?"/>
        
            <builtintype type="STRING"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Person_in_organization">
      
         <explicit name="concerned_person">
        
            <typename name="Person"/>
      
         </explicit>
      
         <explicit name="containing_organization">
        
            <typename name="Organization"/>
      
         </explicit>
      
         <explicit name="role">
        
            <builtintype type="STRING"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Product" abstract.supertype="YES" super.expression="ONEOF(Document, Part, Product_as_individual)">
      
         <explicit name="id">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="name" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="description" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Product_as_individual" supertypes="Product">
    
      </entity>

    
      <entity name="Product_as_individual_version" abstract.supertype="YES" supertypes="Product_version" super.expression="ONEOF(Product_as_realized)">
      
         <explicit name="of_product">
        
            <typename name="Product_as_individual"/>
        
            <redeclaration entity-ref="Product_version"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Product_as_individual_view" supertypes="Product_view_definition">
      
         <explicit name="defined_version">
        
            <typename name="Product_as_individual_version"/>
        
            <redeclaration entity-ref="Product_view_definition"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Product_as_realized" supertypes="Product_as_individual_version">
    
      </entity>

    
      <entity name="Product_category">
      
         <explicit name="id" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="name">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="description" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Product_category_assignment">
      
         <explicit name="category">
        
            <typename name="Product_category"/>
      
         </explicit>
      
         <explicit name="products">
        
            <aggregate type="SET" lower="1" upper="?"/>
        
            <typename name="Product"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Product_design_version_to_individual">
      
         <explicit name="product_design_version">
        
            <typename name="Product_version"/>
      
         </explicit>
      
         <explicit name="individual_product">
        
            <typename name="Product_as_individual_version"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Product_group">
      
         <explicit name="id">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="description" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="purpose">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="membership_rule" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="product_group_context" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Product_relationship">
      
         <explicit name="relation_type">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="description" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="relating_product">
        
            <typename name="Product"/>
      
         </explicit>
      
         <explicit name="related_product">
        
            <typename name="Product"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Product_version" abstract.supertype="YES" super.expression="ONEOF(Document_version, Part_version, Product_as_individual_version)">
      
         <explicit name="id">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="description" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="of_product">
        
            <typename name="Product"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Product_view_definition" super.expression="ONEOF(Product_as_individual_view)">
      
         <explicit name="id">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="name" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="additional_characterization" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="initial_context">
        
            <typename name="View_definition_context"/>
      
         </explicit>
      
         <explicit name="additional_contexts">
        
            <aggregate type="SET"/>
        
            <typename name="View_definition_context"/>
      
         </explicit>
      
         <explicit name="defined_version">
        
            <typename name="Product_version"/>
      
         </explicit>
      
         <where label="WR1" expression="NOT (initial_context IN additional_contexts)">
      
         </where>
    
      </entity>

    
      <entity name="Property_representation">
      
         <explicit name="description" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="property">
        
            <typename name="Assigned_property"/>
      
         </explicit>
      
         <explicit name="rep">
        
            <typename name="Representation"/>
      
         </explicit>
      
         <explicit name="role" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Property_value_representation" supertypes="Representation">
      
         <explicit name="context_of_items">
        
            <typename name="Numerical_representation_context"/>
        
            <redeclaration entity-ref="Representation"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Representation">
      
         <explicit name="id" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="name">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="description" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="context_of_items">
        
            <typename name="Representation_context"/>
      
         </explicit>
      
         <explicit name="items">
        
            <aggregate type="SET" lower="1" upper="?"/>
        
            <typename name="Representation_item"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Representation_context">
      
         <explicit name="id">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="kind">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <inverse name="representations_in_context" entity="Representation" attribute="context_of_items">
        
            <inverse.aggregate type="SET" lower="1" upper="?"/>
      
         </inverse>
    
      </entity>

    
      <entity name="Representation_item">
      
         <explicit name="name">
        
            <builtintype type="STRING"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Resource_item">
      
         <explicit name="name">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="description" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="resource_items" optional="YES">
        
            <aggregate type="SET"/>
        
            <typename name="resource_item_select"/>
      
         </explicit>
    
      </entity>

    
      <entity name="State" super.expression="ONEOF(State_observed)">
      
         <explicit name="name">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="description" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
    
      </entity>

    
      <entity name="State_assertion">
      
         <explicit name="name">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="description" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="asserted_state">
        
            <typename name="State"/>
      
         </explicit>
      
         <explicit name="conformance_state">
        
            <typename name="State_definition"/>
      
         </explicit>
    
      </entity>

    
      <entity name="State_definition">
      
         <explicit name="name">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="description" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
    
      </entity>

    
      <entity name="State_observed" supertypes="State">
    
      </entity>

    
      <entity name="State_role">
      
         <explicit name="name">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="description" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Time_offset">
      
         <explicit name="hour_offset">
        
            <builtintype type="INTEGER"/>
      
         </explicit>
      
         <explicit name="minute_offset" optional="YES">
        
            <builtintype type="INTEGER"/>
      
         </explicit>
      
         <explicit name="sense">
        
            <typename name="offset_orientation"/>
      
         </explicit>
      
         <derived name="actual_minute_offset" expression="NVL(minute_offset, 0)">
        
            <builtintype type="INTEGER"/>
      
         </derived>
      
         <where label="WR1" expression="{0 &lt;= hour_offset &lt; 24}">
      
         </where>
      
         <where label="WR2" expression="{0 &lt;= actual_minute_offset &lt;= 59}">
      
         </where>
      
         <where label="WR3" expression="NOT (((hour_offset &lt;&gt; 0) OR (actual_minute_offset &lt;&gt; 0)) AND (sense = exact))">
      
         </where>
    
      </entity>

    
      <entity name="Uncertainty_with_unit" supertypes="Value_with_unit">
      
         <explicit name="name">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="description" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Unit">
      
         <explicit name="name">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="si_unit">
        
            <builtintype type="BOOLEAN"/>
      
         </explicit>
    
      </entity>

    
      <entity name="Value_with_unit">
      
         <explicit name="unit">
        
            <typename name="Unit"/>
      
         </explicit>
      
         <explicit name="value_component">
        
            <typename name="measure_value"/>
      
         </explicit>
    
      </entity>

    
      <entity name="View_definition_context">
      
         <explicit name="application_domain">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="life_cycle_stage">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="description" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
    
      </entity>

    
      <entity name="View_definition_relationship" abstract.supertype="YES" super.expression="ONEOF(View_definition_usage)">
      
         <explicit name="id" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="relation_type" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="description" optional="YES">
        
            <builtintype type="STRING"/>
      
         </explicit>
      
         <explicit name="relating_view">
        
            <typename name="Product_view_definition"/>
      
         </explicit>
      
         <explicit name="related_view">
        
            <typename name="Product_view_definition"/>
      
         </explicit>
    
      </entity>

    
      <entity name="View_definition_usage" supertypes="View_definition_relationship">
    
      </entity>

    
      <function name="types_of_product">
      
         <parameter name="obj">
        
            <typename name="Product"/>
      
         </parameter>
      
         <aggregate type="SET"/>
      
         <builtintype type="STRING"/>
      
         <algorithm>
  LOCAL
    category_assignments : BAG OF Product_category_assignment;
    categories : SET OF STRING := [];
    i : INTEGER;
  END_LOCAL;

  category_assignments := USEDIN(obj, 'ITEM_IDENTIFICATION_DEX.PRODUCT_CATEGORY_ASSIGNMENT.PRODUCTS');
  REPEAT i := LOINDEX(category_assignments) TO HIINDEX(category_assignments);
    categories := categories + category_assignments[i].category.name;
  END_REPEAT;
  RETURN (categories);
      </algorithm>
    
      </function>

  
   </schema>


</express>