Title: AIXM 5'1 UML to XSD
1AIXM 5.1 - UML to XSD
- AIXM 5.1 XML Developers' Seminar 2 Dec 2009
2Content
- Overview of AIXM files
- Mapping rules for Datatypes
- Mapping rules for Features
- Presentation AIXM scripts
- Creation of an extension
3Overview 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
4Overview 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
5AIXM 5.1 - UML to XSD Mapping Rules - Datatypes
6AIXM 5.1 Mapping Rules - Datatypes
- Mapping ltltenumerationgtgt
ltsimpleType name"CodeAircraftEngineBaseType"gt
ltuniongt ltsimpleTypegt
ltrestriction base"xsdstring"gt
ltenumeration value"JET"gt
ltannotationgt
ltdocumentation/gt
lt/annotationgt lt/enumerationgt
ltenumeration value"PISTON"/gt
ltenumeration valueTURBOPROP"/gt
ltenumeration valueALL"/gt
lt/restrictiongt lt/simpleTypegt
ltsimpleTypegt ltrestriction
base"string"gt ltpattern
value"OTHER\w2,58"/gt
lt/restrictiongt lt/simpleTypegt
lt/uniongt lt/simpleTypegt
7AIXM 5.1 Mapping Rules - Datatypes
ltsimpleType name"CodeApproachLightingBaseType"gt
ltuniongt ltsimpleTypegt
ltrestriction base"xsdstring"gt
ltenumeration value"ALSAF"gt
lt/enumerationgt ltenumeration
value"MALS"gt lt/enumerationgt
ltenumeration value"MALSR"gt
lt/enumerationgt ltenumeration
value"SALS"gt lt/enumerationgt
...... lt/restrictiongt
lt/simpleTypegt ltsimpleTypegt
ltrestriction base"string"gt -- NO PATTERN --
lt/restrictiongt lt/simpleTypegt
lt/uniongt lt/simpleTypegt
8AIXM 5.1 Mapping Rules - Datatypes
- Mapping ltltdatatypegtgt - default case
ltsimpleType name"DateBaseType"gt ltrestriction
base"xsddate"gt lt/restrictiongt lt/simpleTypegt
9AIXM 5.1 Mapping Rules - NilReason
- Most of AIXM 5.1 Data Types define a nilReason,
used to indicate the reason for a null value.
10AIXM 5.1 Mapping Rules - NilReason
ltsimpleType name"CodeAircraftEngineBaseType"gt
ltuniongt ltsimpleTypegt
ltrestriction base"xsdstring"gt
ltenumeration value"JET"gt
.. lt/restrictiongt
lt/simpleTypegt ltsimpleTypegt
ltrestriction base"string"gt
ltpattern value"OTHER\w2,58"/gt
lt/restrictiongt lt/simpleTypegt
lt/uniongt lt/simpleTypegt
ltcomplexType name"CodeAircraftEngineType"gt
ltsimpleContentgt ltextension
base"aixmCodeAircraftEngineBaseType"gt
ltattribute name"nilReason type"aixmNilReason
Type"/gt lt/extensiongt
lt/simpleContentgt lt/complexTypegt
11AIXM 5.1 Mapping Rules - UOM
- Mapping Units of Measurement
ltsimpleType nameValDepthBaseType"gt
ltrestriction base"xsddecimal"gt
lt/restrictiongt lt/simpleTypegt
ltcomplexType name"ValDepthType"gt
ltsimpleContentgt ltextension
base"aixmValDepthBaseType"gt
ltattribute name"nilReason" type"aixmNilReasonTy
pe"/gt ltattribute name"uom"
type"aixmUomDepthType" use"required"/gt
lt/extensiongt lt/simpleContentgt lt/complexTypegt
12AIXM 5.1 - UML to XSD Mapping Rules - Features
13AIXM 5.1 Mapping Rules - Features
- AIXM is based on GML
- AIXM Features are GML features
- AIXM follows the GML object-property concept.
ltAirportHeliportgt lt!-- feature --gt
ltElevatedPointgt lt!-- object --gt
ltAirportHeliportgt lt!-- feature --gt
lthasReferencePointgt lt!-- property --gt
ltElevatedPointgt lt!-- object --gt
14AIXM 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 rules 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
15AIXM 5.1 Mapping Rules - Features
ltgroup name"RunwayPropertyGroup"gt
ltsequencegt ltelement name"designator
type"aixmTextDesignatorType" nillable"true"
minOccurs"0"gt ltannotationgt
ltdocumentationgtThe full textual designator
of the runway, used to uniquely identify it at an
aerodrome/heliport which has more than
one. E.g. 09/27, 02R/20L, RWY 1.
lt/documentationgt lt/annotationgt
lt/elementgt ltelement name"type"
type"aixmCodeRunwayType" nillable"true"
minOccurs"0"gt
lt/sequencegt lt/groupgt
- UML properties are mapped into
FeaturePropertyGroup
16AIXM 5.1 Mapping Rules - Features
ltgroup name"RunwayPropertyGroup"gt
ltsequencegt ltelement name"designator"
nillable"true" minOccurs"0"gt
ltelement name"surfaceProperties"
nillable"true" minOccurs"0"gt
ltcomplexTypegt ltcomplexContentgt
ltextension base"aixmSurfaceCharacteristicsPrope
rtyType"gt ltattribute name"nilReason"
type"gmlNilReasonEnumeration"/gt lt/extensiongt
lt/complexContentgt
lt/complexTypegt lt/elementgt
17AIXM 5.1 Mapping Rules - Features
- UML properties are mapped into
FeaturePropertyGroup
ltgroup name"RunwayPropertyGroup"gt
ltsequencegt ltelement name"designator"
type"aixmTextDesignatorType" nillable"true"
minOccurs"0"gt ltelement
name"type" type"aixmCodeRunwayType"
nillable"true" minOccurs"0"gt
ltelement name"associatedAirportHeliport"
type"aixmAirportHeliportPropertyType"
nillable"true" minOccurs"0"gt
lt/sequencegt lt/groupgt
18AIXM 5.1 Mapping Rules - Features
- The RunwayTimeSliceType encapsulates all the
Runway properties that change over time
ltcomplexType name"RunwayTimeSliceType"gt
ltcomplexContentgt ltextension
base"aixmAbstractAIXMTimeSliceType"gt
ltsequencegt ltgroup
ref"aixmRunwayPropertyGroup"/gt
ltelement name"extension" minOccurs"0"
maxOccurs"unbounded"gt
ltcomplexTypegt
ltsequencegt
ltelement ref"aixmAbstractRunwayExtension"/gt
lt/sequencegt
ltattributeGroup ref"gmlOwnershipAt
tributeGroup"/gt
lt/complexTypegt lt/elementgt
lt/sequencegt lt/extensiongt
lt/complexContentgt lt/complexTypegt
19AIXM 5.1 Mapping Rules - Features
ltelement name"RunwayTimeSlice"
type"aixmRunwayTimeSliceType"
substitutionGroup"gmlAbstractTimeSlice"/gt
- RunwayTimeSlice element is of type
RunwayTimeSliceType.
20AIXM 5.1 Mapping Rules - Features
ltcomplexType name"RunwayTimeSlicePropertyType"gt
ltsequencegt ltelement ref"aixmRunwayTim
eSlice"/gt lt/sequencegt ltattributeGroup
ref"gmlOwnershipAttributeGroup"/gt lt/complexTypegt
- A GML property type containing a FeatureTimeSlice
objects is created.
21AIXM 5.1 Mapping Rules - Features
ltcomplexType name"RunwayType"gt
ltcomplexContentgt ltextension
base"aixmAbstractAIXMFeatureType"gt
ltsequencegt ltelement
name"timeSlice" type"aixmRunwayTimeSlicePropert
yType" maxOccurs"unbounded"/gt
lt/sequencegt lt/extensiongt
lt/complexContentgt lt/complexTypegt
- The Runway feature type is created extending the
AbstractAIXMFeatureType with the RunwayTimeSlice
object created before.
22AIXM 5.1 Mapping Rules - Features
ltelement name"Runway" type"aixmRunwayType"
substitutionGroup"aixmAbstractAIXMFeature"gt
ltannotationgt ltdocumentationgtA 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. lt/documentationgt
lt/annotationgt lt/elementgt
- The Runway feature is then defined by the
RunwayType.
23AIXM 5.1 Mapping Rules - Features
ltcomplexType name"RunwayPropertyType"gt
ltattributeGroup ref"gmlOwnershipAttributeGroup"/
gt ltattributeGroup ref"gmlAssociationAttribut
eGroup"/gt lt/complexTypegt
- Used for relationship to feature Runway
- Provides the xlinkhref attribute
24AIXM 5.1 Mapping Rules Other cases
- Mapping Associations with Association Classes
- ltltdatatypegtgt with no BaseType
- ltltenumerationgtgt CodeNilReasonType
- ltltdatatypegtgt TextXHTMLBaseType
- Please refer to AIXM documentation
- AIXM - UML to XML Schema Mapping
25AIXM 5.1 - UML to XSD AIXM Scripts
26AIXM 5.1 - UML to XSD Walkthrough AIXM 5.1 XSD
Schemas
27AIXM 5.1 - UML to XSD Creation of an extension
28UML 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 ltltextensiongtgt.
- New classes (features and objects), that do not
extend existing AIXM Core classes, can be also
created.
29UML Extension
- Extensions shall NOT be included in the core AIXM
packages
30AIXM 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 ltltextensiongtgt
generates three related elements for that class. - FeatureExtensionPropertyGroup
- FeatureExtensionType
- FeatureExtension
ltcomplexType name"AirspaceTimeSliceType"gt
ltcomplexContentgt ltextension
base"aixmAbstractAIXMTimeSliceType"gt
ltsequencegt ltgroup
ref"aixmAirspacePropertyGroup"/gt
ltelement name"extension" minOccurs"0"
maxOccurs"unbounded"gt
ltcomplexTypegt
ltsequencegt
ltelement ref"aixmAbstractAirspaceExtension"/gt
.
31AIXM 5.1 Mapping Rules - Extensions
ltgroup name"AirspaceExtensionPropertyGroup"gt
ltsequencegt ltelement name"flexibleUse
typeCodeYesNoType nillable"true"
minOccurs"0"gt . ltelement
name"level1 typeCodeYesNoType
nillable"true" minOccurs"0"gt .
lt/sequencegt lt/groupgt
32AIXM 5.1 Mapping Rules - Extensions
ltcomplexType name"AirspaceExtensionType"gt
ltcomplexContentgt ltextension
base"aixmAbstractExtensionType"gt
ltsequencegt ltgroup
ref"easmAirspaceExtensionPropertyGroup"/gt
lt/sequencegt lt/extensiongt
lt/complexContentgt lt/complexTypegt
- A relationship is created with an abstract XML
element that acts as the root for all extensions.
33AIXM 5.1 Mapping Rules - Extensions
ltelement name"AirspaceExtension"
type"easmAirspaceExtensionType
substitutionGroup"aixmAbstractAirspaceExtension"
/gt
34Focus on AIXM Basic Message
- Basic Message
- is an AIXM 5.1 extension
- contains just a collection of AIXM features
35Questions ?