30
The European Organisation for the Safety of Air Navigat AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

Embed Size (px)

Citation preview

Page 1: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

The European Organisation for the Safety of Air Navigation

AIXM 5.1 - UML to XSD

AIXM XML Developers' Seminar

Page 2: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

UML to XSD – AIXM 5.1 mapping scripts 2

Content

• Overview of AIXM files

• Mapping rules for Datatypes

• Mapping rules for Features

• Presentation AIXM scripts

• Creation of an extension

Page 3: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

UML to XSD – AIXM 5.1 mapping scripts 3

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

includes

GML 3.2

ISO19139

metadataschema

W3C xlink

AIXM 5.1PropertiesWithSchedule(from Schedules)

<<object>>

ContactInformation

name : TextNameTypetitle : TextNameType

(from Address)

<<object>>

FlightRestrictionRoute

priorPermission : CodeYesNoType

<<object>>

0..*

+contact

0..*

hasContactInstructions

FlightRestriction

designator : CodeFlightRestrictionDesignatorType...type : CodeFlightRestrictionTypeinstruction : TextInstructionType

<<feature>>

0..*

+regulatedRoute

0..*

regulatesUseOf

FlightRoutingElement

orderNumber : NoSequenceTypespeed : ValSpeedTypespeedReference : CodeSpeedReferenceTypespeedCriteria : CodeComparisonType

<<object>>

1..*+routeElement 1..*

isSequenceOf

FlightConditionCombination

logicalOperator : CodeFlowConditionOperationType

<<object>>

1+flight

1

appliesToFlight

FlightConditionCircumstance<<object>>

FlightRestrictionLevel<<object>>

0..* +flightLevel0..*

isRestrictedTo

FlightConditionElement

index : NoSequenceType

<<object>>

0..*+element 0..*

hasOperand

0..1

+operationalCondition

0..1

hasCondition

0..*

+flightLevel

0..*

isApplicableAt

FlightConditionElementChoice<<choice>>

1 +flightCondition1

is

Page 4: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

UML to XSD – AIXM 5.1 mapping scripts 4

Overview of AIXM files

• 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

AIXM 5.1UML

PropertiesWithSchedule(from Schedules)

<<object>>

ContactInformation

name : TextNameTypetitle : TextNameType

(from Address)

<<object>>

FlightRestrictionRoute

priorPermission : CodeYesNoType

<<object>>

0..*

+contact

0..*

hasContactInstructions

FlightRestriction

designator : CodeFlightRestrictionDesignatorType...type : CodeFlightRestrictionTypeinstruction : TextInstructionType

<<feature>>

0..*

+regulatedRoute

0..*

regulatesUseOf

FlightRoutingElement

orderNumber : NoSequenceTypespeed : ValSpeedTypespeedReference : CodeSpeedReferenceTypespeedCriteria : CodeComparisonType

<<object>>

1..*+routeElement 1..*

isSequenceOf

FlightConditionCombination

logicalOperator : CodeFlowConditionOperationType

<<object>>

1+flight

1

appliesToFlight

FlightConditionCircumstance<<object>>

FlightRestrictionLevel<<object>>

0..* +flightLevel0..*

isRestrictedTo

FlightConditionElement

index : NoSequenceType

<<object>>

0..*+element 0..*

hasOperand

0..1

+operationalCondition

0..1

hasCondition

0..*

+flightLevel

0..*

isApplicableAt

FlightConditionElementChoice<<choice>>

1 +flightCondition1

is

AIXM 5.1XSD

AIXM 5.1 Mapping

Rules

Page 5: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

The European Organisation for the Safety of Air Navigation

AIXM 5.1 - UML to XSDMapping Rules - Datatypes

Page 6: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

UML to XSD – AIXM 5.1 mapping scripts 6

AIXM 5.1 Mapping Rules - Datatypes

• Mapping <<enumeration>>

CodeAirportHeliportType

AD : stringAH : stringHP : stringLS : stringOTHER : string

(from AIXM Data Types)

<<enumeration>>

string(from XMLSchemaDatatypes)

<<XSDsimpleType>>

