Schema: application_context_schema

Source : ISO 10303-41



SCHEMA application_context_schema;

REFERENCE FROM basic_attribute_schema   -- ISO 10303-41
  (description_attribute,
   description_attribute_select,
   get_description_value,
   get_id_value,
   id_attribute,
   id_attribute_select);

REFERENCE FROM date_time_schema   -- ISO 10303-41
  (year_number);

REFERENCE FROM language_schema   -- ISO 10303-41
  (language);

REFERENCE FROM management_resources_schema   -- ISO 10303-41
  (identification_assignment);

REFERENCE FROM person_organization_schema   -- ISO 10303-41
  (organization);

REFERENCE FROM support_resource_schema   -- ISO 10303-41
  (identifier,
   label,
   text);


TYPE acs_description_attribute_select = SELECT BASED_ON description_attribute_select WITH
   (application_context);
END_TYPE;

TYPE acs_id_attribute_select = SELECT BASED_ON id_attribute_select WITH
   (application_context);
END_TYPE;

TYPE exchange_identification_context_select = SELECT
   (identification_assignment,
    organization);
END_TYPE;

ENTITY application_context;
  application : label;
DERIVE
  description : text := get_description_value(SELF);
  id : identifier := get_id_value(SELF);
INVERSE
  context_elements : SET[1:?] OF application_context_element FOR frame_of_reference;
WHERE
  WR1: SIZEOF(USEDIN(SELF, 'BASIC_ATTRIBUTE_SCHEMA.' + 'DESCRIPTION_ATTRIBUTE.DESCRIBED_ITEM')) <= 1;
  WR2: SIZEOF(USEDIN(SELF, 'BASIC_ATTRIBUTE_SCHEMA.' + 'ID_ATTRIBUTE.IDENTIFIED_ITEM')) <= 1;
END_ENTITY;

ENTITY application_context_element
  SUPERTYPE OF (ONEOF (library_context,
                       product_concept_context,
                       product_context,
                       product_definition_context));
  name : label;
  frame_of_reference : application_context;
END_ENTITY;

ENTITY application_context_relationship;
  name : label;
  description : OPTIONAL text;
  relating_context : application_context;
  related_context : application_context;
END_ENTITY;

ENTITY application_protocol_definition;
  status : label;
  application_interpreted_model_schema_name : label;
  application_protocol_year : year_number;
  application : application_context;
END_ENTITY;

ENTITY dependent_product_definition_exchange_context
  ABSTRACT SUPERTYPE
  SUBTYPE OF (product_definition_context);
WHERE
  WR1: SIZEOF (TYPEOF(SELF) * ['APPLICATION_CONTEXT_SCHEMA.INDENTIFICATION_DEPENDENT_PRODUCT_DEFINITION_EXCHANGE_CONTEXT','APPLICATION_CONTEXT_SCHEMA.LANGUAGE_DEPENDENT_PRODUCT_DEFINITION_EXCHANGE_CONTEXT']) > 0;
END_ENTITY;

ENTITY identification_dependent_product_definition_exchange_context
  SUBTYPE OF (dependent_product_definition_exchange_context);
  identification_context : exchange_identification_context_select;
END_ENTITY;

ENTITY language_dependent_product_definition_exchange_context
  SUBTYPE OF (dependent_product_definition_exchange_context);
  language : language;
END_ENTITY;

ENTITY library_context
  SUBTYPE OF (application_context_element);
  library_reference : label;
END_ENTITY;

ENTITY product_concept_context
  SUBTYPE OF (application_context_element);
  market_segment_type : label;
END_ENTITY;

ENTITY product_context
  SUBTYPE OF (application_context_element);
  discipline_type : label;
END_ENTITY;

ENTITY product_definition_context
  SUBTYPE OF (application_context_element);
  life_cycle_stage : label;
END_ENTITY;

END_SCHEMA;  -- application_context_schema