The item_type_list category holds the list of item data type definitions. The key item in this category is _item_type_list.code. Data types are associated with data items by references to this key from the item_type category. One of the data type codes defined in this category must be assigned to each data item.
The definition of a data type consists of the specification of the item's primitive type and a regular expression [1] which defines the pattern that must be matched by any occurrence of the item. The primitive type code, _item_type_list.primitive_code, can assume values of char, numb, and null. This code is provided for backward compatibility with STAR and CIF applications that employ loose data typing. The data item _item_type_list.construct holds the regular expression that must be matched by the data type. Simple regular expressions can be used to define character fields of restricted width, floating point and integer formats.
MIF [6] applications have extended the notion of the regular expression to include data item components. This permits the construction of complex data items from one or more component data items using regular expression algebra. These extended regular expressions are defined in category item_type_conditions.
The DDL for the item_type_list category is given in the following section.
save_ITEM_TYPE_LIST
_category.description
;
Attributes which define each type code.
;
_category.id item_type_list
_category.mandatory_code no
_category_key.name '_item_type_list.code'
loop_
_category_group.id 'ddl_group'
'item_group'
save_
save__item_type_list.code
_item_description.description
;
The codes specifying the nature of the data value.
;
loop_
_item.name
_item.category_id
_item.mandatory_code
'_item_type_list.code' item_type_list yes
'_item_type.code' item_type yes
_item_type.code code
_item_linked.child_name '_item_type.code'
_item_linked.parent_name '_item_type_list.code'
save_
save__item_type_list.primitive_code
_item_description.description
;
The codes specifying the primitive type of the data value.
;
_item.name '_item_type_list.primitive_code'
_item.category_id item_type_list
_item.mandatory_code yes
_item_type.code code
loop_
_item_enumeration.value
_item_enumeration.detail
numb 'numerically-interpretable string'
char 'character or text string (case-sensitive)'
uchar 'character or text string (case-insensitive)'
null 'for dictionary purposes only'
save_
save__item_type_list.construct
_item_description.description
;
When a data value can be defined as a pre-determined sequence of
characters, or optional characters, or data names (for which the
definition is also available), it is specified as a construction.
The rules of construction conform to the the regular expression
(REGEX) specificatiopns detailed in the IEEE document P1003.2
Draft 11.2 Sept 1991 (ftp file '/doc/POSIX/1003.2/p121-140').
Resolved data names for which _item_type_list.construct
specifications exist are replaced by these constructions,
otherwise the data name string is not replaced.
;
_item.name '_item_type_list.construct'
_item.category_id item_type_list
_item.mandatory_code no
_item_type.code char
_item_examples.case '{_year}-{_month}-{_day}'
_item_examples.detail 'typical construction for _date'
save_
save__item_type_list.detail
_item_description.description
;
An optional description of the data type
;
_item.name '_item_type_list.detail'
_item.category_id item_type_list
_item.mandatory_code no
_item_type.code text
save_