<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>

Page 7: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

UML to XSD – AIXM 5.1 mapping scripts 7

AIXM 5.1 Mapping Rules - Datatypes

• Mapping <<codelist>>

CodeAerialRefuelingPrefixType

AR : string

(from AIXM Data Types)

<<codelist>>

string(from XMLSchemaDatatypes)

<<XSDsimpleType>>

<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>

Page 8: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

UML to XSD – AIXM 5.1 mapping scripts 8

AIXM 5.1 Mapping Rules - Datatypes

• Mapping <<datatype>>

ValDistanceType

<<XSDfacet>> minInclusive : string = 0uom : UomDistanceType

(from AIXM Data Types)

<<datatype>>

decimal(from XMLSchemaDatatypes)

<<XSDsimpleType>>

UomDistanceType

NM : stringKM : stringM : stringFT : stringMI : stringOTHER : stringCM : string

(from AIXM Data Types)

<<enumeration>>

<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>

Page 9: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

The European Organisation for the Safety of Air Navigation

AIXM 5.1 - UML to XSD Mapping Rules - Features

Page 10: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

UML to XSD – AIXM 5.1 mapping scripts 10

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 -->

Page 11: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

UML to XSD – AIXM 5.1 mapping scripts 11

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

Page 12: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

UML to XSD – AIXM 5.1 mapping scripts 12

AIXM 5.1 Mapping Rules - Features

Runway

designator : TextDesignatorTypetype : CodeRunwayTypenominalLength : ValDistanceTypelengthAccuracy : ValDistanceTypenominalWidth : ValDistanceTypewidthAccuracy : ValDistanceTypewidthShoulder : ValDistanceTypelengthStrip : ValDistanceTypewidthStrip : ValDistanceTypelengthOffset : ValDistanceSignedTypewidthOffset : ValDistanceSignedTypeabandoned : CodeYesNoType

<<feature>>

RunwayPropertyTypeRunwayRunwayTypeRunwayTimeSlicePropertyTypeRunwayTimeSliceRunwayTimeSliceTypeRunwayPropertyGroup

<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

Page 13: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

UML to XSD – AIXM 5.1 mapping scripts 13

AIXM 5.1 Mapping Rules - Features

Runway

designator : TextDesignatorTypetype : CodeRunwayTypenominalLength : ValDistanceTypelengthAccuracy : ValDistanceTypenominalWidth : ValDistanceTypewidthAccuracy : ValDistanceTypewidthShoulder : ValDistanceTypelengthStrip : ValDistanceTypewidthStrip : ValDistanceTypelengthOffset : ValDistanceSignedTypewidthOffset : ValDistanceSignedTypeabandoned : CodeYesNoType

<<feature>>

0..1hasSurfaceDescribedBy

+surfaceProperties

0..1

SurfaceCharacteristics

composition : CodeSurfaceCompositionTypepreparation : CodeSurfacePreparationTypesurfaceCondition : CodeSurfaceConditionTypeclassPCN : ValPCNTypepavementTypePCN : CodePCNPavementTypepavementSubgradePCN : CodePCNSubgradeTypemaxTyrePressurePCN : CodePCNTyrePressureTypeevaluationMethodPCN : CodePCNMethodTypeclassLCN : ValLCNTypeweightSIWL : ValWeightTypetyrePressureSIWL : ValPressureTypeweightAUW : ValWeightType

(from Airport/Hel iport)

<<object>>Runway

designator : TextDesignatorTypetype : CodeRunwayTypenominalLength : ValDistanceTypelengthAccuracy : ValDistanceTypenominalWidth : ValDistanceTypewidthAccuracy : ValDistanceTypewidthShoulder : ValDistanceTypelengthStrip : ValDistanceTypewidthStrip : ValDistanceTypelengthOffset : ValDistanceSignedTypewidthOffset : ValDistanceSignedTypeabandoned : CodeYesNoType

<<feature>>

RunwayPropertyTypeRunwayRunwayTypeRunwayTimeSlicePropertyTypeRunwayTimeSliceRunwayTimeSliceTypeRunwayPropertyGroup

