#\#CIF_2.0
##############################################################################
#                                                                            #
# TEST DICTIONARY WITH DATA ITEM DEFINITIONS THAT MISUSE THE TYPE DIMENSION  #
#                                 ATTRIBUTE                                  #
#                                                                            #
##############################################################################
data_TEST_DIMENSION_DIC
_dictionary.title            DDL_DIC
_dictionary.class            Reference
_dictionary.version          0.1.0
_dictionary.date             2023-11-13
_dictionary.uri              http://www.fake.org/test_dimension.dic
_dictionary.ddl_conformance  4.2.0
_dictionary.namespace        TestDdlDic
_description.text
;
    Test dictionary that purposely contains data item definitions with
    inapplicable type dimension attributes.

    Note, that the dictionary is defined as a 'Reference' dictionary instead
    of a 'Instance' dictionary since some of the attribute values needed for
    testing are only allowed to appear DDLm reference dicionary (DDL_DIC).
;
loop_
_dictionary_audit.version
_dictionary_audit.date
_dictionary_audit.revision
0.1.0 2023-11-13 'Initial release of the dictionary.'

save_TEST_DIMENSION_HEAD
_definition.id               TEST_DIMENSION_HEAD
_definition.scope            Category
_definition.class            HEAD
_definition.update           2021-07-27
_description.text
;
 The HEAD category of the dictionary.
;
_name.category_id            DDL_DIC
_name.object_id              TEST_DIMENSION_HEAD
save_

save_TEST_INAPPLICABLE_DIMENSION
_definition.id               TEST_INAPPLICABLE_DIMENSION
_definition.scope            Category
_definition.class            Set
_definition.update           2021-07-27
_description.text
;
 Data item definitions in the TEST_INAPPLICABLE_DIMENSION category purposely
 contain inapplicable type dimension attributes.
;
_name.category_id            TEST_DIMENSION_HEAD
_name.object_id              TEST_INAPPLICABLE_DIMENSION
save_

save_test_inapplicable_dimension.no_container

_definition.id               '_test_inapplicable_dimension.no_container'
_definition.class             Attribute
_definition.update            2021-07-27
_description.text
;
 A data item definition that contains the _type.dimension attribute
 and is not explicitly assigned a _type.container attribute value.
;
_name.category_id             test_inapplicable_dimension
_name.object_id               no_container
_type.purpose                 Describe
_type.source                  Assigned
_type.dimension               '[3]'
_type.contents                Integer
_units.code                   none

save_

save_test_inapplicable_dimension.single_container

_definition.id               '_test_inapplicable_dimension.single_container'
_definition.class             Attribute
_definition.update            2021-07-27
_description.text
;
 A data item definition that contains the _type.dimension attribute
 and is explicitly assigned the 'Single' as the value of the _type.container
 attribute.
;
_name.category_id             test_inapplicable_dimension
_name.object_id               single_container
_type.purpose                 Describe
_type.source                  Assigned
_type.container               Single
_type.dimension               '[3]'
_type.contents                Integer
_units.code                   none

save_

save_test_inapplicable_dimension.list_container

_definition.id               '_test_inapplicable_dimension.list_container'
_definition.class             Attribute
_definition.update            2021-07-27
_description.text
;
 A data item definition that contains the _type.dimension attribute
 and is explicitly assigned the 'List' as the value of the _type.container
 attribute.
;
_name.category_id             test_inapplicable_dimension
_name.object_id               list_container
_type.purpose                 Describe
_type.source                  Assigned
_type.container               List
_type.dimension               '[3]'
_type.contents                Integer
_units.code                   none

save_

save_test_inapplicable_dimension.array_container

_definition.id               '_test_inapplicable_dimension.array_container'
_definition.class             Attribute
_definition.update            2021-07-27
_description.text
;
 A data item definition that contains the _type.dimension attribute
 and is explicitly assigned the 'Array' as the value of the _type.container
 attribute.
;
_name.category_id             test_inapplicable_dimension
_name.object_id               array_container
_type.purpose                 Describe
_type.source                  Assigned
_type.container               Array
_type.dimension               '[3]'
_type.contents                Integer
_units.code                   none

save_

save_test_inapplicable_dimension.matrix_container

_definition.id               '_test_inapplicable_dimension.matrix_container'
_definition.class             Attribute
_definition.update            2021-07-27
_description.text
;
 A data item definition that contains the _type.dimension attribute
 and is explicitly assigned the 'Matrix' as the value of the _type.container
 attribute.
;
_name.category_id             test_inapplicable_dimension
_name.object_id               matrix_container
_type.purpose                 Describe
_type.source                  Assigned
_type.container               Matrix
_type.dimension               '[3]'
_type.contents                Integer
_units.code                   none

save_

save_test_inapplicable_dimension.table_container

_definition.id               '_test_inapplicable_dimension.table_container'
_definition.class             Attribute
_definition.update            2021-07-27
_description.text
;
 A data item definition that contains the _type.dimension attribute
 and is explicitly assigned the 'Table' as the value of the _type.container
 attribute.
;
_name.category_id             test_inapplicable_dimension
_name.object_id               table_container
_type.purpose                 Describe
_type.source                  Assigned
_type.container               Table
_type.dimension               '[3]'
_type.contents                Integer
_units.code                   none

save_

save_test_inapplicable_dimension.implied_container

