Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.


ID:

AIXM-431

target version:

AIXM 5.2

version:

1.0

last updated:

04 JUL 2023

status:

APPROVED




Table of Contents
printablefalse


Description

The existing AngleIndication and DistanceIndication features become <<object>> classes and are renamed Angle and Distance respectively. As a consequence, relationships with PointReference, SegmentPoint, DesignatedPoint and SignificantPoint are modified/added/deleted. Additional vertical limitation attributes are added in the PointReference class.

Rationale for change

See https://aixmccb.atlassian.net/browse/AIXM-181

As explained in the “AIXM UML to XML Schema Mapping”, AIXM <<feature>> classes are fundamental in AIXM. They can correspond to concrete and tangible real-world objects or to abstract and conceptual items. AIXM Features have properties that can change in time. These properties are encapsulated into classes with stereotype <<object>>, which do not exist independently (outside of a feature).

In the current model, AngleIndication and DistanceIndication are declared as <<feature>>. The following UML class diagrams show their attributes and associations (except association with Note). As the two classes have similar associations, the AngleIndication and DistanceIndication are shown “overlapped”.

Considering their current relationships with PointReference and the SegmentLeg specialisations, the Angle/DistanceIndication exist only when they are used to locate the position of a start/end segment point or as trajectory limitations for a procedure leg. In these cases, they are de-facto “objects” (complex properties of the related features). The only exception is the association “locates DesignatedPoint”, which could theoretically allow to provide fix information for a point, independent from its use as segment point. However, this also has a significant limitation, as the AngleIndication and DistanceIndication are separated features, which cannot be combined to provide a “significant point fix” information. Further more, the circular association Angle/DistanceIndication → (fix) DesignatedPoint ← (locates) PointReference → (isBasedOn) Angle/DistanceIndication could be easily misused for illogical combinations of angle/distance referring to different points.

Many AIXM 5.1 users complain that creating a feature for each AngleIndication and DistanceIndication is an unnecessary complication because they are typically used for a single PointReference or SegmentLeg. In addition, their properties do not give any convenient set of identifying properties, which makes it difficult to select the correct one to use in a given context.

Therefore, it is proposed that AngleIndication and DistanceIndication are replaced with equivalent <<object>> classes, while the current model capabilities are preserved.

Also, the PointReference was missing the possibility to specify a minimum and a maximum usage level, which result from the combination of angle/distance indication and the level at which the navaid signal is available or authorised. These attributes are proposed to be added.

Impact assessment

[FWD_MAP_1:1] Data mapping is possible 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 AIXM UML model,

  • Rename the class AngleIndication into Angle and:
    • change its stereotype from <<feature>> into <<object>>;
    • change the definition of the following attributes:
      • angle = “The angle between the bearing and the North reference”;
      • angleType = “A code indicating the direction of the zero bearing
      • trueAngle = “The angle between the bearing and the True North reference”;
    • delete the association Angle locates (fix) DesignatedPoint
  • Rename the class DistanceIndication into Distance and:
    • change its stereotype from <<feature>> into <<object>>;
    • delete the association Distance locates (fix) DesignatedPoint
  • Modify PointReference, as follows:
    • Attributes:
      • Add minimumReceptionLimit, type ValDistanceVerticalType, definition = ‘The lowest vertical distance required to receive adequate signals from navigational aids used to locate a significant point.”
      • Add minimumReceptionLimitReference, type CodeVerticalReferenceType definition = “A code which defines the reference surface for the minimum reception limit.”
      • Add maximumAuthorisedLimit, type ValDistanceVerticalType, definition = “The highest vertical distance where a point reference may be used to locate a significant point. ”
      • Add maximumAuthorisedLimitReference, type CodeVerticalReferenceType, definition = “A code which defines the reference surface for the maximum authorised limit.”
    • Associations
      • Delete association PointReference locates DesignatedPoint
      • modify the association PointReference isBasedOnAngle Angle as follows:
        • change its aggregation mode into “composite” on the PointReference side;
        • change the role name on the Angle side into angleReference
      • modify the association PointReference isBasedOnDistance Distance as follows:
        • change its aggregation mode into “composite” on the PointReference side;
        • change the role name on the Distance side into distanceReference
  • In the DesignatedPoint class
    • add composition relationship DesignatedPoint isLocatedBy PointReference with
      • PointReference role "fix" (definition = "The point reference occurs at (locates) DesignatedPoint."), multiplicity 0..*
  • In the SegmentLeg class:
    • modify the association SegmentLeg isLimitedBy Angle as follows:
      • change its aggregation mode into “composite” on the SegmentLeg side;
      • change the role name on the Angle side into limitingAngle;
    • modify the association SegmentLeg isLimitedBy DistanceIndication as follows:
      • change its aggregation mode into “composite” on the SegmentLeg side;
      • change the role name on the Distance side into limitingDistance;

The following UML class diagram shows the new, modified and deleted model elements for the AngleIndication part:

The following UML class diagram shows the new, modified and deleted model elements for the DistanceIndication part:

Mapping AIXM 5.1.1 to AIXM 5.2 (forward)