<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> [………………]

Page 14: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

UML to XSD – AIXM 5.1 mapping scripts 14

AIXM 5.1 Mapping Rules - Features

1

AirportHeliport(from Airport/Hel iport)

<<feature>>+associatedAirportHeliport

0..*1

isSituatedAt0..*

Runway

designator : TextDesignatorTypetype : CodeRunwayTypenominalLength : ValDistanceTypelengthAccuracy : ValDistanceTypenominalWidth : ValDistanceTypewidthAccuracy : ValDistanceTypewidthShoulder : ValDistanceTypelengthStrip : ValDistanceTypewidthStrip : ValDistanceTypelengthOffset : ValDistanceSignedTypewidthOffset : ValDistanceSignedTypeabandoned : CodeYesNoType

<<feature>>Runway

designator : TextDesignatorTypetype : CodeRunwayTypenominalLength : ValDistanceTypelengthAccuracy : ValDistanceTypenominalWidth : ValDistanceTypewidthAccuracy : ValDistanceTypewidthShoulder : ValDistanceTypelengthStrip : ValDistanceTypewidthStrip : ValDistanceTypelengthOffset : ValDistanceSignedTypewidthOffset : ValDistanceSignedTypeabandoned : CodeYesNoType

<<feature>>

RunwayPropertyTypeRunwayRunwayTypeRunwayTimeSlicePropertyTypeRunwayTimeSliceRunwayTimeSliceTypeRunwayPropertyGroup

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>

Page 15: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

UML to XSD – AIXM 5.1 mapping scripts 15

AIXM 5.1 Mapping Rules - Features

<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>

Runway

designator : TextDesignatorTypetype : CodeRunwayTypenominalLength : ValDistanceTypelengthAccuracy : ValDistanceTypenominalWidth : ValDistanceTypewidthAccuracy : ValDistanceTypewidthShoulder : ValDistanceTypelengthStrip : ValDistanceTypewidthStrip : ValDistanceTypelengthOffset : ValDistanceSignedTypewidthOffset : ValDistanceSignedTypeabandoned : CodeYesNoType

<<feature>>

RunwayPropertyTypeRunwayRunwayTypeRunwayTimeSlicePropertyTypeRunwayTimeSliceRunwayTimeSliceTypeRunwayPropertyGroup

AIXMTimeSlice

validTime : TimePrimitiveinterpretation : TimeSliceInterpretationTypesequenceNumber : NoNumberTypecorrectionNumber : NoNumberType

(from AIXM Abstract Feature) The RunwayTimeSliceType encapsulates all the Runway properties that change over time

Page 16: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

UML to XSD – AIXM 5.1 mapping scripts 16

Runway

designator : TextDesignatorTypetype : CodeRunwayTypenominalLength : ValDistanceTypelengthAccuracy : ValDistanceTypenominalWidth : ValDistanceTypewidthAccuracy : ValDistanceTypewidthShoulder : ValDistanceTypelengthStrip : ValDistanceTypewidthStrip : ValDistanceTypelengthOffset : ValDistanceSignedTypewidthOffset : ValDistanceSignedTypeabandoned : CodeYesNoType

<<feature>>

RunwayPropertyTypeRunwayRunwayTypeRunwayTimeSlicePropertyTypeRunwayTimeSliceRunwayTimeSliceTypeRunwayPropertyGroup

AIXMTimeSlice

validTime : TimePrimitiveinterpretation : TimeSliceInterpretationTypesequenceNumber : NoNumberTypecorrectionNumber : NoNumberType

(from AIXM Abstract Feature)

AIXM 5.1 Mapping Rules - Features

<element name="RunwayTimeSlice" type="aixm:RunwayTimeSliceType" substitutionGroup="gml:AbstractTimeSlice"/>

RunwayTimeSlice element is of type RunwayTimeSliceType.

Page 17: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

UML to XSD – AIXM 5.1 mapping scripts 17

Runway