_definition.id               '_test_inapplicable_dimension.implied_container'
_definition.class             Attribute
_definition.update            2021-07-27
_description.text
;
 A data item definition that contains the _type.dimension attribute
 and is explicitly assigned the 'Implied' as the value of the _type.container
 attribute.
;
_name.category_id             test_inapplicable_dimension
_name.object_id               implied_container
_type.purpose                 Describe
_type.source                  Assigned
_type.container               Implied
_type.dimension               '[3]'
_type.contents                Integer
_units.code                   none

save_

###

save_TEST_MANDATORY_DIMENSION

    _definition.id               TEST_MANDATORY_DIMENSION
    _definition.scope            Category
    _definition.class            Set
    _definition.update           2023-11-13
    _description.text
;
     Data item definitions in the TEST_MANDATORY_DIMENSION category purposely
     do not contain the type dimension attribute. Since the _type.dimension
     attribute does not have a default value, the interpretation of such
     definitions with certain conteiner types (e.g. Matrix, Array, List)
     is undefined and should thus be reported.
;
    _name.category_id            TEST_DIMENSION_HEAD
    _name.object_id              TEST_MANDATORY_DIMENSION

save_

save_test_mandatory_dimension.no_container

    _definition.id               '_test_mandatory_dimension.no_container'
    _definition.class             Attribute
    _definition.update            2023-11-13
    _description.text
;
     A data item definition that contains neither the '_type.container', nor
     the '_type.dimension' attribute.
;
    _name.category_id             test_mandatory_dimension
    _name.object_id               no_container
    _type.purpose                 Describe
    _type.source                  Assigned
    _type.contents                Integer
    _units.code                   none

save_

save_test_mandatory_dimension.single_container

    _definition.id               '_test_mandatory_dimension.single_container'
    _definition.class             Attribute
    _definition.update            2023-11-13
    _description.text
;
     A data item definition that is explicitly assigned the 'Single' container
     and does not contain the '_type.dimension' attribute. This is OK, since
     the specified container type does not require a dimension to be
     interpreted unambigiously.
;
    _name.category_id             test_mandatory_dimension
    _name.object_id               single_container
    _type.purpose                 Describe
    _type.source                  Assigned
    _type.container               Single
    _type.contents                Integer
    _units.code                   none

save_

save_test_mandatory_dimension.list_container

    _definition.id               '_test_mandatory_dimension.list_container'
    _definition.class             Attribute
    _definition.update            2023-11-13
    _description.text
;
     A data item definition that is explicitly assigned the 'List' container
     and does not contain the '_type.dimension' attribute. This is not OK,
     since the specified container type does require a dimension to be
     interpreted unambigiously.
;
    _name.category_id             test_mandatory_dimension
    _name.object_id               list_container
    _type.purpose                 Describe
    _type.source                  Assigned
    _type.container               List
    _type.contents                Integer
    _units.code                   none

save_

save_test_mandatory_dimension.array_container

    _definition.id               '_test_mandatory_dimension.array_container'
    _definition.class             Attribute
    _definition.update            2023-11-13
    _description.text
;
     A data item definition that is explicitly assigned the 'Array' container
     and does not contain the '_type.dimension' attribute. This is not OK,
     since the specified container type does require a dimension to be
     interpreted unambigiously.
;
    _name.category_id             test_mandatory_dimension
    _name.object_id               array_container
    _type.purpose                 Describe
    _type.source                  Assigned
    _type.container               Array
    _type.contents                Integer
    _units.code                   none

save_

save_test_mandatory_dimension.matrix_container

    _definition.id               '_test_mandatory_dimension.matrix_container'
    _definition.class             Attribute
    _definition.update            2023-11-13
_description.text
;
     A data item definition that is explicitly assigned the 'Matrix' container
     and does not contain the '_type.dimension' attribute. This is not OK,
     since the specified container type does require a dimension to be
     interpreted unambigiously.
;
    _name.category_id             test_mandatory_dimension
    _name.object_id               matrix_container
    _type.purpose                 Describe
    _type.source                  Assigned
    _type.container               Matrix
    _type.contents                Integer
    _units.code                   none

save_

save_test_mandatory_dimension.table_container

    _definition.id               '_test_mandatory_dimension.table_container'
    _definition.class             Attribute
    _definition.update            2023-11-13
_description.text
;
     A data item definition that is explicitly assigned the 'Table' container
     and does not contain the '_type.dimension' attribute. This is OK,
     since the specified container type does require a dimension to be
     interpreted unambigiously.
;
    _name.category_id             test_mandatory_dimension
    _name.object_id               table_container
    _type.purpose                 Describe
    _type.source                  Assigned
    _type.container               Table
    _type.contents                Integer
    _units.code                   none

save_

save_test_mandatory_dimension.implied_container

    _definition.id               '_test_mandatory_dimension.implied_container'
    _definition.class             Attribute
    _definition.update            2023-11-13
    _description.text
;
     A data item definition that is explicitly assigned the 'Implied' container
     and does not contain the '_type.dimension' attribute. This is OK,
     since the specified container type does require a dimension to be
     interpreted unambigiously.
;
    _name.category_id             test_mandatory_dimension
    _name.object_id               implied_container
    _type.purpose                 Describe
    _type.source                  Assigned
    _type.container               Implied
    _type.contents                Integer
    _units.code                   none

save_