The following algorithm shall be applied:

  • For each AngleIndication:
    • if it has a child element DesignatedPoint, then:
      • [MAPC-07] Find the corresponding (referencing) Designated Point and:
        • if necessary, apply the “timeSlice alignment” procedure described for this mapping case;
        • add PointReference.angleReference.AngleUse.theAngle.Angle descendant elements with the Angle element having:
          • gml:identifier value concatenated as value of the DesignatedPoint.gml:identifier and AngleIndication.gml:identifier value
            • note: this concatenation will prevent the risk of colliding gml:identifiers for different AngleIndication elements, in case of a circular mapping (AIXM 5.1 -> 5.2 -> 5.1);
          • angle, angleType, indicationDirection, trueAngle, cardinalDirection, minimumReceptionAltitude elements and pointChoice_* value copied from the AngleIndication element
        • if it is referenced by a DepartureLeg, ArrivalLeg, FinalLeg, InitialLeg, IntermediateLeg, MissedApproachLeg, or ArrivalFeederLeg through a child angle element:
          • [MAPC-07] Find the corresponding (referencing) DepartureLeg, ArrivalLeg, FinalLeg, InitialLeg, IntermediateLeg, MissedApproachLeg, or ArrivalFeederLeg element and:
            • if necessary, apply the “timeSlice alignment” procedure described for this mapping case;
            • rename the angle into limitingAngle and:
              • remove its xlink:href attribute
              • add an Angle child element having:
                • gml:identifier value concatenated as value of the *Leg.gml:identifier and AngleIndication.gml:identifier value
                  • note: this concatenation will prevent the risk of colliding gml:identifiers for different AngleIndication elements, in case of a circular mapping (AIXM 5.1 -> 5.2 -> 5.1);
                • angle, angleType, indicationDirection, trueAngle, cardinalDirection, minimumReceptionAltitude elements and pointChoice_* value copied from the AngleIndication element
              • if it is referenced by PointReference
                • which may be a descendant of one of the following <<feature>> elements:
                  • DepartureLeg, ArrivalLeg, FinalLeg, InitialLeg, IntermediateLeg, MissedApproachLeg, or ArrivalFeederLeg
                    • .endPoint.TerminalSegmentPoint.facilityMakeup.PointReference.facilityAngle
                    • .startPoint.TerminalSegmentPoint.facilityMakeup.PointReference.facilityAngle
                    • .arcCentre.TerminalSegmentPoint.facilityMakeup.PointReference.facilityAngle
                  • FinalLeg
                    • .visualDescentPoint.TerminalSegmentPoint.facilityMakeup.PointReference.facilityAngle
                  • RouteSegment
                    • .start.EnRouteSegmentPoint.facilityMakeup.PointReference.facilityAngle
                    • .end.EnRouteSegmentPoint.facilityMakeup.PointReference.facilityAngle
                  • HoldingPattern
                    • .outboundLegSpan_endPoint.EnRouteSegmentPoint.facilityMakeup.PointReference.facilityAngle
                    • .outboundLegSpan_endPointTerminalSegmentPoint.facilityMakeup.PointReference.facilityAngle
                    • .outboundLegSpan_endPoint.AerialSegmentPoint.facilityMakeup.PointReference.facilityAngle
                    • .holdingPoint. EnRouteSegmentPoint.facilityMakeup.PointReference.facilityAngle
                    • .holdingPoint.TerminalSegmentPoint.facilityMakeup.PointReference.facilityAngle
                    • .holdingPoint. AerialSegmentPoint.facilityMakeup.PointReference.facilityAngle
                    • .holdingPoint.EnRouteSegmentPoint.facilityMakeup.PointReference.facilityAngle
                    • .holdingPoint.TerminalSegmentPoint.facilityMakeup.PointReference.facilityAngle
                    • .holdingPoint.AerialRefuellingPoint.facilityMakeup.PointReference.facilityAngle
                    • .holdingPoint.EnRouteSegmentPoint.facilityMakeup.PointReference.facilityAngle
                    • .holdingPoint.TerminalSegmentPoint.facilityMakeup.PointReference.facilityAngle
                    • .holdingPoint.AerialRefuellingPoint.facilityMakeup.PointReference.facilityAngle
                    • .anchor.AerialRefuellingAnchor.point.AerialRefuellingPoint.facilityMakeup.PointReference.facilityAngle
                    • .track.AerialRefuellingTrack.point.AerialRefuellingPoint.facilityMakeup.PointReference.facilityAngle
                  • [MAPC-07] For each <feature> element and the corresponding branch identified above:
                    • if necessary, apply the “timeSlice alignment” procedure described for this mapping case;
                    • rename the facilityAngle into angleReference and modify its theAngle child element as follows:
                      • remove the xlink:href attribute
                      • add an Angle child element having:
                        • gml:identifier value concatenated as value of the <feature>*.gml:identifier and AngleIndication.gml:identifier value
                          • note: this concatenation will prevent the risk of colliding gml:identifiers for different AngleIndication elements, in case of a circular mapping (AIXM 5.1 -> 5.2 -> 5.1);;
                        • angle, angleType, indicationDirection, trueAngle, cardinalDirection, minimumReceptionAltitude elements and pointChoice_* value copied from the AngleIndication element
                      • remove the AngleIndication element.
                    • For each DistanceIndication:
                      • if it has a child element DesignatedPoint, then:
                        • [MAPC-07] Find the corresponding (referencing) Designated Point and:
                          • if necessary, apply the “timeSlice alignment” procedure described for this mapping case;
                          • add PointReference.distanceReference.Distance descendant elements with the Distance element having:
                            • gml:identifier value concatenated as value of the DesignatedPoint.gml:identifier and DistanceIndication.gml:identifier value
                              • note: this concatenation will prevent the risk of colliding gml:identifiers for different DistanceIndication elements, in case of a circular mapping (AIXM 5.1 -> 5.2 -> 5.1);
                            • distance, minimumReceptionAltitude, type elements and pointChoice_* value copied from the DistanceIndication element
                          • if it is referenced by a DepartureLeg, ArrivalLeg, FinalLeg, InitialLeg, IntermediateLeg, MissedApproachLeg, or ArrivalFeederLeg through a child distance element:
                            • [MAPC-07] Find the corresponding (referencing) DepartureLeg, ArrivalLeg, FinalLeg, InitialLeg, IntermediateLeg, MissedApproachLeg, or ArrivalFeederLeg element and:
                              • if necessary, apply the “timeSlice alignment” procedure described for this mapping case;
                              • rename the distance into limitingDistance and:
                                • remove its xlink:href attribute
                                • add a Distance child element having:
                                  • gml:identifier value concatenated as value of the *Leg.gml:identifier and DistanceIndication.gml:identifier value
                                    • note: this concatenation will prevent the risk of colliding gml:identifiers for different DistanceIndication elements, in case of a circular mapping (AIXM 5.1 -> 5.2 -> 5.1);
                                  • distance, minimumReceptionAltitude, type elements and pointChoice_* value copied from the DistanceIndication element
                                • if it is referenced by PointReference
                                  • which may be a descendant of one of the following <<feature>> elements:
                                    • DepartureLeg, ArrivalLeg, FinalLeg, InitialLeg, IntermediateLeg, MissedApproachLeg, and ArrivalFeederLeg
                                      • .endPoint.TerminalSegmentPoint.facilityMakeup.PointReference.facilityDistance
                                      • .startPoint.TerminalSegmentPoint.facilityMakeup.PointReference.facilityDistance
                                      • .arcCentre.TerminalSegmentPoint.facilityMakeup.PointReference.facilityDistance
                                    • FinalLeg
                                      • .visualDescentPoint.TerminalSegmentPoint.facilityMakeup.PointReference.facilityDistance
                                    • RouteSegment
                                      • .start.EnRouteSegmentPoint.facilityMakeup.PointReference.facilityDistance
                                      • .end.EnRouteSegmentPoint.facilityMakeup.PointReference.facilityDistance
                                    • HoldingPattern
                                      • .EnRouteSegmentPoint.facilityMakeup.PointReference.facilityDistance
                                      • .outboundLegSpan_endPointTerminalSegmentPoint.facilityMakeup.PointReference facilityDistance
                                      • .outboundLegSpan_endPoint.AerialSegmentPoint.facilityMakeup.PointReference.facilityDistance
                                      • .holdingPoint. EnRouteSegmentPoint.facilityMakeup.PointReference.facilityDistance
                                      • .holdingPoint.TerminalSegmentPoint.facilityMakeup.PointReference.facilityDistance
                                      • .holdingPoint. AerialSegmentPoint.facilityMakeup.PointReference.facilityDistance
                                    • HoldingAssessment
                                      • .holdingPoint.EnRouteSegmentPoint.facilityMakeup.PointReference.facilityDistance
                                      • .holdingPoint.TerminalSegmentPoint.facilityMakeup.PointReference.facilityDistance
                                      • .holdingPoint.AerialRefuellingPoint.facilityMakeup.PointReference.facilityDistance
                                    • UnplannedHolding
                                      • .holdingPoint.EnRouteSegmentPoint.facilityMakeup.PointReference.facilityDistance
                                      • .holdingPoint.TerminalSegmentPoint.facilityMakeup.PointReference.facilityDistance
                                      • .holdingPoint.AerialRefuellingPoint.facilityMakeup.PointReference.facilityDistance
                                    • AerialRefuelling
                                      • .anchor.AerialRefuellingAnchor.point.AerialRefuellingPoint.facilityMakeup.PointReference. facilityDistance
                                      • .track.AerialRefuellingTrack.point.AerialRefuellingPoint.facilityMakeup.PointReference.facilityDistance
                                    • [MAPC-07] For each <feature> element and the corresponding branch identified above:
                                      • if necessary, apply the “timeSlice alignment” procedure described for this mapping case;
                                      • rename the facilityDistance into distanceReference and modify it as follows:
                                        • remove the xlink:href attribute
                                        • add a Distance child element having:
                                          • gml:identifier value concatenated as value of the <feature>*.gml:identifier and DistanceIndication.gml:identifier value
                                            • note: this concatenation will prevent the risk of colliding gml:identifiers for different DistanceIndication elements, in case of a circular mapping (AIXM 5.1 -> 5.2 -> 5.1);
                                          • distance, minimumReceptionAltitude, type elements and pointChoice_* value copied from the DistanceIndication element
                                        • remove the AngleIndication element.

                                        Mapping AIXM 5.2 to AIXM 5.1.1 (backward)

                                        The following algorithm shall be applied:

                                        • ****Note: see [AIXM-404] Add <<object>> persistent identifiers. It is assumed that, in order to facilitate the backward mapping, the Angle and Distance objects will have their own unique gml:identifier (UUID) value.
                                        • For each Angle element:
                                          • [MAPC-07] Create an AngleIndication <<feature>> element that retains all its child/descendant elements, including the gml:identifier value and:
                                            • copy the parent’s feature validTime and lifetime values for the new AngleIndication feature
                                            • if the parent element is a limitingAngle of a DepartureLeg, ArrivalLeg, FinalLeg, InitialLeg, IntermediateLeg, MissedApproachLeg, or ArrivalFeederLeg:
                                              • rename the parent limitingAngle into angle and:
                                                • copy the value of the Angle.gml:identifier into angle@xlink:href
                                                • delete the Angle element
                                              • if the parent element is an angleReference
                                                • which is the descendant of one of the following <feature> elements:
                                                • DepartureLeg, ArrivalLeg, FinalLeg, InitialLeg, IntermediateLeg, MissedApproachLeg, or ArrivalFeederLeg
                                                • .endPoint.TerminalSegmentPoint.facilityMakeup.PointReference.angleReference
                                                • .startPoint.TerminalSegmentPoint.facilityMakeup.PointReference.angleReference
                                                • .arcCentre.TerminalSegmentPoint.facilityMakeup.PointReference.angleReference
                                              • FinalLeg
                                                • .visualDescentPoint.TerminalSegmentPoint.facilityMakeup.PointReference.angleReference
                                              • EnrouteSegment
                                                • .start.EnRouteSegmentPoint.facilityMakeup.PointReference.angleReference
                                                • .end.EnRouteSegmentPoint.facilityMakeup.PointReference.angleReference
                                              • HoldingPattern
                                                • .outboundLegSpan_endPoint.EnRouteSegmentPoint.facilityMakeup.PointReference.angleReference
                                                • .outboundLegSpan_endPointTerminalSegmentPoint.facilityMakeup.PointReference.angleReference
                                                • .outboundLegSpan_endPoint.AerialSegmentPoint.facilityMakeup.PointReference.angleReference
                                                • .holdingPoint. EnRouteSegmentPoint.facilityMakeup.PointReference.angleReference
                                                • .holdingPoint.TerminalSegmentPoint.facilityMakeup.PointReference.angleReference
                                                • .holdingPoint. AerialSegmentPoint.facilityMakeup.PointReference.angleReference
                                                • .holdingPoint.EnRouteSegmentPoint.facilityMakeup.PointReference.angleReference
                                                • .holdingPoint.TerminalSegmentPoint.facilityMakeup.PointReference.angleReference
                                                • .holdingPoint.AerialRefuellingPoint.facilityMakeup.PointReference.angleReference
                                                • .holdingPoint.EnRouteSegmentPoint.facilityMakeup.PointReference.angleReference
                                                • .holdingPoint.TerminalSegmentPoint.facilityMakeup.PointReference.angleReference
                                                • .holdingPoint.AerialRefuellingPoint.facilityMakeup.PointReference.angleReference
                                                • .anchor.AerialRefuellingAnchor.point.AerialRefuellingPoint.facilityMakeup.PointReference.angleReference
                                                • .track.AerialRefuellingTrack.point.AerialRefuellingPoint.facilityMakeup.PointReference.angleReference
                                                • rename the ancestor angleReference into facilityAngle and:
                                                  • copy the value of the Angle.gml:identifier into facilityAngle.AngleUse.theAngleIndication@xlink:href
                                                  • delete the Angle element
                                                • If the parent element is an angleReference which is the descendant of a DesignatedPoint:
                                                  • Add a fix child element to the newly created AngleIndication that has @rxlink:href value copied from the DesignatedPoint’s gml:identifier’
                                                  • [MAPC-02] If the fix.PointReference has other child elements than just the angleReference, then from the three backward mapping options available in this case, 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 AngleIndication
                                                • purpose=“OTHER:BACKWARD_MAPPING”;
                                                • LinguisticNote.note = “role: <value of role>, priorFixTolerance: <value of priorFixTolerance>, postFixTolerance: <value of postFixTolerance>, minimumReceptionLimit: <value of minimumReceptionLimit>, minimumReceptionLimitReference: <value of minimumReceptionLimitReference>, maximumAuthorisedLimit: <value of maximumAuthorisedLimit>, maximumAuthorisedLimitReference: <value of maximumAuthorisedLimitReference>, alongCourseGuidance: <value of AngleUse.alongCourseGuidance>”
                                                  • Remove the fix object from the DesignatedPoint


                                        • For each Distance element:
                                          • Create a DistanceIndication <<feature>> element that retains all its child/descendant elements, including the gml:identifier value and:
                                            • copy the parent’s feature validTime and lifetime values for the new DistanceIndication feature
                                            • if the parent element is a limitingDistance of a DepartureLeg, ArrivalLeg, FinalLeg, InitialLeg, IntermediateLeg, MissedApproachLeg, or ArrivalFeederLeg:
                                              • rename the parent limitingDIstance into distance and:
                                                • copy the value of the Distance.gml:identifier into distance@xlink:href
                                                • delete the Distance element
                                              • if the parent element is an distanceReference
                                                • which is the descendant of one of the following <feature> elements :
                                                  • DepartureLeg, ArrivalLeg, FinalLeg, InitialLeg, IntermediateLeg, MissedApproachLeg, and ArrivalFeederLeg
                                                    • .endPoint.TerminalSegmentPoint.facilityMakeup.PointReference.distanceReference
                                                    • .startPoint.TerminalSegmentPoint.facilityMakeup.PointReference.distanceReference
                                                    • .arcCentre.TerminalSegmentPoint.facilityMakeup.PointReference.distanceReference
                                                  • FinalLeg
                                                    • .visualDescentPoint.TerminalSegmentPoint.facilityMakeup.PointReference.distanceReference
                                                  • EnrouteSegment
                                                    • .start.EnRouteSegmentPoint.facilityMakeup.PointReference.distanceReference
                                                    • .end.EnRouteSegmentPoint.facilityMakeup.PointReference.distanceReference
                                                  • HoldingPattern
                                                    • .EnRouteSegmentPoint.facilityMakeup.PointReference.distanceReference
                                                    • .outboundLegSpan_endPointTerminalSegmentPoint.facilityMakeup.PointReference distanceReference
                                                    • .outboundLegSpan_endPoint.AerialSegmentPoint.facilityMakeup.PointReference.distanceReference
                                                    • .holdingPoint. EnRouteSegmentPoint.facilityMakeup.PointReference.distanceReference
                                                    • .holdingPoint.TerminalSegmentPoint.facilityMakeup.PointReference.distanceReference
                                                    • .holdingPoint. AerialSegmentPoint.facilityMakeup.PointReference.distanceReference
                                                  • HoldingAssessment
                                                    • .holdingPoint.EnRouteSegmentPoint.facilityMakeup.PointReference.distanceReference
                                                    • .holdingPoint.TerminalSegmentPoint.facilityMakeup.PointReference.distanceReference
                                                    • .holdingPoint.AerialRefuellingPoint.facilityMakeup.PointReference.distanceReference
                                                  • UnplannedHolding
                                                    • .holdingPoint.EnRouteSegmentPoint.facilityMakeup.PointReference.distanceReference
                                                    • .holdingPoint.TerminalSegmentPoint.facilityMakeup.PointReference.distanceReference
                                                    • .holdingPoint.AerialRefuellingPoint.facilityMakeup.PointReference.distanceReference
                                                  • AerialRefuelling
                                                    • .anchor.AerialRefuellingAnchor.point.AerialRefuellingPoint.facilityMakeup.PointReference. distanceReference
                                                    • .track.AerialRefuellingTrack.point.AerialRefuellingPoint.facilityMakeup.PointReference.distanceReference
                                                  • rename the ancestor distanceReference into facilityDistance and:
                                                    • copy the value of the Distance.gml:identifier into facilityDistance@xlink:href
                                                    • delete the Distance element
                                                  • If the parent element is a distanceReference which is the descendant of a DesignatedPoint:
                                                • Add a fix child element to the newly created DistanceIndication that has @xlink:href value copied from the DesignatedPoint’s gml:identifier’
                                                • [MAPC-02] If the fix.PointReference has other child elements than just the distanceReference, then from the three backward mapping options available in this case, 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 AngleIndication
                                              • purpose=“OTHER:BACKWARD_MAPPING”;
                                              • LinguisticNote.note = “role: <value of role>, priorFixTolerance: <value of priorFixTolerance>, postFixTolerance: <value of postFixTolerance>, minimumReceptionLimit: <value of minimumReceptionLimit>, minimumReceptionLimitReference: <value of minimumReceptionLimitReference>, maximumAuthorisedLimit: <value of maximumAuthorisedLimit>, maximumAuthorisedLimitReference: <value of maximumAuthorisedLimitReference>”
                                                • Remove the fix object from the DesignatedPoint
                                              • [MAPC-02] For each PointReference object (that is not the descendant of a DesignatedPoint) that has minimumReceptionLimit and/or minimumReceptionLimitReference and/or maximumAuthorisedLimit and/or maximumAuthorisedLimitReference values, from the three backward mapping options available in this case, 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
                                              • purpose=“OTHER:BACKWARD_MAPPING”;
                                              • translatedNote.LinguisticNote.note = “minimumReceptionLimit: <value of minimumReceptionLimit>,  minimumReceptionLimitReference: <value of minimumReceptionLimitReference>, maximumAuthorisedLimit: <value of maximumAuthorisedLimit>, maximumAuthorisedLimitReference: <value of maximumAuthorisedLimitReference>”>

