SCHEMA aviation_maintenance_dex; TYPE activity_item = SELECT (Activity, Activity_method, Activity_property, Applied_activity_assignment, Applied_state_assignment, Assigned_property, Contract, Document, Effectivity, Independent_property, Location, Location_representation, Managed_resource, Message, Observation_consequence, Organization, Person, Person_in_organization, Product, Product_version, Product_view_definition, Resource_as_realized, Resource_event, Resource_item, Resource_property, State, State_assertion, State_assessment, Task_element, Task_method, Task_method_version, View_definition_relationship); END_TYPE; TYPE activity_realization_select = SELECT (Task_element, Task_method, Task_method_version); END_TYPE; TYPE affected_item_select = SELECT (State, State_definition, Activity_method, Activity_property, Assigned_property, Contract, Document, Organization, Person, Person_in_organization, Product, Product_version, Product_view_definition, Resource_item, Resource_property, View_definition_relationship); END_TYPE; TYPE any_number_value = NUMBER; END_TYPE; TYPE any_string_value = STRING; END_TYPE; TYPE approval_item = SELECT (Activity, Activity_method, Activity_method_realization, Activity_property, Affected_items_assignment, Applied_activity_assignment, Applied_state_assignment, Assembly_component_relationship, Assigned_property, Breakdown, Breakdown_element, Breakdown_element_definition, Breakdown_element_usage, Breakdown_element_version, Breakdown_version, Classification_assignment, Condition, Condition_assignment, Contract, Contract_assignment, Date_or_date_time_assignment, Directed_activity, Document_assignment, Effectivity, Effectivity_assignment, Identification_assignment, Independent_property, Justification, Justification_assignment, Justification_support_assignment, Location_assignment, Managed_resource, Message, Observation, Organization_or_person_in_organization_assignment, Part, Part_version, Part_view_definition, Person_in_organization, Product_as_individual, Product_as_realized, Product_category_assignment, Product_design_version_to_individual, Product_view_definition, Resource_as_realized, Resource_as_realized_assignment, Resource_event, Resource_item, Resource_property, Security_classification, Security_classification_assignment, Task_element, Task_method, Task_method_version, Task_objective, Type_of_person, View_definition_context, View_definition_relationship, Work_order, Work_request); END_TYPE; TYPE assigned_document_select = SELECT (Document); END_TYPE; TYPE characterized_activity_definition = SELECT (Activity, Activity_method, Condition, Resource_as_realized_assignment, Resource_event, Task_objective); END_TYPE; TYPE characterized_resource_select = SELECT (Managed_resource, Resource_as_realized, Resource_item); END_TYPE; TYPE classification_item = SELECT (Representation_relationship, Activity, Activity_method, Activity_method_realization, Activity_property, Activity_property_representation, Activity_relationship, Affected_items_assignment, Applied_activity_assignment, Applied_state_assignment, Approval, Approval_assignment, Approval_status, Approving_person_organization, Assigned_property, Breakdown, Breakdown_context, Breakdown_element, Breakdown_element_usage, Breakdown_element_version, Breakdown_of, Calendar_date, Class, Condition, Condition_assignment, Condition_parameter, Content_item, Contract, Contract_assignment, Date_or_date_time_assignment, Date_time, Directed_activity, Document, Document_assignment, Effectivity, Effectivity_assignment, External_class_library, Identification_assignment, Independent_property, Independent_property_representation, Justification, Justification_assignment, Justification_support_assignment, Local_time, Location, Location_assignment, Location_representation, Managed_resource, Message, Observation, Observation_consequence, Observation_item, Organization, Organization_or_person_in_organization_assignment, Organization_type, Part, Part_version, Part_view_definition, Person, Person_in_organization, Product, Product_as_realized, Product_category, Product_design_version_to_individual, Product_version, Product_view_definition, Property_representation, Representation, Representation_context, Representation_item, Resource_as_realized, Resource_as_realized_assignment, Resource_event, Resource_item, Resource_property, Resource_property_representation, Security_classification, Security_classification_assignment, State, State_assertion, State_assessment, State_definition, State_role, Task_method, Task_objective, Type_of_person, Type_of_person_definition, Uncertainty_with_unit, Unit, Value_with_unit, View_definition_context, View_definition_relationship, Work_order, Work_request); END_TYPE; TYPE condition_item = SELECT (Activity, Activity_method_realization, Activity_property, Applied_activity_assignment, Approval, Approval_assignment, Assigned_property, Document_assignment, Managed_resource, Resource_event, Resource_item, Resource_property, State_definition, View_definition_relationship); END_TYPE; TYPE condition_parameter_item = SELECT (Organization, Activity, Activity_method, Activity_property, Activity_property_representation, Approval, Approval_assignment, Assigned_property, Calendar_date, Classification_assignment, Contract_assignment, Date_or_date_time_assignment, Date_time, Document_assignment, Identification_assignment, Independent_property_representation, Managed_resource, Organization_or_person_in_organization_assignment, Product, Product_as_individual, Product_category_assignment, Product_version, Product_view_definition, Property_representation, Representation, Resource_as_realized, Resource_event, Resource_property, Resource_property_representation, State, State_definition, View_definition_relationship); END_TYPE; TYPE contract_item = SELECT (Activity, Activity_method, Activity_method_realization, Applied_activity_assignment, Breakdown, Breakdown_element, Breakdown_version, Document, External_class, External_class_library, Managed_resource, Message, Part, Part_version, Product_as_individual, Product_as_realized, Resource_event, Resource_item, Security_classification, Task_element, Task_method, Task_method_version, Task_objective); END_TYPE; TYPE date_or_date_time_item = SELECT (Approving_person_organization, Activity, Activity_method, Activity_method_realization, Activity_property, Activity_property_representation, Activity_relationship, Affected_items_assignment, Applied_activity_assignment, Applied_state_assignment, Approval, Assembly_component_relationship, Assigned_property, Breakdown, Breakdown_element, Breakdown_element_usage, Breakdown_version, Classification_assignment, Condition, Condition_assignment, Contract, Contract_assignment, Date_or_date_time_assignment, Directed_activity, Document, Document_assignment, Effectivity, Effectivity_assignment, Identification_assignment, Independent_property, Independent_property_representation, Justification, Justification_assignment, Justification_support_assignment, Location_assignment, Location_representation, Managed_resource, Message, Observation, Organization_or_person_in_organization_assignment, Part, Part_version, Part_view_definition, Person, Person_in_organization, Product_as_realized, Product_category_assignment, Product_design_version_to_individual, Product_version, Product_view_definition, Property_representation, Representation, Resource_as_realized, Resource_as_realized_assignment, Resource_event, Resource_item, Resource_property, Resource_property_representation, Security_classification, Security_classification_assignment, State, State_assertion, State_assessment, State_definition, Task_element, Task_method, Task_method_version, Task_objective, View_definition_context, Work_order, Work_request); END_TYPE; TYPE date_or_date_time_select = SELECT (Calendar_date, Date_time); END_TYPE; TYPE date_or_event = SELECT (Calendar_date, Date_time); END_TYPE; TYPE day_in_month_number = INTEGER; WHERE WR1: {1 <= SELF <= 31}; END_TYPE; TYPE documented_element_select = SELECT (Document_assignment, Class, Condition_parameter, Condition_assignment, Justification, Activity, Activity_method, Activity_method_realization, Activity_property, Activity_property_representation, Applied_activity_assignment, Approval, Approval_assignment, Assembly_component_relationship, Assigned_property, Breakdown, Breakdown_context, Breakdown_element, Breakdown_element_usage, Breakdown_version, Condition, Contract, Contract_assignment, Document, Effectivity, Effectivity_assignment, Identification_assignment, Independent_property, Independent_property_representation, Location, Location_assignment, Location_representation, Managed_resource, Message, Observation, Observation_consequence, Organization, Organization_or_person_in_organization_assignment, Organization_type, Part, Part_version, Part_view_definition, Person, Product, Product_as_realized, Product_design_version_to_individual, Product_version, Product_view_definition, Property_representation, Representation, Representation_item, Resource_as_realized, Resource_event, Resource_item, Resource_property, Resource_property_representation, Security_classification, Security_classification_assignment, State, State_assertion, State_assessment, State_definition, Task_element, Task_method, Task_method_version, Task_objective, Type_of_person, Type_of_person_definition, View_definition_relationship, Work_order, Work_request); END_TYPE; TYPE effectivity_item = SELECT (View_definition_usage, Resource_property_representation, Condition_assignment, Activity_property_representation, Independent_property_representation, Classification_assignment, Activity, Activity_method, Activity_property, Applied_activity_assignment, Approval_assignment, Assembly_component_relationship, Assigned_property, Breakdown, Breakdown_element, Breakdown_element_definition, Breakdown_element_usage, Breakdown_element_version, Breakdown_of, Breakdown_version, Contract_assignment, Date_or_date_time_assignment, Document, Document_assignment, Effectivity_assignment, Identification_assignment, Justification, Justification_assignment, Justification_support_assignment, Location_assignment, Organization_or_person_in_organization_assignment, Part, Part_version, Part_view_definition, Person_in_organization, Product, Product_as_individual, Product_as_individual_version, Product_as_individual_view, Product_design_version_to_individual, Product_version, Product_view_definition, Resource_property, Security_classification_assignment, Work_order); END_TYPE; TYPE hour_in_day = INTEGER; WHERE WR1: {0 <= SELF < 24}; END_TYPE; TYPE identification_item = SELECT (Class, Activity, Activity_method, Activity_method_realization, Activity_property, Affected_items_assignment, Applied_activity_assignment, Applied_state_assignment, Approval, Approval_status, Assigned_property, Breakdown, Breakdown_element, Breakdown_element_definition, Breakdown_element_version, Breakdown_version, Condition, Contract, Directed_activity, Document, Document_assignment, Effectivity, External_class_library, Independent_property, Justification, Justification_assignment, Justification_support_assignment, Location, Location_representation, Managed_resource, Message, Observation, Observation_consequence, Organization, Organization_or_person_in_organization_assignment, Organization_type, Part, Part_version, Part_view_definition, Person, Person_in_organization, Product_as_individual, Product_as_individual_version, Product_as_individual_view, Product_as_realized, Resource_as_realized, Resource_event, Resource_item, Resource_property, Security_classification, Security_classification_assignment, State, State_assertion, State_assessment, State_definition, Task_element, Task_method, Task_method_version, Task_objective, Type_of_person, View_definition_relationship, Work_order, Work_request); END_TYPE; TYPE justification_item = SELECT (Condition_assignment, Property_value_representation, Activity, Activity_method, Activity_method_realization, Activity_property, Applied_activity_assignment, Applied_state_assignment, Approval, Approval_assignment, Assigned_property, Classification_assignment, Document_assignment, Effectivity, Independent_property, Location_assignment, Message, Product, Product_version, Product_view_definition, Resource_as_realized, Resource_event, Resource_item, Resource_property, State_assertion, State_assessment, Task_element, Task_method, Task_method_version, Task_objective, View_definition_relationship); END_TYPE; TYPE justification_support_item = SELECT (Activity, Activity_method, Activity_property, Applied_activity_assignment, Applied_state_assignment, Approval, Assigned_property, Contract, Document, Effectivity, Independent_property, Location, Location_assignment, Message, Observation, Product, Product_version, Product_view_definition, Resource_property, State, State_definition, View_definition_relationship, Work_order, Work_request); END_TYPE; TYPE length_measure = REAL; END_TYPE; TYPE location_assignment_select = SELECT (Activity, Applied_activity_assignment, Breakdown, Breakdown_element, Breakdown_element_definition, Breakdown_version, Document, Managed_resource, Organization, Organization_type, Person, Person_in_organization, Product, Product_version, Product_view_definition, Resource_item, Task_element, Task_method, Task_method_version, Type_of_person, View_definition_relationship); END_TYPE; TYPE measure_value = SELECT (any_number_value, any_string_value, length_measure, plane_angle_measure); END_TYPE; TYPE message_definer_select = SELECT (Organization, Person_in_organization); END_TYPE; TYPE minute_in_hour = INTEGER; WHERE WR1: {0 <= SELF <= 59}; END_TYPE; TYPE month_in_year_number = INTEGER; WHERE WR1: {1 <= SELF <= 12}; END_TYPE; TYPE observation_recorder = SELECT (Product_as_realized); END_TYPE; TYPE observed_context = SELECT (Activity, Activity_method, Applied_activity_assignment, Breakdown, Breakdown_element, Breakdown_element_definition, Breakdown_version, Product, Product_version, Product_view_definition, Resource_as_realized, Resource_item, Task_element, Task_method, Task_method_version, View_definition_relationship, Work_order, Work_request); END_TYPE; TYPE offset_orientation = ENUMERATION OF (ahead, exact, behind); END_TYPE; TYPE organization_or_person_in_organization_item = SELECT (Activity, Activity_method, Activity_method_realization, Activity_property, Activity_property_representation, Activity_relationship, Affected_items_assignment, Applied_activity_assignment, Applied_state_assignment, Approval, Assembly_component_relationship, Assigned_property, Breakdown, Breakdown_element, Breakdown_element_usage, Breakdown_version, Classification_assignment, Condition, Condition_assignment, Contract, Contract_assignment, Date_or_date_time_assignment, Directed_activity, Document, Document_assignment, Effectivity, Effectivity_assignment, Identification_assignment, Independent_property, Independent_property_representation, Justification, Justification_assignment, Justification_support_assignment, Location_assignment, Managed_resource, Message, Observation, Organization_or_person_in_organization_assignment, Part, Part_version, Part_view_definition, Person_in_organization, Product_as_individual, Product_as_realized, Product_category, Product_category_assignment, Product_version, Product_view_definition, Property_representation, Representation, Resource_as_realized, Resource_as_realized_assignment, Resource_event, Resource_item, Resource_property, Resource_property_representation, Security_classification, Security_classification_assignment, State, State_assertion, State_assessment, State_definition, Task_element, Task_method, Task_method_version, Task_objective, View_definition_context, Work_order, Work_request); END_TYPE; TYPE organization_or_person_in_organization_select = SELECT (Organization, Person_in_organization); END_TYPE; TYPE plane_angle_measure = REAL; END_TYPE; TYPE property_assignment_select = SELECT (Applied_activity_assignment, Applied_state_assignment, Breakdown_element_usage, Document_assignment, Location_assignment, Organization_or_person_in_organization_assignment, Part_view_definition, Person, Person_in_organization, Product_view_definition, State, State_definition, Type_of_person_definition, View_definition_relationship); END_TYPE; TYPE resource_as_realized_item = SELECT (Activity_actual, Applied_activity_assignment); END_TYPE; TYPE resource_item_select = SELECT (Document, Location, Organization, Organization_type, Part, Part_version, Part_view_definition, Person, Person_in_organization, Product_as_individual, Product_as_individual_version, Product_as_individual_view, Type_of_person); END_TYPE; TYPE second_in_minute = REAL; WHERE WR1: {0 <= SELF <= 60.000000}; END_TYPE; TYPE security_classification_item = SELECT (Activity, Activity_method, Activity_method_realization, Applied_activity_assignment, Assembly_component_relationship, Breakdown, Breakdown_element_definition, Breakdown_element_usage, Breakdown_element_version, Document, Document_assignment, Message, Part, Part_version, Part_view_definition, Product_as_individual, Product_as_individual_view, Product_as_realized, Product_design_version_to_individual, Resource_item, Task_element, Task_method, Task_method_version, Task_objective); END_TYPE; TYPE state_of_item = SELECT (Approval, Activity, Activity_method, Applied_activity_assignment, Assembly_component_relationship, Breakdown, Breakdown_element, Breakdown_element_definition, Breakdown_element_usage, Breakdown_element_version, Breakdown_version, Contract, Document, Location, Managed_resource, Message, Organization, Part, Part_version, Part_view_definition, Person_in_organization, Product, Product_as_individual, Product_as_individual_view, Product_as_realized, Product_version, Resource_as_realized, Resource_as_realized_assignment, Resource_as_realized_resource_item, Resource_event, Resource_item, Security_classification, Task_method_version, View_definition_relationship, Work_order, Work_request); END_TYPE; TYPE year_number = INTEGER; END_TYPE; TYPE message_content_item = SELECT (Product, Product_version, Activity, Activity_method, Work_order, Work_request, External_class_library, Resource_event, Resource_item); END_TYPE; TYPE observation_content_item = SELECT (Product, Product_version, Activity, State); END_TYPE; ENTITY Activity; id : STRING; name : STRING; description : OPTIONAL STRING; chosen_method : Activity_method; END_ENTITY; ENTITY Activity_actual SUBTYPE OF (Activity); END_ENTITY; ENTITY Activity_happening SUBTYPE OF (Activity_relationship); SELF\Activity_relationship.relating_activity : Activity_actual; DERIVE actual : Activity_actual := SELF\Activity_relationship.relating_activity; predicted : Activity := SELF\Activity_relationship.related_activity; WHERE WR1: NOT ('ACTIVITY_AS_REALIZED.ACTIVITY_ACTUAL' IN TYPEOF(predicted)); END_ENTITY; ENTITY Activity_method SUPERTYPE OF (ONEOF(Task_element, Task_method, Task_method_version)); name : STRING; description : OPTIONAL STRING; consequence : OPTIONAL STRING; purpose : STRING; END_ENTITY; ENTITY Activity_method_realization; id : STRING; name : STRING; description : OPTIONAL STRING; activity_method : Activity_method; realized_by : activity_realization_select; END_ENTITY; ENTITY Activity_property; name : STRING; description : STRING; described_element : characterized_activity_definition; END_ENTITY; ENTITY Activity_property_representation; description : OPTIONAL STRING; property : Activity_property; rep : Representation; role : STRING; END_ENTITY; ENTITY Activity_relationship; name : STRING; description : OPTIONAL STRING; relating_activity : Activity; related_activity : Activity; END_ENTITY; ENTITY Advisory_task_step SUBTYPE OF (Task_step); END_ENTITY; ENTITY Affected_items_assignment; assigned_work_request : Work_request; items : SET [1:?] OF affected_item_select; END_ENTITY; ENTITY Applied_activity_assignment; assigned_activity : Activity; items : SET [1:?] OF activity_item; role : STRING; END_ENTITY; ENTITY Applied_state_assignment; described_state : State; assigned_to : state_of_item; role : State_role; END_ENTITY; ENTITY Approval; status : Approval_status; purpose : STRING; planned_date : OPTIONAL date_or_date_time_select; actual_date : OPTIONAL date_or_date_time_select; END_ENTITY; ENTITY Approval_assignment; assigned_approval : Approval; items : SET [1:?] OF approval_item; role : OPTIONAL STRING; END_ENTITY; ENTITY Approval_status; status_name : STRING; END_ENTITY; ENTITY Approving_person_organization; person_organization : organization_or_person_in_organization_select; approval_date : OPTIONAL date_or_date_time_select; authorized_approval : Approval; role : OPTIONAL STRING; END_ENTITY; ENTITY Assembly_component_relationship ABSTRACT SUPERTYPE OF (ONEOF(Next_assembly_usage, Promissory_usage)) SUBTYPE OF (View_definition_usage); quantity : OPTIONAL Value_with_unit; location_indicator : OPTIONAL STRING; WHERE WR1: NOT (EXISTS(quantity)) OR ((NOT ('NUMBER' IN TYPEOF(quantity.value_component))) XOR (quantity.value_component > 0)); END_ENTITY; ENTITY Assigned_property; id : OPTIONAL STRING; name : STRING; description : OPTIONAL STRING; described_element : property_assignment_select; END_ENTITY; ENTITY Breakdown SUBTYPE OF (Product); END_ENTITY; ENTITY Breakdown_context; id : STRING; name : STRING; description : OPTIONAL STRING; breakdown : Breakdown_version; breakdown_element : Breakdown_element_definition; END_ENTITY; ENTITY Breakdown_element SUBTYPE OF (Product); END_ENTITY; ENTITY Breakdown_element_definition SUBTYPE OF (Product_view_definition); SELF\Product_view_definition.defined_version : Breakdown_element_version; END_ENTITY; ENTITY Breakdown_element_usage SUBTYPE OF (View_definition_usage); name : STRING; SELF\View_definition_relationship.relating_view : Breakdown_element_definition; SELF\View_definition_relationship.related_view : Breakdown_element_definition; DERIVE parent_element : Breakdown_element_definition := SELF\View_definition_relationship.relating_view; child_element : Breakdown_element_definition := SELF\View_definition_relationship.related_view; END_ENTITY; ENTITY Breakdown_element_version SUBTYPE OF (Product_version); SELF\Product_version.of_product : Breakdown_element; END_ENTITY; ENTITY Breakdown_of; id : STRING; name : STRING; description : OPTIONAL STRING; breakdown : Breakdown_version; of_view : Product_view_definition; END_ENTITY; ENTITY Breakdown_version SUBTYPE OF (Product_version); SELF\Product_version.of_product : Breakdown; INVERSE breakdown_of : SET [1:?] OF Breakdown_of FOR breakdown; END_ENTITY; ENTITY Calendar_date; year_component : year_number; month_component : month_in_year_number; day_component : day_in_month_number; END_ENTITY; ENTITY Class; id : STRING; name : STRING; description : OPTIONAL STRING; END_ENTITY; ENTITY Classification_assignment; assigned_class : Class; items : SET [1:?] OF classification_item; role : OPTIONAL STRING; END_ENTITY; ENTITY Condition; name : STRING; description : OPTIONAL STRING; END_ENTITY; ENTITY Condition_assignment; assigned_condition : Condition; item : condition_item; END_ENTITY; ENTITY Condition_parameter; name : STRING; description : OPTIONAL STRING; condition : Condition; parameter : OPTIONAL condition_parameter_item; END_ENTITY; ENTITY Content_item; item_identifier : STRING; item_type : STRING; access_comment : OPTIONAL STRING; END_ENTITY; ENTITY Content_item_selected SUBTYPE OF (Content_item); contents : message_content_item; END_ENTITY; ENTITY Contract; id : STRING; purpose : STRING; kind : STRING; END_ENTITY; ENTITY Contract_assignment; assigned_contract : Contract; items : SET [1:?] OF contract_item; END_ENTITY; ENTITY Date_or_date_time_assignment; assigned_date : date_or_date_time_select; role : STRING; items : SET [1:?] OF date_or_date_time_item; END_ENTITY; ENTITY Date_time; date_component : Calendar_date; time_component : Local_time; END_ENTITY; ENTITY Dated_effectivity SUBTYPE OF (Effectivity); start_bound : date_or_event; end_bound : OPTIONAL date_or_event; END_ENTITY; ENTITY Decreasing_resource_event SUBTYPE OF (Resource_event); END_ENTITY; ENTITY Directed_activity SUBTYPE OF (Activity); directive : Work_order; END_ENTITY; ENTITY Document SUBTYPE OF (Product); END_ENTITY; ENTITY Document_assignment; assigned_document : assigned_document_select; is_assigned_to : documented_element_select; role : STRING; END_ENTITY; ENTITY Effectivity SUPERTYPE OF (ONEOF(Dated_effectivity)); id : STRING; name : STRING; description : OPTIONAL STRING; END_ENTITY; ENTITY Effectivity_assignment; assigned_effectivity : Effectivity; role : STRING; items : SET [1:?] OF effectivity_item; END_ENTITY; ENTITY External_class SUBTYPE OF (Class); external_source : External_class_library; END_ENTITY; ENTITY External_class_library; id : STRING; description : OPTIONAL STRING; END_ENTITY; ENTITY Identification_assignment; identifier : STRING; role : STRING; description : OPTIONAL STRING; items : SET [1:?] OF identification_item; END_ENTITY; ENTITY Increasing_resource_event SUBTYPE OF (Resource_event); END_ENTITY; ENTITY Independent_property; id : STRING; property_type : STRING; description : OPTIONAL STRING; END_ENTITY; ENTITY Independent_property_representation; description : OPTIONAL STRING; property : Independent_property; rep : Representation; role : OPTIONAL STRING; END_ENTITY; ENTITY Justification; id : STRING; name : OPTIONAL STRING; description : STRING; context_description : OPTIONAL STRING; END_ENTITY; ENTITY Justification_assignment; justification : Justification; description : OPTIONAL STRING; item : justification_item; role : STRING; END_ENTITY; ENTITY Justification_support_assignment; justification : Justification; description : OPTIONAL STRING; support_item : justification_support_item; role : STRING; END_ENTITY; ENTITY Local_time; hour_component : hour_in_day; minute_component : OPTIONAL minute_in_hour; second_component : OPTIONAL second_in_minute; zone : Time_offset; END_ENTITY; ENTITY Location; name : STRING; description : OPTIONAL STRING; alternative_location_representations : SET OF Location_representation; END_ENTITY; ENTITY Location_assignment; description : OPTIONAL STRING; role : OPTIONAL STRING; entity_for_location : location_assignment_select; location_for_assignment : Location; END_ENTITY; ENTITY Location_representation; END_ENTITY; ENTITY Managed_resource; name : STRING; description : OPTIONAL STRING; quantity : OPTIONAL Value_with_unit; item : Resource_item; END_ENTITY; ENTITY Measure_item ABSTRACT SUPERTYPE OF (ONEOF(Numerical_item_with_unit, Value_range)) SUBTYPE OF (Representation_item); WHERE WR1: SIZEOF(USEDIN(SELF, 'AVIATION_MAINTENANCE_DEX.REPRESENTATION.ITEMS')) > 0; END_ENTITY; ENTITY Message; id : STRING; message_type : STRING; contains : SET OF Content_item; defined_by : OPTIONAL SET OF message_definer_select; purpose : OPTIONAL STRING; END_ENTITY; ENTITY Next_assembly_usage SUBTYPE OF (Assembly_component_relationship); END_ENTITY; ENTITY Numerical_item_with_unit SUBTYPE OF (Measure_item, Value_with_unit); END_ENTITY; ENTITY Numerical_representation_context SUBTYPE OF (Representation_context); units : OPTIONAL SET [1:?] OF Unit; accuracies : OPTIONAL SET [1:?] OF Uncertainty_with_unit; END_ENTITY; ENTITY Observation; id : STRING; name : STRING; description : STRING; applies_to : SET OF Observation_item; in_context : SET OF observed_context; observed_by : SET OF observation_recorder; observed_during : OPTIONAL Activity_actual; related_records : SET OF Observation_item; END_ENTITY; ENTITY Observation_consequence; id : STRING; name : STRING; infered_from : Observation; requests : Work_request; role : STRING; END_ENTITY; ENTITY Observation_item; access_comment : STRING; item_identifier : STRING; item_type : STRING; END_ENTITY; ENTITY Observation_item_selected SUBTYPE OF (Observation_item); contents : observation_content_item; END_ENTITY; ENTITY Organization; id : OPTIONAL STRING; name : STRING; END_ENTITY; ENTITY Organization_or_person_in_organization_assignment; assigned_entity : organization_or_person_in_organization_select; role : STRING; items : SET [1:?] OF organization_or_person_in_organization_item; END_ENTITY; ENTITY Organization_type; name : STRING; description : OPTIONAL STRING; END_ENTITY; ENTITY Part SUBTYPE OF (Product); WHERE WR1: SIZEOF(['part', 'raw material', 'tool'] * types_of_product(SELF)) = 1; END_ENTITY; ENTITY Part_version SUBTYPE OF (Product_version); SELF\Product_version.of_product : Part; END_ENTITY; ENTITY Part_view_definition SUBTYPE OF (Product_view_definition); SELF\Product_view_definition.defined_version : Part_version; END_ENTITY; ENTITY Person; last_name : STRING; first_name : OPTIONAL STRING; middle_names : OPTIONAL LIST [1:?] OF STRING; prefix_titles : OPTIONAL LIST [1:?] OF STRING; suffix_titles : OPTIONAL LIST [1:?] OF STRING; END_ENTITY; ENTITY Person_in_organization; concerned_person : Person; containing_organization : Organization; role : STRING; END_ENTITY; ENTITY Product ABSTRACT SUPERTYPE OF (ONEOF(Breakdown, Breakdown_element, Document, Part, Product_as_individual)); id : STRING; name : OPTIONAL STRING; description : OPTIONAL STRING; END_ENTITY; ENTITY Product_as_individual SUBTYPE OF (Product); END_ENTITY; ENTITY Product_as_individual_version ABSTRACT SUPERTYPE OF (ONEOF(Product_as_realized)) SUBTYPE OF (Product_version); SELF\Product_version.of_product : Product_as_individual; END_ENTITY; ENTITY Product_as_individual_view SUBTYPE OF (Product_view_definition); SELF\Product_view_definition.defined_version : Product_as_individual_version; END_ENTITY; ENTITY Product_as_realized SUBTYPE OF (Product_as_individual_version); END_ENTITY; ENTITY Product_category; id : OPTIONAL STRING; name : STRING; description : OPTIONAL STRING; END_ENTITY; ENTITY Product_category_assignment; category : Product_category; products : SET [1:?] OF Product; END_ENTITY; ENTITY Product_design_version_to_individual; product_design_version : Product_version; individual_product : Product_as_individual_version; END_ENTITY; ENTITY Product_version ABSTRACT SUPERTYPE OF (ONEOF(Breakdown_element_version, Breakdown_version, Part_version, Product_as_individual_version)); id : STRING; description : OPTIONAL STRING; of_product : Product; END_ENTITY; ENTITY Product_view_definition SUPERTYPE OF (ONEOF(Breakdown_element_definition, Part_view_definition, Product_as_individual_view)); id : STRING; name : OPTIONAL STRING; additional_characterization : OPTIONAL STRING; initial_context : View_definition_context; additional_contexts : SET OF View_definition_context; defined_version : Product_version; WHERE WR1: NOT (initial_context IN additional_contexts); END_ENTITY; ENTITY Promissory_usage SUBTYPE OF (Assembly_component_relationship); END_ENTITY; ENTITY Property_representation; description : OPTIONAL STRING; property : Assigned_property; rep : Representation; role : OPTIONAL STRING; END_ENTITY; ENTITY Property_value_representation SUBTYPE OF (Representation); SELF\Representation.context_of_items : Numerical_representation_context; END_ENTITY; ENTITY Representation; id : OPTIONAL STRING; name : STRING; description : OPTIONAL STRING; context_of_items : Representation_context; items : SET [1:?] OF Representation_item; END_ENTITY; ENTITY Representation_context; id : STRING; kind : STRING; INVERSE representations_in_context : SET [1:?] OF Representation FOR context_of_items; END_ENTITY; ENTITY Representation_item; name : STRING; END_ENTITY; ENTITY Representation_relationship; relation_type : STRING; description : STRING; rep_1 : Representation; rep_2 : Representation; END_ENTITY; ENTITY Resource_as_realized; name : STRING; description : OPTIONAL STRING; quantity : OPTIONAL Value_with_unit; END_ENTITY; ENTITY Resource_as_realized_assignment; assigned_resource : Resource_as_realized; item : resource_as_realized_item; END_ENTITY; ENTITY Resource_as_realized_resource_item SUBTYPE OF (Resource_as_realized); resource_item : Resource_item; END_ENTITY; ENTITY Resource_event; name : STRING; description : OPTIONAL STRING; quantity : OPTIONAL Value_with_unit; resource : Managed_resource; END_ENTITY; ENTITY Resource_item; name : STRING; description : OPTIONAL STRING; resource_items : OPTIONAL SET OF resource_item_select; END_ENTITY; ENTITY Resource_property; name : STRING; description : STRING; described_element : characterized_resource_select; END_ENTITY; ENTITY Resource_property_representation; description : OPTIONAL STRING; property : Resource_property; rep : Representation; role : STRING; END_ENTITY; ENTITY Security_classification; classification_level : STRING; description : OPTIONAL STRING; END_ENTITY; ENTITY Security_classification_assignment; classification : Security_classification; items : SET [1:?] OF security_classification_item; END_ENTITY; ENTITY State SUPERTYPE OF (ONEOF(State_observed)); name : STRING; description : OPTIONAL STRING; END_ENTITY; ENTITY State_assertion; name : STRING; description : OPTIONAL STRING; asserted_state : State; conformance_state : State_definition; END_ENTITY; ENTITY State_assessment; name : STRING; description : OPTIONAL STRING; assessed_state : State; comparable_state : State_definition; END_ENTITY; ENTITY State_definition; name : STRING; description : OPTIONAL STRING; END_ENTITY; ENTITY State_observed SUBTYPE OF (State); END_ENTITY; ENTITY State_role; name : STRING; description : OPTIONAL STRING; END_ENTITY; ENTITY Task_element ABSTRACT SUPERTYPE OF (ONEOF(Task_step)) SUBTYPE OF (Activity_method); notes : OPTIONAL LIST [1:?] OF Advisory_task_step; END_ENTITY; ENTITY Task_method SUBTYPE OF (Activity_method); objective : SET OF Task_objective; END_ENTITY; ENTITY Task_method_version SUBTYPE OF (Activity_method); content : OPTIONAL Task_element; of_task_method : Task_method; END_ENTITY; ENTITY Task_objective; name : STRING; description : STRING; END_ENTITY; ENTITY Task_step SUBTYPE OF (Task_element); DERIVE step_text : STRING := SELF\Activity_method.description; END_ENTITY; ENTITY Time_offset; hour_offset : INTEGER; minute_offset : OPTIONAL INTEGER; sense : offset_orientation; DERIVE actual_minute_offset : INTEGER := NVL(minute_offset, 0); WHERE WR1: {0 <= hour_offset < 24}; WR2: {0 <= actual_minute_offset <= 59}; WR3: NOT (((hour_offset <> 0) OR (actual_minute_offset <> 0)) AND (sense = exact)); END_ENTITY; ENTITY Type_of_person; name : STRING; description : OPTIONAL STRING; has : SET OF Type_of_person_definition; END_ENTITY; ENTITY Type_of_person_definition; name : STRING; description : OPTIONAL STRING; END_ENTITY; ENTITY Uncertainty_with_unit SUBTYPE OF (Value_with_unit); name : STRING; description : OPTIONAL STRING; END_ENTITY; ENTITY Unit; name : STRING; si_unit : BOOLEAN; END_ENTITY; ENTITY Value_range SUBTYPE OF (Measure_item); lower_limit : Numerical_item_with_unit; upper_limit : Numerical_item_with_unit; END_ENTITY; ENTITY Value_with_unit; unit : Unit; value_component : measure_value; END_ENTITY; ENTITY View_definition_context; application_domain : STRING; life_cycle_stage : STRING; description : OPTIONAL STRING; END_ENTITY; ENTITY View_definition_relationship ABSTRACT SUPERTYPE OF (ONEOF(View_definition_usage)); id : OPTIONAL STRING; relation_type : OPTIONAL STRING; description : OPTIONAL STRING; relating_view : Product_view_definition; related_view : Product_view_definition; END_ENTITY; ENTITY View_definition_usage SUBTYPE OF (View_definition_relationship); END_ENTITY; ENTITY Work_order; name : STRING; description : OPTIONAL STRING; in_response_to : SET OF Work_request; END_ENTITY; ENTITY Work_request; request_id : STRING; version_id : STRING; description : OPTIONAL STRING; purpose : STRING; END_ENTITY; FUNCTION types_of_product (obj : Product):SET OF STRING; LOCAL category_assignments : BAG OF Product_category_assignment; categories : SET OF STRING := []; i : INTEGER; END_LOCAL; category_assignments := USEDIN(obj, 'AVIATION_MAINTENANCE_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); END_FUNCTION; END_SCHEMA;