SDMX Transformation Structure Module The transformation structure module defines the structure of transformation scheme and transformation constructs. VtlDefinitionSchemeType is an abstract extension of the ItemSchemeType for VTL schemes. Identifies the VTL version to which the items in the defined scheme comply. Note that definition schemes can only reference definition schemes using the same VTL version. TransformationSchemeBaseType is an abstract base type for the TransformationSchemeType. It restricts the item types to be only transformations. TransformationSchemeType describes the structure of a transformation scheme. A transformation scheme contains a set of transformations to be executed together (in the same run). It can contain any number of transformations that produce any number of results. References a VTL mapping scheme which defines aliases for given SDMX artefacts that are used in the transformations as well as the mapping methods used when converting between SDMX and VTL data structures. All aliases must be defined in the referenced scheme. This also must be used if the basic mapping methods are not used. References a name personalisation scheme, which defines the overriding of some standard VTL names (to be assigned to some measures and/or attributes of the data structure) with some corresponding personalised names. This must be used if transformations within a transformation scheme personalise standard names. All personalisations must be defined in the referenced scheme. References a custom type scheme which defines custom conversions of VTL scalar types to SDMX data types. This must be used if custom type conversions are used in the transformations defined in a transformation scheme. All custom conversions must be defined in the referenced scheme. References a ruleset scheme that defines one or more previously defined rulesets which can be invoked by VTL operators. If a transformation defined in a transformation scheme refers to a ruleset, the scheme in which the ruleset is defined must be referenced here. References a user defined operator scheme that defines one or more user defined operators used by the transformations defined in a transformation scheme. If a transformation in a transformation scheme refers to a user defined operator, the scheme in which the user defined operator is defined must be referenced here. Transformation describes the details of a single transformation within a transformation scheme. TransformationBaseType defines the base refinement of the TransformationType. Its purpose is to retrict the urn attribute. TransformationType defines the structure of a transformation. A transformation is an assignment of a VTL expression to a specific result. The right-hand side of the VTL statement. This is expression that is executed for this transformation. It include references to operands and other artefacts. The expression may contain references to SDMX artefacts using the reduced URN format; see Section 6 SDMX Standards ("SDMX Technical Notes"), 10.2.3 ("Abbreviation of the URN"). The left-hand side of the VTL statement. This identifies the result artefact, which may be used in subsequent transformations. If the result is an SDMX artefact, the is expressed using the alias; see Section 6 SDMX Standards ("SDMX Technical Notes"), 10.2.3 ("Abbreviation of the URN"). Indicates if the the result is permanently stored. A persistent result (value of true) can be used by transformation defined in other transformation schemes, but a non-persistent result (value of false) can only be used by transformations within the same transformation scheme. VtlMappingSchemeType defines a set of mappings between SDMX and VTL. VtlMapping details a mapping between SDMX and VTL transformation. VtlMappingBaseType defines the base refinement of the VtlMappingType. Its purpose is to retrict the urn attribute. VtlMappingType defines the structure of a single mapping between the reference to a SDMX artefact made from VTL transformations, rulesets, user defined operators and the corresponding SDMX structure identifier. These are used to assign an alternative names to SDMX Dataflows, Codelists, Concept Schemes, or Concepts. Although are distinct sub-classes in the Information Model, this structure serves to express them all. The references SDMX artefact serves to distinguish which type of sub-class (VtlDatflowMapping or VtlCodelistMapping, or VtlConceptMapping) is being described. When this is used to assign an alias for a SDMX Dataflow, this can also be used to indicate the methods used to convert the data structure from SDMX to VTL and vice-versa. Finally, this can be used to override the deault Basic mapping methods used for Dataflows by utilizing the GenericDataflow element in place of a reference to a specific Dataflow. A reference to the SDMX Dataflow that the mapping is defined for. This is used to create a VtlDataflowMapping. In this case, it is possible to specify the mapping details to and from VTL. Indicates that the ToVtlMapping and FromVtlMapping are the default mapping methods to be applied, overriding the Basic methods if necessary. The mapping methods in this case would be applied to any dataflows that are not explicitly defined in other VtlMappings. Describes the mapping from a SDMX dataflow to a VTL data structure. Describes the mapping to a SDMX dataflow from a VTL data structure. A reference to the SDMX Codelist that the mapping is defined for. This is used to create a VtlCodelistMapping. A reference to the SDMX Concept that the mapping is defined for. This is used to create a VtlConceptMapping. The alias used to refer to the reference SDMX artefact in the transformations. This must be unique within the mapping scheme in which it is defined. ToVtlMappingType defines the mapping method and filter used when mapping from SDMX to VTL. Identfies a sub space of the mapped dataflow that the mapping applies to. This is a collection of references to the dimensions that make up the space. The mapping method used when mapping from SDMX to VTL. This is typically a StandardToVtlMappingMethodType, but can be any other value to allow for non-standard methods. The implied default is Basic. A simple type enumerating the standard mapping methods when converting from data structures from SDMX to VLT. The default mapping method. See Section 6 SDMX Standards ("SDMX Technical Notes"), 10.3.3.1 ("Basic Mapping"). Method for mapping multi-measure data. See Section 6 SDMX Standards ("SDMX Technical Notes"), 10.3.3.2 ("Pivot Mapping"). The basic mapping method, using attributes to measures. See Section 6 SDMX Standards ("SDMX Technical Notes"), 10.3.3.3 ("From SDMX DataAttributes to VTL Measures"). The pivot mapping method, using attributes to measures. See Section 6 SDMX Standards ("SDMX Technical Notes"), 10.3.3.3 ("From SDMX DataAttributes to VTL Measures"). A simple type that allows for a standard to VTL mapping method enumeration value or a string value for other mapping methods. FromVtlMappingType defines the mapping method and filter used when mapping from VTL to SDMX. Identfies a super space of the mapped dataflow that the mapping applies to. This is a collection of references to the dimensions that make up the space. The mapping method used when mapping from VTL to SDMX. This is typically a StandardFromVtlMappingMethodType, but can be any other value to allow for non-standard methods. The implied default is Basic for single-measure VTL data structures and Unpivot for multi-meausre VTL data structures. A simple type enumerating the standard mapping methods when converting from data structures from VTL to SDMX. The default mapping method, applicable only when the VLT data structure has just one measure component. See Section 6 SDMX Standards ("SDMX Technical Notes"), 10.3.4.1 ("Basic Mapping"). The mapping method to be used when the VTL data structure has more than one measure component. See Section 6 SDMX Standards ("SDMX Technical Notes"), 10.3.4.2 ("Unpivot Mapping"). Mapping of multi-measure VTL where on measure is mapped to the SDMX primary measure and the remaining measures are mapped as data attributes. See Section 6 SDMX Standards ("SDMX Technical Notes"), 10.3.4.3 ("From VTL Measures to SDMX DataAttributes"). A simple type that allows for standard from VTL mapping method enumeration value or a string value for other mapping methods. SpaceKey defines the structure of a super- or sub- space for a SDMX Dataflow. It is a collection of references to the dimensions that make up the space. A reference to a dimension by its identifier. NamePersonalisationSchemeType defines a set of personalisations of VTL standard names that are used in a set of transformations. NamePersonalisation details a name personalisation that is used in a transformation. NamePersonalisationBaseType defines the base refinement of the NamePersonalisationType. Its purpose is to retrict the urn attribute. NamePersonalisationType defines the structure of a name personalisation. A name personalisation is is used in place of a standard VTL name in some VTL operations. Provides the VTL standard name that is being personalised. Provides the personalised name that is used in place of the VTL standard name in the transformation expressions. Identifies the type of VTL model artefact that is being personalised. In VTL 2.0, this is valuedomain or variable. RulesetSchemeBaseType is an abstract base type for the RulesetSchemeType. It restricts the item types to be only rulesets. RulesetSchemeType defines a collection of rulesets that are used in transformations. References a VTL mapping scheme which defines aliases for given SDMX artefacts that are used in the rulesets. Rulesets defined on value domains reference Codelists or Concept Schemes (the latter in VTL are considered as the Value Domains of the variables corresponding to the SDMX Measure Dimensions). The rulesets defined on variables reference Concepts (for which a definite representation is assumed). Therefore, a ruleset should only refer to Codelists, Concept Schemes, and Concepts. Ruleset details a ruleset within a ruleset scheme. RulesetBaseType defines the base refinement of the RulesetType. Its purpose is to retrict the urn attribute. RulesetType defines the structure of a ruleset. A ruleset is a persistent set of rules which can be invoked by using appropriate VTL operators. A VTL statement for the definition of a ruleset. This must conform to the syntax of the VTL definition language. The VTL type of the ruleset. In VTL 2.0, this is datapoint or hierarchical This model artefact on which the ruleset is defined. In VTL 2.0, this is value domain or variable. UserDefinedOperatorSchemeBaseType is an abstract base type for the UserDefinedOperatorSchemeType. It restricts the item types to be only user defined operators. UserDefinedOperatorSchemeType defines a collection of user defined operators that are used in transformations. References a VTL mapping scheme which defines aliases for given SDMX artefacts that are used in the user defined operators. Although the VTL user defined operators are conceived to be defined on generic operands, so that the specific artefacts to be manipulated are passed as parameters at the invocation, it is also possible that they reference specific SDMX artefacts like Dataflows, Codelists and ConceptSchemes. In this case, the mapping schemes referenced here define the mappings to those artefacts. References a ruleset scheme defining rulesets utilized in the user defined operators. UserDefinedOperator details a user defined operators within a user defined operator scheme. UserDefinedOperatorBaseType defines the base refinement of the UserDefinedOperatorType. Its purpose is to retrict the urn attribute. UserDefinedOperatorType defines the structure of a user defined operator. A user defined operator is a custom VTL operator (not existing in the standard library) that extends the VTL standard library for specific purposes. In addition to its identification and name, and definition of the operator must be provided. A VTL statement for the definition of a new operator: it specifies the operator name, its parameters and their data types, the VTL expression that defines its behaviour. CustomTypeSchemeType defines a collection of custom types that are used in transformations. CustomType details a custom type within a custom type scheme. CustomTypeBaseType defines the base refinement of the CustomTypeType. Its purpose is to retrict the urn attribute. CustomTypeType defines the structure of a custom type. A custom type specifies a custom conversion for a VTL scalar type to a resulting data type. This conversion overrides the default conversion. Identifies the VTL scalar type that is to be converted to an resulting output data type. Identifies the resulting output data type the VTL scalar type is to be converted to. If this is an SDMX data type, it must use the proper SimpleDataType enumeration value. For all other data types, a string value can be used to identify the type. The format in which the literals of the VTL scalar type are expressed in the transformations. This is only needed if the format is different than the output format expressed by means of the VTL type. The format the VTL scalar type has to assume (e.g. YYYY-MM-DD; see VTL specifications), both for the literals in the VTL expressions and for the conversion to the output. The value to be produced in the output of the conversion when a component has a null value. A simple type that allows for a SDMX simple data type enumeration value or a string value for other data types.