Mapping example

(Note: for mapping test data see: https://github.com/aixm/mapping_52_511/tree/master/AIXM-xxx

AIXM Input
AIXM Output
Forward AngleDistance ArrivalLeg 5.1.1 input
message:AIXMBasicMessage
  message:hasMember
    Navaid
      gml:identifier = dfd04617-c8bd-443b-8290-067ba2e50e14
      timeSlice
        NavaidTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = BASELINE
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          type = VORTAC
          designator = LNY
          purpose = TERMINAL
          location
            ElevatedPoint
              gml:pos = 20.7645000 -156.9688889
              elevation = 1250 FT
  message:hasMember
    DesignatedPoint
      gml:identifier = bf3264d6-c075-47a3-b0dd-4ecccaffe040
      timeSlice
        DesignatedPointTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = BASELINE
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          designator = CHAIN
          type = ICAO
          name = CHAIN
  message:hasMember
    DesignatedPoint
      gml:identifier = 505a205f-8682-4f82-8f69-d4eba07a047a
      timeSlice
        DesignatedPointTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = BASELINE
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          designator = SOBOW
          type = ICAO
          name = SOBOW
  message:hasMember
    AngleIndication
      gml:identifier = f7b8682a-cc39-42d4-b9d4-21717d652cb6
      timeSlice
        AngleIndicationTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = BASELINE
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          angle = 359.99
          minimumReceptionAltitude = 2000 FT
          fix =  #uuid.bf3264d6-c075-47a3-b0dd-4ecccaffe040
          pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
  message:hasMember
    DistanceIndication
      gml:identifier = c692a79d-52d1-447f-805a-da2ab7cab711
      timeSlice
        DistanceIndicationTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = BASELINE
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          distance = 12.70 NM
          minimumReceptionAltitude = 2000 FT
          fix =  #uuid.bf3264d6-c075-47a3-b0dd-4ecccaffe040
          pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
  message:hasMember
    AngleIndication
      gml:identifier = e27696a1-e89e-42b8-9445-13498379b9a9
      timeSlice
        AngleIndicationTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = BASELINE
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          angle = 278
          minimumReceptionAltitude = 5000 FT
          fix =  #uuid.505a205f-8682-4f82-8f69-d4eba07a047a
          pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
  message:hasMember
    DistanceIndication
      gml:identifier = e70733e3-0c42-4f8c-9b7a-e80e1c0ed703
      timeSlice
        DistanceIndicationTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = BASELINE
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          distance = 13 NM
          minimumReceptionAltitude = 5000 FT
          fix =  #uuid.505a205f-8682-4f82-8f69-d4eba07a047a
          pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
  message:hasMember
    ArrivalLeg
      gml:identifier = fac34bfc-fc4f-4da7-ad8a-84ee687f41bb
      timeSlice
        ArrivalLegTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = BASELINE
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          legPath = ARC
          startPoint
            TerminalSegmentPoint
              facilityMakeup
                PointReference
                  facilityAngle
                    AngleUse
                      theAngleIndication =  #uuid.f7b8682a-cc39-42d4-b9d4-21717d652cb6
                  facilityDistance =  #uuid.c692a79d-52d1-447f-805a-da2ab7cab711
              pointChoice_fixDesignatedPoint =  #uuid.bf3264d6-c075-47a3-b0dd-4ecccaffe040
          endPoint
            TerminalSegmentPoint
              facilityMakeup
                PointReference
                  facilityAngle
                    AngleUse
                      theAngleIndication =  #uuid.e27696a1-e89e-42b8-9445-13498379b9a9
                  facilityDistance =  #uuid.e70733e3-0c42-4f8c-9b7a-e80e1c0ed703
              pointChoice_fixDesignatedPoint =  #uuid.505a205f-8682-4f82-8f69-d4eba07a047a
          arcCentre
            TerminalSegmentPoint
              pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
          distance =  #uuid.e70733e3-0c42-4f8c-9b7a-e80e1c0ed703
______________________________________________________
Backward AngleDistance ArrivalLeg 5.2 input
message:AIXMBasicMessage
  message:hasMember
    Navaid
      gml:identifier = dfd04617-c8bd-443b-8290-067ba2e50e14
      timeSlice
        NavaidTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = PERMDELTA
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          type = VORTAC
          designator = LNY
          purpose = TERMINAL
          location
            ElevatedPoint
              gml:pos = 20.7645000 -156.9688889
              elevation = 1250 FT
  message:hasMember
    DesignatedPoint
      gml:identifier = bf3264d6-c075-47a3-b0dd-4ecccaffe040
      timeSlice
        DesignatedPointTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = PERMDELTA
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          designator = CHAIN
          type = ICAO
          name = CHAIN
          fix
            PointReference
              minimumReceptionLimit = 0
              minimumReceptionLimitReference = MSL
              maximumAuthorisedLimit = 2000 FT
              maximumAuthorisedLimitReference = OTHER
              distanceReference
                Distance
                  gml:identifier = c692a79d-52d1-447f-805a-da2ab7cab711
                  distance = 12.70 NM
                  minimumReceptionAltitude = 2000 FT
                  pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
              angleReference
                AngleUse
                  theAngle
                    Angle
                      gml:identifier = f7b8682a-cc39-42d4-b9d4-21717d652cb6
                      angle = 359.99
                      minimumReceptionAltitude = 2000 FT
                      pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
  message:hasMember
    DesignatedPoint
      gml:identifier = 505a205f-8682-4f82-8f69-d4eba07a047a
      timeSlice
        DesignatedPointTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = PERMDELTA
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          designator = SOBOW
          type = ICAO
          name = SOBOW
          fix
            PointReference
              minimumReceptionLimit = 5000 FT
              minimumReceptionLimitReference = MSL
              distanceReference
                Distance
                  gml:identifier = e70733e3-0c42-4f8c-9b7a-e80e1c0ed703
                  distance = 13 NM
                  minimumReceptionAltitude = 5000 FT
                  pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
              angleReference
                AngleUse
                  theAngle
                    Angle
                      gml:identifier = e27696a1-e89e-42b8-9445-13498379b9a9
                      angle = 278
                      minimumReceptionAltitude = 5000 FT
                      pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
  message:hasMember
    ArrivalLeg
      gml:identifier = fac34bfc-fc4f-4da7-ad8a-84ee687f41bb
      timeSlice
        ArrivalLegTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = PERMDELTA
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          legPath = ARC
          startPoint
            TerminalSegmentPoint
              pointChoice_fixDesignatedPoint =  #uuid.bf3264d6-c075-47a3-b0dd-4ecccaffe040
          endPoint
            TerminalSegmentPoint
              pointChoice_fixDesignatedPoint =  #uuid.505a205f-8682-4f82-8f69-d4eba07a047a
          arcCentre
            TerminalSegmentPoint
              pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
          limitingDistance
            Distance
              gml:identifier = e70733e3-0c42-4f8c-9b7a-e80e1c0ed703
              distance = 13 NM
              minimumReceptionAltitude = 5000 FT
              pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14























































______________________________________________________
Forward AngleDistance DepartureLeg 5.1.1 input
message:AIXMBasicMessage
  message:hasMember
    Navaid
      gml:identifier = dfd04617-c8bd-443b-8290-067ba2e50e14
      timeSlice
        NavaidTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = BASELINE
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          type = VORTAC
          designator = AML
          purpose = TERMINAL
          location
            ElevatedPoint
              gml:pos = 38.9345939 -77.4667025
              elevation = 781 FT
  message:hasMember
    AngleIndication
      gml:identifier = f7b8682a-cc39-42d4-b9d4-21717d652cb6
      timeSlice
        AngleIndicationTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = BASELINE
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          angle = 359.99
          pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
  message:hasMember
    DepartureLeg
      gml:identifier = fac34bfc-fc4f-4da7-ad8a-84ee687f41bb
      timeSlice
        DepartureLegTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = BASELINE
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          legPath = STRAIGHT
          startPoint
            TerminalSegmentPoint
              pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
          angle =  #uuid.f7b8682a-cc39-42d4-b9d4-21717d652cb6 
______________________________________________________
Backward AngleDistance DepartureLeg 5.2 input
message:AIXMBasicMessage
  message:hasMember
    Navaid
      gml:identifier = dfd04617-c8bd-443b-8290-067ba2e50e14
      timeSlice
        NavaidTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = PERMDELTA
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          type = VORTAC
          designator = AML
          purpose = TERMINAL
          location
            ElevatedPoint
              gml:pos = 38.9345939 -77.4667025
              elevation = 781 FT
  message:hasMember
    DepartureLeg
      gml:identifier = fac34bfc-fc4f-4da7-ad8a-84ee687f41bb
      timeSlice
        DepartureLegTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = PERMDELTA
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          legPath = STRAIGHT
          startPoint
            TerminalSegmentPoint
              pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
          limitingAngle
            Angle
              gml:identifier = f7b8682a-cc39-42d4-b9d4-21717d652cb6
              angle = 110
              pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
Forward AngleDistance ArrivalLeg 5.2 output
message:AIXMBasicMessage
  message:hasMember
    Navaid
      gml:identifier = dfd04617-c8bd-443b-8290-067ba2e50e14
      timeSlice
        NavaidTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = PERMDELTA
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          type = VORTAC
          designator = LNY
          purpose = TERMINAL
          location
            ElevatedPoint
              gml:pos = 20.7645000 -156.9688889
              elevation = 1250 FT
  message:hasMember
    DesignatedPoint
      gml:identifier = bf3264d6-c075-47a3-b0dd-4ecccaffe040
      timeSlice
        DesignatedPointTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = PERMDELTA
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          designator = CHAIN
          type = ICAO
          name = CHAIN
          fix
            PointReference
              distanceReference
                Distance
                  gml:identifier = c692a79d-52d1-447f-805a-da2ab7cab711
                  distance = 12.70 NM
                  minimumReceptionAltitude = 2000 FT
                  pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
              angleReference
                AngleUse
                  theAngle
                    Angle
                      gml:identifier = f7b8682a-cc39-42d4-b9d4-21717d652cb6
                      angle = 359.99
                      minimumReceptionAltitude = 2000 FT
                      pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
  message:hasMember
    DesignatedPoint
      gml:identifier = 505a205f-8682-4f82-8f69-d4eba07a047a
      timeSlice
        DesignatedPointTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = PERMDELTA
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          designator = SOBOW
          type = ICAO
          name = SOBOW
          fix
            PointReference
              minimumReceptionLimit = 5000 FT
              minimumReceptionLimitReference = MSL
              distanceReference
                Distance
                  gml:identifier = e70733e3-0c42-4f8c-9b7a-e80e1c0ed703
                  distance = 13 NM
                  minimumReceptionAltitude = 5000 FT
                  pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
              angleReference
                AngleUse
                  theAngle
                    Angle
                      gml:identifier = e27696a1-e89e-42b8-9445-13498379b9a9
                      angle = 278
                      minimumReceptionAltitude = 5000 FT
                      pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
  message:hasMember
    ArrivalLeg
      gml:identifier = fac34bfc-fc4f-4da7-ad8a-84ee687f41bb
      timeSlice
        ArrivalLegTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = PERMDELTA
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          legPath = ARC
          startPoint
            TerminalSegmentPoint
              pointChoice_fixDesignatedPoint =  #uuid.bf3264d6-c075-47a3-b0dd-4ecccaffe040
          endPoint
            TerminalSegmentPoint
              pointChoice_fixDesignatedPoint =  #uuid.505a205f-8682-4f82-8f69-d4eba07a047a
          arcCentre
            TerminalSegmentPoint
              pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
          limitingDistance
            Distance
              gml:identifier = e70733e3-0c42-4f8c-9b7a-e80e1c0ed703
              distance = 13 NM
              minimumReceptionAltitude = 5000 FT
              pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
















































______________________________________________________
Backward AngleDistance ArrivalLeg 5.1.1 output
message:AIXMBasicMessage
  message:hasMember
    Navaid
      gml:identifier = dfd04617-c8bd-443b-8290-067ba2e50e14
      timeSlice
        NavaidTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = BASELINE
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          type = VORTAC
          designator = LNY
          purpose = TERMINAL
          location
            ElevatedPoint
              gml:pos = 20.7645000 -156.9688889
              elevation = 1250 FT
  message:hasMember
    DesignatedPoint
      gml:identifier = bf3264d6-c075-47a3-b0dd-4ecccaffe040
      timeSlice
        DesignatedPointTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = BASELINE
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          designator = CHAIN
          type = ICAO
          name = CHAIN
  message:hasMember
    DesignatedPoint
      gml:identifier = 505a205f-8682-4f82-8f69-d4eba07a047a
      timeSlice
        DesignatedPointTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = BASELINE
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          designator = SOBOW
          type = ICAO
          name = SOBOW
  message:hasMember
    AngleIndication
      gml:identifier = f7b8682a-cc39-42d4-b9d4-21717d652cb6
      timeSlice
        AngleIndicationTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = BASELINE
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          angle = 359.99
          minimumReceptionAltitude = 2000 FT
          fix =  #uuid.bf3264d6-c075-47a3-b0dd-4ecccaffe040
          pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
  message:hasMember
    DistanceIndication
      gml:identifier = c692a79d-52d1-447f-805a-da2ab7cab711
      timeSlice
        DistanceIndicationTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = BASELINE
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          distance = 12.70 NM
          minimumReceptionAltitude = 2000 FT
          fix =  #uuid.bf3264d6-c075-47a3-b0dd-4ecccaffe040
          pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
  message:hasMember
    AngleIndication
      gml:identifier = e27696a1-e89e-42b8-9445-13498379b9a9
      timeSlice
        AngleIndicationTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = BASELINE
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          angle = 278
          minimumReceptionAltitude = 5000 FT
          fix =  #uuid.505a205f-8682-4f82-8f69-d4eba07a047a
          pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
  message:hasMember
    DistanceIndication
      gml:identifier = e70733e3-0c42-4f8c-9b7a-e80e1c0ed703
      timeSlice
        DistanceIndicationTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = BASELINE
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          distance = 13 NM
          minimumReceptionAltitude = 5000 FT
          fix =  #uuid.505a205f-8682-4f82-8f69-d4eba07a047a
          pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
  message:hasMember
    ArrivalLeg
      gml:identifier = fac34bfc-fc4f-4da7-ad8a-84ee687f41bb
      timeSlice
        ArrivalLegTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = BASELINE
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          legPath = ARC
          startPoint
            TerminalSegmentPoint
              facilityMakeup
                PointReference
                  facilityAngle
                    AngleUse
                      theAngleIndication =  #uuid.f7b8682a-cc39-42d4-b9d4-21717d652cb6
                  facilityDistance =  #uuid.c692a79d-52d1-447f-805a-da2ab7cab711
                  annotation
                    Note
                      purpose = OTHER:BACKWARD_MAPPING
                      translatedNote
                        LinguisticNote
                          note = role:pointChoice_fixDesignatedPoint, minimumReceptionLimit:0, minimumReceptionLimitReference:MSL, maximumAuthorisedLimit:2000 FT, maximumAuthorisedLimitReference: OTHER unknown
              pointChoice_fixDesignatedPoint =  #uuid.bf3264d6-c075-47a3-b0dd-4ecccaffe040
          endPoint
            TerminalSegmentPoint
              facilityMakeup
                PointReference
                  facilityAngle
                    AngleUse
                      theAngleIndication =  #uuid.e27696a1-e89e-42b8-9445-13498379b9a9
                  facilityDistance =  #uuid.e70733e3-0c42-4f8c-9b7a-e80e1c0ed703
                  annotation
                    Note
                      purpose = OTHER:BACKWARD_MAPPING
                      translatedNote
                        LinguisticNote
                          note = role:pointChoice_fixDesignatedPoint, minimumReceptionLimit:5000 FT, minimumReceptionLimitReference:MSL
              pointChoice_fixDesignatedPoint =  #uuid.505a205f-8682-4f82-8f69-d4eba07a047a
          arcCentre
            TerminalSegmentPoint
              pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
          distance =  #uuid.e70733e3-0c42-4f8c-9b7a-e80e1c0ed703
______________________________________________________
Forward AngleDistance DepartureLeg 5.2 output
message:AIXMBasicMessage
  message:hasMember
    Navaid
      gml:identifier = dfd04617-c8bd-443b-8290-067ba2e50e14
      timeSlice
        NavaidTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = PERMDELTA
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          type = VORTAC
          designator = AML
          purpose = TERMINAL
          location
            ElevatedPoint
              gml:pos = 38.9345939 -77.4667025
              elevation = 781 FT
  message:hasMember
    DepartureLeg
      gml:identifier = fac34bfc-fc4f-4da7-ad8a-84ee687f41bb
      timeSlice
        DepartureLegTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = PERMDELTA
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          legPath = STRAIGHT
          startPoint
            TerminalSegmentPoint
              pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
          limitingAngle
            Angle
              gml:identifier = f7b8682a-cc39-42d4-b9d4-21717d652cb6
              angle = 110
              pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14 











______________________________________________________
Backward AngleDistance DepartureLeg 5.1.1 output

message:AIXMBasicMessage
  message:hasMember
    Navaid
      gml:identifier = dfd04617-c8bd-443b-8290-067ba2e50e14
      timeSlice
        NavaidTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = BASELINE
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          type = VORTAC
          designator = AML
          purpose = TERMINAL
          location
            ElevatedPoint
              gml:pos = 38.9345939 -77.4667025
              elevation = 781 FT
  message:hasMember
    AngleIndication
      gml:identifier = f7b8682a-cc39-42d4-b9d4-21717d652cb6
      timeSlice
        AngleIndicationTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = BASELINE
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          angle = 359.99
          pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
  message:hasMember
    DepartureLeg
      gml:identifier = fac34bfc-fc4f-4da7-ad8a-84ee687f41bb
      timeSlice
        DepartureLegTimeSlice
          gml:validTime
            gml:TimePeriod
              gml:beginPosition = 2021-02-25
              gml:endPosition = 2021-04-22
          interpretation = BASELINE
          sequenceNumber = 1
          featureLifetime
            gml:TimePeriod
              gml:beginPosition = 2009-01-01T00:00:00Z
              gml:endPosition = 
          legPath = STRAIGHT
          startPoint
            TerminalSegmentPoint
              pointChoice_navaidSystem =  #uuid.dfd04617-c8bd-443b-8290-067ba2e50e14
          angle =  #uuid.f7b8682a-cc39-42d4-b9d4-21717d652cb6