designator : TextDesignatorTypetype : CodeRunwayTypenominalLength : ValDistanceTypelengthAccuracy : ValDistanceTypenominalWidth : ValDistanceTypewidthAccuracy : ValDistanceTypewidthShoulder : ValDistanceTypelengthStrip : ValDistanceTypewidthStrip : ValDistanceTypelengthOffset : ValDistanceSignedTypewidthOffset : ValDistanceSignedTypeabandoned : CodeYesNoType

<<feature>>

RunwayPropertyTypeRunwayRunwayTypeRunwayTimeSlicePropertyTypeRunwayTimeSliceRunwayTimeSliceTypeRunwayPropertyGroup

AIXMTimeSlice

validTime : TimePrimitiveinterpretation : TimeSliceInterpretationTypesequenceNumber : NoNumberTypecorrectionNumber : NoNumberType

(from AIXM Abstract Feature)

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.

Page 18: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

UML to XSD – AIXM 5.1 mapping scripts 18

AIXMTimeSlice

validTime : TimePrimitiveinterpretation : TimeSliceInterpretationTypesequenceNumber : NoNumberTypecorrectionNumber : NoNumberType

(from AIXM Abstract Feature)

1..*1..*

+timeSliceAIXMFeature

identifier : CodeUUIDType

(from AIXM Abstract Feature)

<complexType name="RunwayType"> <complexContent> <extension base="aixm:AbstractAIXMFeatureType"> <sequence> <element name="timeSlice" type="aixm:RunwayTimeSlicePropertyType" maxOccurs="unbounded"/> </sequence> </extension> </complexContent></complexType>

Runway

designator : TextDesignatorTypetype : CodeRunwayTypenominalLength : ValDistanceTypelengthAccuracy : ValDistanceTypenominalWidth : ValDistanceTypewidthAccuracy : ValDistanceTypewidthShoulder : ValDistanceTypelengthStrip : ValDistanceTypewidthStrip : ValDistanceTypelengthOffset : ValDistanceSignedTypewidthOffset : ValDistanceSignedTypeabandoned : CodeYesNoType

<<feature>>

RunwayPropertyTypeRunwayRunwayTypeRunwayTimeSlicePropertyTypeRunwayTimeSliceRunwayTimeSliceTypeRunwayPropertyGroup

AIXMFeature

identifier : CodeUUIDType

(from AIXM Abstract Feature)

AIXM 5.1 Mapping Rules - Features

The Runway feature type is created extending the AbstractAIXMFeatureType with the RunwayTimeSlice object created before.

Page 19: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

UML to XSD – AIXM 5.1 mapping scripts 19

Runway

designator : TextDesignatorTypetype : CodeRunwayTypenominalLength : ValDistanceTypelengthAccuracy : ValDistanceTypenominalWidth : ValDistanceTypewidthAccuracy : ValDistanceTypewidthShoulder : ValDistanceTypelengthStrip : ValDistanceTypewidthStrip : ValDistanceTypelengthOffset : ValDistanceSignedTypewidthOffset : ValDistanceSignedTypeabandoned : CodeYesNoType

<<feature>>

RunwayPropertyTypeRunwayRunwayTypeRunwayTimeSlicePropertyTypeRunwayTimeSliceRunwayTimeSliceTypeRunwayPropertyGroup

AIXMFeature

identifier : CodeUUIDType

(from AIXM Abstract Feature)

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.

Page 20: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

UML to XSD – AIXM 5.1 mapping scripts 20

AIXM 5.1 Mapping Rules - Features

Runway

designator : TextDesignatorTypetype : CodeRunwayTypenominalLength : ValDistanceTypelengthAccuracy : ValDistanceTypenominalWidth : ValDistanceTypewidthAccuracy : ValDistanceTypewidthShoulder : ValDistanceTypelengthStrip : ValDistanceTypewidthStrip : ValDistanceTypelengthOffset : ValDistanceSignedTypewidthOffset : ValDistanceSignedTypeabandoned : CodeYesNoType

<<feature>>

RunwayPropertyTypeRunwayRunwayTypeRunwayTimeSlicePropertyTypeRunwayTimeSliceRunwayTimeSliceTypeRunwayPropertyGroup

