24 APR 2023
A new CodeDistanceVerticalUomBaseType codelist is added in the model, used for the derivation of the CodeDistanceVerticalUomType.
Rationale for change
The AIXM-146 Change Proposal, between AIXM 5.1 and AIXM 5.1.1, has introduced a correction to a number of data types that were missing nilReason attributes. A dedicated CodeDistanceVerticalUomType was introduced with AIXM-146, used for the StandardLevelColumn attribute unitOfMeasurement as shown in the UML class diagram below.
However, in the AIXM 5.1.1 XSD, the CodeDistanceverticalUomType does not have the nilReason attribute:
This means that the unitOfMeasurement attribute cannot be NIL and cannot get a nilReason. This is a discrepancy between the UML model and the XML Schema of AIXM 5.1.1.
The error seems to be due to a limitation of the UML to XSD script. As this is a unique situation where a Uom data type is used directly as data type for an AIXM feature property, the simplest solution is to create a dedicated <<codelist>> for the unitOfMeasurement attribute, instead of trying to reuse the UomDistanceVerticalType.
[FWD_1:1] “No data mapping is necessary and no data loss occurs when data is exchanged from a system (A) that uses AIXM 5.1.1 for output towards a system (B) that uses AIXM 5.2 for input.”
[BWD_MAP_LOSS] Data mapping is possible, but some data would be lost (or converted into Notes) when data is exchanged from a system (B) that uses AIXM 5.2 for output towards a system (A) that uses AIXM 5.1.1 for input.
Change Proposal details
In the UML model:
- Add a new <<codelist>> CodeDistanceVerticalUomBaseType as a specialisation of the xsd:string type, definition = “A code indicating the unit of measurement used for vertical distances”, allowable values:
- FT = Feet
- M = Metres
- FL = Flight level in hundreds of feet
- SM = Standard metres (tens of metres)
- OTHER = Other
- Change the specialisation relationship of CodeDistanceVerticalUomType to be from CodeDistanceVerticalUomBaseType
The resulting model is presented in the following UML class diagram:
Mapping AIXM 5.1.1 to AIXM 5.2 (forward)
- Not applicable
Mapping AIXM 5.2 to AIXM 5.1.1 (backward)
The following algorithm shall be applied:
- [MAPC-02] For each StandardLevelColumn that has a nilReason value for its child unitOfMeasurement child element, from the three backward mapping options available, the first two (discard the value or use an extension) are straightforward and do not need any further details. The 3rd option (backward mapping into a Note) is detailed in order to provide a complete description of this case and its conversion option. The following mapping into Note algorithm is proposed:
- Add an annotation.Note associated with the owner class having
- property = “unitOfMeasurement”
- LinguisticNote.note=”nilReason: <value of @nilReason>;
- Remove the nilReason attribute of the unitOfMeasurement
(Note: for mapping test data see:)
|AIXM 5.2||AIXM 5.1(.1)|