[AIXM-613] Alignment with GML 3.2.2
ID: | AIXM-613 |
target version: | AIXM 5.2 |
version: | 1.0 |
last updated: | 03 JUL 2024 |
status: | APPROVED |
Description
The reference to GML 3.2.1 is replaced, where necessary, with GML 3.2.2 (corrigendum to 3.2.1, published by the Open Geospatial Consortium (OGC) in December 2016). The GML Profile schema for AIXM applications is from now on provided by the AIXM CCB through the www.aixm.aero web site.
The gml:id attribute becomes optional for both GML objects and AIXM objects (not for AIXM features.
Rationale for change
See https://aixmccb.atlassian.net/browse/AIXM-596
The AIXM 5.1(.1) XSD imports GML 3.2.1:
<import namespace="http://www.opengis.net/gml/3.2" schemaLocation="http://schemas.opengis.net/gml/3.2.1/gml.xsd"/>
However, what is actually found at that OGC location is “corrigendum 3.2.2” which replaced the initial 3.2.1 version in December 2016.
In order to avoid further confusions, it is therefore proposed to formally declare the use of the GML 3.2.2 version in AIXM. However, this will not be possible in the GML import statements because GML 3.2.2 does not exist as a separate schema on the schema.opengis.net site. The GML import statement in AIXM will continue to use the same schema location as AIXM 5.1(.1): http://schemas.opengis.net/gml/3.2.1/gml.xsd.
The use of the GML 3.2.2 version will formally be declared in the AIXM XML Schema using a comment and by changing the name and location of the GML Profile schema.
The GML 3.2.2 corrigendum also made the gml:id attribute optional for all GML objects, such as gml:TimePeriod, gml:Point, etc. In AIXM 5.1.1, the gml:id is still declared mandatory through the GML Profile document. Therefore, the backwards mapping guidelines need to specify the addition of the gml:id attribute to all GML objects.
In AIXM 5.1(.1) the gml:id is also mandatory for all AIXM features (such as aixm:Navaid) and objects (such as aixm:City) that are derived from AbstractAIXMFeatureBaseType and AbstractAIXMObjectType respectively. For AIXM features, it makes sense to preserve the obligation of providing the gml:id because it may be used for xlink:href=”#...” For AIXM objects, it is proposed to remove the obligation to provide the gml:id attribute, as it cannot be used for local references. In addition, through the AIXM-404 Change Proposal, all AIXM objects in AIXM 5.2 will get an optional persistent gml:identifier.
Impact assessment
[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_1:1] Data mapping is possible and no data loss occurs 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 XML Schema files (AIXM_AbstractGML_ObjectTypes.xsd, AIXM_DataTypes.xsd, AIXM_Features.xsd).
Add/correct the XML comment that precedes the GML Schema import statement in order to explicitly indicate that corrigendum 3.2.2 of version 3.2.1 is used:
<!-- ==== IMPORT GML 3.2 (corrigendum 3.2.2 of version 3.2.1) ==== -->
<import namespace="http://www.opengis.net/gml/3.2" schemaLocation="http://schemas.opengis.net/gml/3.2.1/gml.xsd"/>
Change the file name and the location of the GML profile for AIXM as follows:
<appinfo>
<gml:gmlProfileSchema>http://www.aixm.aero/gmlAIXMProfile/1.2/gml322forAIXM.xsd</gml:gmlProfileSchema>
</appinfo>
In the new gml322forAIXM.xsd change the declaration of the definition of the AbstractGMLType to declare the gml:id attribute for all GML objects as optional.
<complexType name="AbstractGMLType" abstract="true">
<sequence>
<group ref="gml:StandardObjectProperties"/>
</sequence>
<attribute ref="gml:id" use="optionalrequired"/>
</complexType>
In the AIXM_AbstractGML_ObjectTypes.xsd Schema file:
change the declaration of the AbstractAIXMObjectType to declare the gml:id attribute as optional:
<complexType name="AbstractAIXMObjectType" abstract="true">
<annotation>
<documentation>Base type for AIXM complex types that are NOT features. For example, City, ContactInformation, AirspaceVolume, etc. It derives from AbstractGMLType so that AIXM objects are recognised as GML objects, thus ensuring that GML-aware applications recognise them properly. Retains only the mandatory gml:id attribute.</documentation>
</annotation>
<complexContent>
<restriction base="gml:AbstractGMLType">
<sequence>
<sequence/>
</sequence>
<attribute ref="gml:id" use="optionalrequired"/>
</restriction>
</complexContent>
</complexType>
Mapping AIXM 5.1.1 to AIXM 5.2 (forward)
Not applicable.
Mapping AIXM 5.2 to AIXM 5.1.1 (backward)
For each of the following AIXM elements, if not present, add a gml:id attribute that corresponds to the XML ID standard:
AerialRefuellingAnchor
AerialRefuellingPoint
AerialRefuellingTrack
AircraftCharacteristic
AircraftNavigationEquipment
AircraftStandContamination
AirportHeliportAvailability
AirportHeliportContamination
AirportHeliportResponsibilityOrganisation
AirportHeliportUsage
AirportSignStatus
AirspaceActivation
AirspaceBorderCrossing
AirspaceGeometryComponent
AirspaceLayer
AirspaceLayerClass
AirspaceVolume
AirspaceVolumeDependency
AltimeterSource
AltitudeAdjustment
AltitudeIndication
Angle
AngleUse
ApproachCondition
ApronAreaAvailability
ApronAreaUsage
ApronContamination
AuthorityForAerialRefuelling
AuthorityForNavaidEquipment
AuthorityForSpecialNavigationStation
AuthorityForSpecialNavigationSystem
CallsignDetail
CircleSector
CirclingRestriction
City
ConditionCombination
ContactInformation
CourseGroup
Curve
DesignStandard
DirectFlight
DirectFlightClass
DirectFlightSegment
Distance
ElevatedCurve
ElevatedPoint
ElevatedSurface
EnRouteSegmentPoint
EquipmentUnavailableAdjustment
EquipmentUnavailableAdjustmentColumn
FinalApproachControlAltitude
FinalApproachControlPosition
FinalApproachProfile
FinalApproachSegmentData
FlightCharacteristic
FlightConditionCircumstance
FlightConditionCombination
FlightConditionElement
FlightInspectionTrajectory
FlightRestrictionLevel
FlightRestrictionRoute
FlightRoutingElement
Fuel
GroundLightingAvailability
GuidanceLineDirection
HoldingPatternDistance
HoldingPatternDuration
HoldingUse
LandingTakeoffAreaCollection
LightActivation
LightElement
LightElementStatus
LightGroup
LinguisticNote
ManoeuvringAreaAvailability
ManoeuvringAreaUsage
MarkingElement
Meteorology
Minima
MinimumAltitudeAreaSector
MissedApproachGroup
NavaidComponent
NavaidEquipmentDistance
NavaidEquipmentMonitoring
NavaidOperationalStatus
NavigationAreaSector
Nitrogen
Note
ObstacleAssessmentSurface
ObstaclePlacement
Obstruction
Oil
OnlineContact
OrganisationAuthorityAssociation
Oxygen
Point
PointReference
PointUsage
PostalAddress
ProcedureAvailability
ProcedureTransition
ProcedureTransitionLeg
PropertiesWithSchedule
RadarComponent
RadioCommunicationOperationalStatus
RadioFrequency
Reflector
Ridge
RouteAvailability
RoutePortion
RunwayContamination
RunwayDeclaredDistance
RunwayDeclaredDistanceValue
RunwaySectionContamination
SatelliteApproachOperation
SatelliteServiceArea
SectorDesign
SegmentLegAltitudeCondition
SegmentPoint
ServiceOperationalStatus
SpecialNavigationStationStatus
StandardLevel
Surface
SurfaceCharacteristics
SurfaceContamination
SurfaceContaminationLayer
SurveillanceGroundStation
TaxiwayContamination
TelephoneContact
TerminalArrivalAreaSector
TerminalSegmentPoint
Timesheet
TouchDownLiftOffContamination
UnitAvailability
UnitDependency
UsageCondition
VDBAntenna
VerticalStructureLightingStatus
VerticalStructurePart
WeatherSourceAvailability
WorkareaActivity
For each of the following GML elements, if not present, add a gml:id attribute that corresponds to the XML ID standard:
Point
Curve
Surface
TimePeriod
TimeInstant
Mapping example
(Note: for mapping test data see: https://github.com/aixm/mapping_52_511/tree/master/AIXM-xxx)
AIXM 5.2 | AIXM 5.1(.1) |
---|---|