<complexType name="RunwayPropertyType"> <attributeGroup ref="gml:OwnershipAttributeGroup"/> <attributeGroup ref="gml:AssociationAttributeGroup"/></complexType>

Used for relationship to feature Runway

Provides the xlink:href attribute

Page 21: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

The European Organisation for the Safety of Air Navigation

AIXM 5.1 - UML to XSDAIXM Scripts

Page 22: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

The European Organisation for the Safety of Air Navigation

AIXM 5.1 - UML to XSDWalkthrough AIXM 5.1 XSD Schemas

Page 23: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

The European Organisation for the Safety of Air Navigation

AIXM 5.1 - UML to XSDCreation of an extension

Page 24: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

UML to XSD – AIXM 5.1 mapping scripts 24

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>>.

Airspace

flexibleUse : CodeYesNoTypelevel1 : CodeYesNoTypelevel2 : CodeYesNoTypelevel3 : CodeYesNoType

<<extension>>

Airspace(from Airspace)

<<feature>>

• New classes (features and objects), that do not extend existing AIXM Core classes, can be also created.

Mission

identification : TextDesignatorTypename : TextNameTypeformationCode : CodeMissionFormationType...

<<feature>>

1

0..*

+reason 1

0..*

isExecutedFor

FlightFormation

flightIdentification : TextDesignatorType...numberOfAircraft : NoNumberTypetransitDuration : ValDurationType

<<feature>>

0..*0..* 0..*uses0..*Airspace(from Airspace)

<<feature>>

Page 25: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

UML to XSD – AIXM 5.1 mapping scripts 25

UML Extension

• Extensions shall NOT be included in the core AIXM packages

Page 26: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

UML to XSD – AIXM 5.1 mapping scripts 26

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"/> […………….]

Page 27: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

UML to XSD – AIXM 5.1 mapping scripts 27

AIXM 5.1 Mapping Rules - Extensions

Airspace(from Airspace)

<<feature>>

Airspace

flexibleUse : CodeYesNoTypelevel1 : CodeYesNoTypelevel2 : CodeYesNoTypelevel3 : CodeYesNoType

<<extension>>

AirspaceExtensionAirspaceExtensionTypeAirspaceExtensionPropertyGroup

<group name="AirspaceExtensionPropertyGroup"> <sequence> <element name="flexibleUse" nillable="true" minOccurs="0"> […………….] <element name="level1" nillable="true" minOccurs="0"> […………….] </sequence></group>

Page 28: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

UML to XSD – AIXM 5.1 mapping scripts 28

AIXM 5.1 Mapping Rules - Extensions

Airspace(from Airspace)

<<feature>>

Airspace

flexibleUse : CodeYesNoTypelevel1 : CodeYesNoTypelevel2 : CodeYesNoTypelevel3 : CodeYesNoType

<<extension>>

AirspaceExtensionAirspaceExtensionTypeAirspaceExtensionPropertyGroup

<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.

Page 29: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

UML to XSD – AIXM 5.1 mapping scripts 29

AIXM 5.1 Mapping Rules - Extensions

<element name="AirspaceExtension" type="easm:AirspaceExtensionType“ substitutionGroup="aixm:AbstractAirspaceExtension"/>

Airspace(from Airspace)

<<feature>>

Airspace

flexibleUse : CodeYesNoTypelevel1 : CodeYesNoTypelevel2 : CodeYesNoTypelevel3 : CodeYesNoType

<<extension>>

AirspaceExtensionAirspaceExtensionTypeAirspaceExtensionPropertyGroup

Page 30: The European Organisation for the Safety of Air Navigation AIXM 5.1 - UML to XSD AIXM XML Developers' Seminar

UML to XSD – AIXM 5.1 mapping scripts 30

Focus on AIXM Basic Message

AIXMBasicMessage<<message>>

AIXMFeature

identifier : CodeUUIDType

(from AIXM Abstract Feature)

BasicMessageMemberAIXM<<collectionMemberChoice>>

1..*1..*

hasMember

11

isFeature

Basic Message • is an AIXM 5.1 extension• contains just a collection of

AIXM features