ISO 10303-21:2016(E)
The header section contains information that is applicable to the entire exchange structure. Every exchange structure shall contain a header section.
The header section shall begin with the special token "HEADER;" and shall terminate with the special token "ENDSEC;".
The header section shall contain one instance of each of the following entities: file_description, file_name, and file_schema, and they shall appear in that order. Instances of schema_population, file_population, section_language and section_context may appear after file_schema.
NOTE Annexes H and I present examples of a header section.
If instances of user-defined header section entities are present, they shall appear after the header section entity instances. The syntax of the header section entity instances is given in Table 3 in WSN. Each entity name shall map to the KEYWORD of the HEADER_ENTITY production. Clause 12 provides mapping of simple and aggregate data types to the PARAMETER_LIST for the attribute values of these entity instances.
This clause specifies header section entities and types that appear in the header section of the exchange structure. The header section entities are specified in EXPRESS.
*) SCHEMA header_section_schema; TYPE exchange_structure_identifier = STRING; END_TYPE; (*
This schema specifies the header section entities that are specific to the process of transferring product data using the exchange structure.
NOTE The exchange_structure_identifier type serves the same purpose as the identifier type in ISO 10303-41 but has been defined separately in order to keep this part of ISO 10303 independent from the data models defined in the ISO 10303 integrated resource series parts.
The file_description specifies the version of this part of ISO 10303 used to create the exchange structure as well as its contents.
*) ENTITY file_description; description : LIST [1:?] OF STRING (256) ; implementation_level : STRING (256) ; END_ENTITY; (*
description: an informal description of the contents of this exchange structure.
implementation_level: an identification of the specification to which the encoding in this exchange structure conforms and any conformance options employed in that encoding. The value of this attribute shall indicate conformance to this version of this part of ISO 10303 by having either the value "4;1" the value "4;2" or the value "4;3" (see 4.3). The value for exchange structures adhering to syntactical conformance class 1 shall be "4;1". The value for exchange structures adhering to syntactical conformance class 2 shall be "4;2". The value for exchange structures adhering to syntactical conformance class 3 shall be "4;3".
If the following restrictions on the encoding are met, the value "3;1" may be used to indicate conformance to this version of this part of ISO 10303:
If used, the value "3;1" shall designate exchange structures adhering to syntactical conformance class 1 of edition 2.
If the following additional restrictions on the encoding are met, the value "2;1" may be used to indicate conformance to this version of this part of ISO 10303:
If used, the value "2;1" shall designate exchange structures adhering to conformance class 1 of edition 1.
NOTE 1 The general form for the value is "v;cc", where v is the version number of this part of ISO 10303, as specified in annex C, and cc is the encoding of conformance class. Future versions of this part of ISO 10303 may specify additional values for v and cc.
NOTE 2 The use of "3;1" is provided to support upward compatibility with implementations based on ISO 10303-21:2002, and the use of "2;1" is provided to support upward compatibility with implementations based on ISO 10303-21:1994.
NOTE 3 The values "2;2" and "3;2" were used by earlier editions to indicate an encoding that used the external mapping for all entity instances.
The file_name provides human readable information about the exchange structure. With the exception of the name and time_stamp attributes, the contents of the attributes of this entity are not defined by this part of ISO 10303.
*) ENTITY file_name; name : STRING (256) ; time_stamp : time_stamp_text ; author : LIST [ 1 : ? ] OF STRING (256) ; organization : LIST [ 1 : ? ] OF STRING (256) ; preprocessor_version : STRING (256) ; originating_system : STRING (256) ; authorization : STRING (256) ; END_ENTITY; TYPE time_stamp_text = STRING(256); END_TYPE; (*
name: the string of graphic characters used to name this exchange structure. Two exchange structures with the same name shall use compatible representations for anchors with the same anchor name.
The use of an object identifier within the name is recommended but not required as it provides unambiguous identification of the anchor structure.
If an object identifier is provided, it shall have the form specified in ISO/IEC 8824-1. The use of object identifiers within this International Standard is described in clause 3 of ISO 10303-1.
EXAMPLE
name | Example usage |
---|---|
brep_shape | Exchange structure has the anchors of a Brep shape model |
PMI{ 1 2 10303 501 0 1 1 1 } | Exchange structure has the anchors of a PMI model version defined by the OID |
time_stamp: the date and time specifying when the exchange structure was created. The contents of the string shall correspond to the extended format for the complete calendar date as specified in ISO 8601 concatenated to the extended format for the time of the day as specified either in 4.3.1.1 or in 4.3.3 of ISO 8601. The date and time shall be separated by the latin capital letter T as specified in 4.4.1 of ISO 8601. The alternate formats of 4.3.1.1 and 4.3.3 permit the optional inclusion of a time zone specifier.
author: the name and mailing address of the person responsible for creating the exchange structure.
organization: the group or organization with whom the author is associated.
preprocessor_version: the system used to create the exchange structure, including the system product name and version.
originating_system: the system from which the data in this exchange structure originated.
authorization: the name and mailing address of the person who authorized the sending of the exchange structure.
EXAMPLE
Time stamp element | Complete extended format |
---|---|
Calendar Date 12 April 1993 | 1993-04-12 |
Time of the Day 27 minutes 46 seconds past 15 hours | 15:27:46 |
Time Zone 5 hours west of Greenwich | Time Zone field is optional -05:00 |
Above date and time encoded within the Time_Stamp field | 1993-04-12T15:27:46-05:00 |
The file_schema entity identifies the EXPRESS schemas that specify the entity instances in the data sections. The attribute schema_identifiers shall consist of a list of strings, each of which shall contain the name of the schema optionally followed by the object identifier assigned to that schema.
If the name of a schema contains small letters, such small letters shall be converted to the corresponding capital letters. Only capital letters shall occur in strings of the schema_name.
If an object identifier is provided, it shall have the form specified in ISO/IEC 8824-1. The use of object identifiers within this International Standard is described in clause 3 of ISO 10303-1. When available, the use of the object identifier is recommended as it provides unambiguous identification of the schema.
NOTE The general form of an object identifier is a sequence of space-delimited integers. The sequence is enclosed within braces ("{", "}").
*) ENTITY file_schema; schema_identifiers : LIST [1:?] OF UNIQUE schema_name; END_ENTITY; TYPE schema_name = STRING(1024); END_TYPE; (*
schema_identifiers: the schemas that specify the entity instances in the data section.
EXAMPLE The instance below identifies an EXPRESS schema called 'CONFIG_CONTROL_DESIGN':
FILE_SCHEMA (('CONFIG_CONTROL_DESIGN'));
The instance below uses an object identifier to indicate a specific version of an EXPRESS schema called 'AUTOMOTIVE_DESIGN':
FILE_SCHEMA (('AUTOMOTIVE_DESIGN { 1 0 10303 214 1 1 1 }'));
The schema_population identifies the collection of instances that comprise the schema population of the exchange structure for the purpose of determining schema conformance to the first schema of the file_schema (see clause 8.2.4). The header section of an exchange structure shall contain at most one schema_population instance.
The schema population shall contain all entity instances in all data sections in the exchange structure. Additional members of the population shall be determined as follows:
NOTE 1 The definition of schema population is transitive. If file A references file B and file B references file C then the schema population of A includes the schema populations of both B and C.
EXAMPLE 1 A file may have multiple references to the same entity instance because of duplicate references, Universal Resource Identifiers that resolve to the same address, or other reasons. In such cases, the instance only appears once in the schema population.
Each external_file_location shall be represented by three strings that define an address, an optional time_stamp and an optional copy of the message_digest of the referenced file (see clause 14).
If the file at the address does not resolve to an exchange structure then no instances from that file shall be included in the schema population.
If a time stamp is included and its value describes a date and time after the date and time in the file_name of the header of the referenced exchange structure, then the referenced exchange structure has not been changed since this reference was created.
If a message_digest is included then it validates the integrity of the referenced file. A message digest shall be given only if the exchange structure has at least one signature section. The message digest shall use the hash algorithm chosen for the first signature section.
*) ENTITY schema_population; external_file_identifications : LIST [ 1 : ? ] OF LIST [1:3] OF STRING; END_ENTITY; (*
external_file_identifications: list of external addresses for the files whose schema populations are to be included in the schema population of this file. Each address shall be represented as a triple of strings. If the second or third string is not set then it shall be represented as a null value "$".
NOTE 2 Including the message_digest of the referenced file in the schema population means that when this file is signed then the referenced file is also being signed.
EXAMPLE 2 Sample instantiation for a schema population:
SCHEMA_POPULATION((('http://www.acme.net/design.stp','2012-12-09T17:00:00',$), ('http://www.giant.com/facets.stl','2013-01-11T19:00:00','0c1c87c6e7318529d36eb36b6f16deaeefb7af422033372c8fb5e94fb0af346b'), ('http://www.giant.com/assembly.stp','2013-01-11T19:00:00','f243b19fb3c9f4f1a71edb9ec6390d15987b443ade7ad3081a174ff421ef8fe7')));
NOTE 3 Files that are not exchange structures may be included in the schema population so that their contents can also be validated using a signature.
The file_population entity identifies a collection of entity instances within the schema population defined in 8.2.5 for the purpose of determining schema conformance to a particular EXPRESS schema. The collection of entity instances shall be determined by applying an algorithm identified by the attribute determination_method to the set of data sections identified by the attribute governed_sections. If no value is provided for governed_sections, the algorithm shall be applied to all data sections in the schema population.
An exchange structure may contain zero, one, or many file_population instances. A data section name may appear in the governed_sections attribute of zero, one, or many file_population instances.
NOTE 1 Clause E.2 defines three possible determination methods.
NOTE 2 If no value is provided for the governed_sections attribute, the attribute is encoded by a dollar sign ("$"), as specified in 12.2.2, and not as an empty list.
*) ENTITY file_population; governing_schema : schema_name; determination_method : exchange_structure_identifier; governed_sections : OPTIONAL SET [ 1 : ? ] OF section_name; END_ENTITY; TYPE section_name = exchange_structure_identifier; END_TYPE; (*
governing_schema: name of the EXPRESS schema that applies to population of entity instances identified by this header section file_population entry. The schema name must appear in the header section file_schema entry.
determination_method: string of graphic characters used to identify an algorithm to be used for selecting entity instances in the exchange.
governed_sections: the names of the data sections that are used as input to the determination method.
The section_language entity identifies the default language for string values in a data section. The attribute default_language shall contain the name of the language. The name of the language shall be encoded using the Alpha-3 bibliographic code specified in ISO 639-2.
The attribute section shall contain the name of a data section in the exchange structure for which the default language shall apply. If the exchange structure contains a single, unnamed, data section, no value shall be provided for the attribute section (see 12.2.2). The header section of an exchange structure shall contain at most one section_language instance where no value is provided for the attribute section. If present, the default language encoded by this instance shall apply to all data sections in the exchange structure for which no other section_language instance applies.
EXAMPLE Some possible values for default_language are 'eng' for English, 'fre' for French, 'rus' for Russian, or 'ger' for German.
*) ENTITY section_language; section : OPTIONAL section_name; default_language : language_name; UNIQUE UR1: section; END_ENTITY; TYPE language_name = exchange_structure_identifier; END_TYPE; (*
section: name of the data section for which the default_language is to apply.
default_language: name of the language used for string values.
The section_context entity identifies information describing the contexts within which the instances encoded in the exchange structure are applicable.
The attribute section shall contain the name of a data section in the exchange structure for which the context identifiers shall apply. If the exchange structure contains a single, unnamed, data section, no value shall be provided for the attribute section (see 12.2.2). The header section of an exchange structure shall contain at most one section_context instance where no value is provided for the attribute section. If present, the context identifiers encoded by this instance shall apply to all data sections in the exchange structure for which no other section_context instance applies.
*) ENTITY section_context; section : OPTIONAL section_name; context_identifiers : LIST [1:?] OF context_name; UNIQUE UR1: section; END_ENTITY; TYPE context_name = STRING; END_TYPE; (*
section: name of the data section for which the context_identifiers are to apply.
context_identifiers: identifiers which convey contextual information about instances encoded in the exchange structure.
NOTE An application protocol may define symbolic identifiers for each application protocol conformance class. The context identifiers for a section may indicate a partial list of application protocol conformance classes satisfied by the data in the section.
EXAMPLE 1 Language and context identifier assignments for an exchange structure with a single, unnamed, data section.
HEADER; . . FILE_SCHEMA(('GEOMETRY')); SECTION_LANGUAGE ($,'eng'); -----------------> A SECTION_CONTEXT ($,('tag_a')); --------------> B ENDSEC; DATA; . ENDSEC;
A: Assign the language encoded 'eng' (English) to the data section.
B: Assign the context tag 'tag_a' to the data section.
EXAMPLE 2 Language and context identifier assignments for an exchange structure with several data sections.
HEADER; . . FILE_SCHEMA(('GEOMETRY')); SECTION_LANGUAGE ('DS1','ger'); -------------> A SECTION_LANGUAGE ('DS2','epo'); -------------> B SECTION_LANGUAGE ($,'haw'); -----------------> C SECTION_CONTEXT ('DS1',('tag_a','tag_b')); --> D SECTION_CONTEXT ('DS2',('tag_c')); ----------> E SECTION_CONTEXT ($,('tag_d')); --------------> F ENDSEC; DATA ('DS1',('GEOMETRY')); . ENDSEC; DATA ('DS2',('GEOMETRY')); . ENDSEC; DATA ('DS3',('GEOMETRY')); . ENDSEC; DATA ('DS4',('GEOMETRY')); . ENDSEC;
A: Assign the language encoded 'ger' (German) to the data section named 'DS1'.
B: Assign the language encoded 'epo' (Esperanto) to the data section named 'DS2'.
C: Assign the language encoded 'haw' (Hawaiian) to all data sections that do not otherwise have a language assignment. These are the sections named 'DS3' and 'DS4'.
D: Assign the context identifiers 'tag_a' and 'tag_b' to the data section named 'DS1'.
E: Assign the context identifier 'tag_c' to the data section named 'DS2'.
F: Assign the context identifier 'tag_d' to all data sections that do not otherwise have a context identifier assignment. These are the sections named 'DS3' and 'DS4'.
*) END_SCHEMA; (*
User-defined header section entity instances may be placed in the header section with specific restrictions as listed below:
EXAMPLE
HEADER; . . FILE_SCHEMA(('GEOMETRY')); !A_SPECIAL_ENTITY ('ABC',123); -------> USER DEFINED ENTITY . . ENDSEC;
© ISO 2016 — All rights reserved