300 likes | 365 Views
Dive into AIXM 5.1 mapping seminars covering overview of AIXM files, datatype mapping, feature mapping with UML to XSD conversion scripts. Understand AIXM basics, feature constructs, abstract types, schema references, and mapping rules for data types and features. Unravel the intricacies of AIXM 5.1 including GML 3.2, ISO19139 metadata schema, and W3C xlink integration. Learn to create extensions based on the AIXM UML model and transform them into XML grammar. Explore the role of AIXM scripts in facilitating smooth conversion processes.
E N D
AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar
Content • Overview of AIXM files • Mapping rules for Datatypes • Mapping rules for Features • Presentation AIXM scripts • Creation of an extension UML to XSD – AIXM 5.1 mapping scripts
AIXM 5.1 includes GML 3.2 ISO19139metadataschema W3C xlink Overview of AIXM files • The file AIXM_AbstractGML_ObjectTypes.xsd • References ISO19139 Metadata Schema • Defines the base AIXM Feature Constructs • AbstractAIXMFeatureType / AbstractAIXMFeature • AbstractAIXMTimesliceType / AbstractAIXMTimeslice • The file AIXM_DataTypes.xsd contains the mapping of the AIXM datatypes • The file AIXM_Features.xsd contains the mapping of the AIXM features UML to XSD – AIXM 5.1 mapping scripts
AIXM 5.1UML AIXM 5.1XSD Overview of AIXM files AIXM 5.1 Mapping Rules • AIXM 5.1 Mapping rules explains how to translate the AIXM 5.1 UML model into an XML grammar based on a subset of the Geography Markup Language (GML 3.2) • Mapping rules are defined for: • AIXM Datatypes • AIXM Features UML to XSD – AIXM 5.1 mapping scripts
AIXM 5.1 Mapping Rules - Datatypes • Mapping <<enumeration>> <simpleType name="CodeAirportHeliportType"> <union> <simpleType> <restriction base="xsd:string"> <enumeration value="AD"> <annotation> <documentation/> </annotation> </enumeration> <enumeration value="AH“/> <enumeration value="HP“/> <enumeration value="LS“/> </restriction> </simpleType> <simpleType> <restriction base="string"> <pattern value="OTHER:\w{2,58}"/> </restriction> </simpleType> </union> </simpleType> UML to XSD – AIXM 5.1 mapping scripts
AIXM 5.1 Mapping Rules - Datatypes • Mapping <<codelist>> <simpleType name="CodeAerialRefuelingPrefixType_base"> <annotation> <documentation/> </annotation> <restriction base="xsd:string"> <enumeration value="AR"> <annotation> <documentation/> </annotation> </enumeration> </restriction> </simpleType> <simpleType name="CodeAerialRefuelingPrefixType"> <union memberTypes="aixm:CodeAerialRefuelingPrefixType_base xsd:string"/> </simpleType> UML to XSD – AIXM 5.1 mapping scripts
AIXM 5.1 Mapping Rules - Datatypes • Mapping <<datatype>> <simpleType name="ValDistanceTypeBase"> <annotation> <documentation/> </annotation> <restriction base="xsd:decimal"> <minInclusive value="0"/> </restriction> </simpleType> <complexType name="ValDistanceType"> <simpleContent> <annotation> <documentation/> </annotation> <extension base="aixm:ValDistanceTypeBase"> <attribute name="uom" type="aixm:UomDistanceType" use="required"/> </extension> </simpleContent> </complexType> UML to XSD – AIXM 5.1 mapping scripts
AIXM 5.1 Mapping Rules - Features • AIXM is based on GML • AIXM Features are GML features… • AIXM follows the GML object-property concept. <AirportHeliport> <!-- feature --> <ElevatedPoint> <!-- object --> <AirportHeliport> <!-- feature --> <hasReferencePoint> <!-- property --> <ElevatedPoint> <!-- object --> UML to XSD – AIXM 5.1 mapping scripts
AIXM 5.1 Mapping Rules - Features • For each AIXM Feature in the UML, the following XML schema entities are created: • FeaturePropertyType • Feature • FeatureType • FeatureTimeSlicePropertyType • FeatureTimeSlice • FeatureTimeSliceType • FeaturePropertyGroup • AIXM objects are encoded as GML objects. The mapping rule for Objects are the same as the rules for Features except that • Object do not exist outside of a feature • TimeSlice types and elements are not created UML to XSD – AIXM 5.1 mapping scripts
RunwayPropertyType • Runway • RunwayType • RunwayTimeSlicePropertyType • RunwayTimeSlice • RunwayTimeSliceType • RunwayPropertyGroup AIXM 5.1 Mapping Rules - Features <group name="RunwayPropertyGroup"> <sequence> <element name="designator" nillable="true" minOccurs="0"> [………………] <complexType> <simpleContent> <extension base="aixm:TextDesignatorType"> <attribute name="nilReason" type="gml:NilReasonEnumeration"/> </extension> </simpleContent> </complexType> </element> <element name="type" nillable="true" minOccurs="0"> [………………] </sequence> </group> • UML properties are mapped into FeaturePropertyGroup UML to XSD – AIXM 5.1 mapping scripts
RunwayPropertyType • Runway • RunwayType • RunwayTimeSlicePropertyType • RunwayTimeSlice • RunwayTimeSliceType • RunwayPropertyGroup AIXM 5.1 Mapping Rules - Features <group name="RunwayPropertyGroup"> <sequence> <element name="designator" nillable="true" minOccurs="0"> [………………] <element name="surfaceProperties" nillable="true" minOccurs="0"> <complexType> <complexContent> <extension base="aixm:SurfaceCharacteristicsPropertyType"> <attribute name="nilReason" type="gml:NilReasonEnumeration"/> </extension> </complexContent> </complexType> </element> [………………] UML to XSD – AIXM 5.1 mapping scripts
RunwayPropertyType • Runway • RunwayType • RunwayTimeSlicePropertyType • RunwayTimeSlice • RunwayTimeSliceType • RunwayPropertyGroup AIXM 5.1 Mapping Rules - Features • UML properties are mapped into FeaturePropertyGroup <group name="RunwayPropertyGroup"> <sequence> <element name="designator" nillable="true" minOccurs="0"> [………………] <element name="type" nillable="true" minOccurs="0"> [………………] <element name="associatedAirportHeliport" type="aixm:AirportHeliportPropertyType" nillable="true" minOccurs="0"> [………………] </sequence> </group> UML to XSD – AIXM 5.1 mapping scripts
RunwayPropertyType • Runway • RunwayType • RunwayTimeSlicePropertyType • RunwayTimeSlice • RunwayTimeSliceType • RunwayPropertyGroup AIXM 5.1 Mapping Rules - Features • The RunwayTimeSliceType encapsulates all the Runway properties that change over time <complexType name="RunwayTimeSliceType"> <complexContent> <extension base="aixm:AbstractAIXMTimeSliceType"> <sequence> <group ref="aixm:RunwayPropertyGroup"/> <element name="extension" minOccurs="0" maxOccurs="unbounded"> <complexType> <sequence> <element ref="aixm:AbstractRunwayExtension"/> </sequence> <attributeGroup ref="gml:OwnershipAttributeGroup"/> </complexType> </element> </sequence> </extension> </complexContent> </complexType> UML to XSD – AIXM 5.1 mapping scripts
RunwayPropertyType • Runway • RunwayType • RunwayTimeSlicePropertyType • RunwayTimeSlice • RunwayTimeSliceType • RunwayPropertyGroup AIXM 5.1 Mapping Rules - Features <element name="RunwayTimeSlice" type="aixm:RunwayTimeSliceType" substitutionGroup="gml:AbstractTimeSlice"/> • RunwayTimeSlice element is of type RunwayTimeSliceType. UML to XSD – AIXM 5.1 mapping scripts
RunwayPropertyType • Runway • RunwayType • RunwayTimeSlicePropertyType • RunwayTimeSlice • RunwayTimeSliceType • RunwayPropertyGroup AIXM 5.1 Mapping Rules - Features <complexType name="RunwayTimeSlicePropertyType"> <sequence> <element ref="aixm:RunwayTimeSlice"/> </sequence> <attributeGroup ref="gml:OwnershipAttributeGroup"/> </complexType> • A GML property type containing a FeatureTimeSlice objects is created. UML to XSD – AIXM 5.1 mapping scripts
RunwayPropertyType • Runway • RunwayType • RunwayTimeSlicePropertyType • RunwayTimeSlice • RunwayTimeSliceType • RunwayPropertyGroup AIXM 5.1 Mapping Rules - Features <complexType name="RunwayType"> <complexContent> <extension base="aixm:AbstractAIXMFeatureType"> <sequence> <element name="timeSlice" type="aixm:RunwayTimeSlicePropertyType" maxOccurs="unbounded"/> </sequence> </extension> </complexContent> </complexType> • The Runway feature type is created extending the AbstractAIXMFeatureType with the RunwayTimeSlice object created before. UML to XSD – AIXM 5.1 mapping scripts
RunwayPropertyType • Runway • RunwayType • RunwayTimeSlicePropertyType • RunwayTimeSlice • RunwayTimeSliceType • RunwayPropertyGroup AIXM 5.1 Mapping Rules - Features <element name="Runway" type="aixm:RunwayType" substitutionGroup="aixm:AbstractAIXMFeature"> <annotation> <documentation>A defined rectangular area on a land aerodrome/heliport prepared for the landing and take-off of aircraft. Note: this includes the concept of Final Approach and Take-Off Area (FATO) for helicopters. </documentation> </annotation> </element> • The Runway feature is then defined by the RunwayType. UML to XSD – AIXM 5.1 mapping scripts
RunwayPropertyType • Runway • RunwayType • RunwayTimeSlicePropertyType • RunwayTimeSlice • RunwayTimeSliceType • RunwayPropertyGroup AIXM 5.1 Mapping Rules - Features <complexType name="RunwayPropertyType"> <attributeGroup ref="gml:OwnershipAttributeGroup"/> <attributeGroup ref="gml:AssociationAttributeGroup"/> </complexType> • Used for relationship to feature Runway • Provides the xlink:href attribute UML to XSD – AIXM 5.1 mapping scripts
UML Extension • A feature or object may be extended by creating a class with the same name as the core AIXM feature and giving it a stereotype <<extension>>. • New classes (features and objects), that do not extend existing AIXM Core classes, can be also created. UML to XSD – AIXM 5.1 mapping scripts
UML Extension • Extensions shall NOT be included in the core AIXM packages UML to XSD – AIXM 5.1 mapping scripts
AIXM 5.1 Mapping Rules - Extensions • AIXM_Features.xsd is defined in such a way that multiple extensions can be included in the core FeatureTimesliceType • Features with the stereotype of <<extension>> generates three related elements for that class. • FeatureExtensionPropertyGroup • FeatureExtensionType • FeatureExtension <complexType name="AirspaceTimeSliceType"> <complexContent> <extension base="aixm:AbstractAIXMTimeSliceType"> <sequence> <group ref="aixm:AirspacePropertyGroup"/> <element name="extension" minOccurs="0" maxOccurs="unbounded"> <complexType> <sequence> <element ref="aixm:AbstractAirspaceExtension"/> […………….] UML to XSD – AIXM 5.1 mapping scripts
AirspaceExtension • AirspaceExtensionType • AirspaceExtensionPropertyGroup AIXM 5.1 Mapping Rules - Extensions <group name="AirspaceExtensionPropertyGroup"> <sequence> <element name="flexibleUse" nillable="true" minOccurs="0"> […………….] <element name="level1" nillable="true" minOccurs="0"> […………….] </sequence> </group> UML to XSD – AIXM 5.1 mapping scripts
AirspaceExtension • AirspaceExtensionType • AirspaceExtensionPropertyGroup AIXM 5.1 Mapping Rules - Extensions <complexType name="AirspaceExtensionType"> <complexContent> <extension base="aixm:AbstractExtensionType"> <sequence> <group ref="easm:AirspaceExtensionPropertyGroup"/> </sequence> </extension> </complexContent> </complexType> • A relationship is created with an abstract XML element that acts as the root for all extensions. UML to XSD – AIXM 5.1 mapping scripts
AirspaceExtension • AirspaceExtensionType • AirspaceExtensionPropertyGroup AIXM 5.1 Mapping Rules - Extensions <element name="AirspaceExtension" type="easm:AirspaceExtensionType“ substitutionGroup="aixm:AbstractAirspaceExtension"/> UML to XSD – AIXM 5.1 mapping scripts
Focus on AIXM Basic Message • Basic Message • is an AIXM 5.1 extension • contains just a collection of AIXM features UML to XSD – AIXM 5.1 mapping scripts