Working towards the next version of the SWIM Supporting Material

Page tree

Working towards the next version of the SWIM Supporting Material

Skip to end of metadata
Go to start of metadata

This page gives an example information definition for illustrative purposes.

Page Table of Contents



Caveat

The example is for illustrative purposes. It shows an example with content and embedded semantic correspondence statements. However, the example does not show you how to build a data catalogue or XML schema definition for any particular service. In particular, the design options e.g. using elements/complex types should not be taken as definitive.

Service description example

The Donlon TOBT Setting Service Description describes a service that supports the Airport Collaborative Decision Making (A-CDM) concept and its implementation by allowing A-CDM partners, typically aircraft operators and ground handlers, the capability to set the Target Off-Block Time (TOBT) that indicates the target time for the aircraft to be ready for Off-Block.

It contains an example information definition as it could appear in a service description. The example covers the messages that are part of the service: TOBTSettingRequest, TOBTSettingResponse, TOBTDeleteRequest and TOBTDeleteResponse.

The data catalogue and XML schema example below are aligned with this information definition. Examples of two of these messages in XML format are included to promote an easier understanding of the schema.

XML schema example

DonlonTOBTSettingServiceInformationDefinition

DonlonTOBTSettingServiceInformationDefinition.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:don="http://www.swim.donlon-airport.com/swim-ops/gateway" targetNamespace="http://www.swim.donlon-airport.com/swim-ops/gateway" elementFormDefault="qualified" attributeFormDefault="unqualified" xml:lang="en-GB">

<!--SWIM-INFO-001 Need for information definitions-->
<!--This XML schema is an example of an information definition.-->

<!--SWIM-INFO-006 Information definition namespace-->
<!--This is given in the xs:schema element above as xmlns:don="http://www.swim.donlon-airport.com/swim-ops/gateway" targetNamespace="http://www.swim.donlon-airport.com/swim-ops/gateway"-->

<!--The following requirements are not illustrated in this example: 
- SWIM-INFO-009 Preservation of meaning
- SWIM-INFO-010 Principles for definitions for concepts
- SWIM-INFO-011 Semantics of metadata
- SWIM-INFO-012 Use of data types
- SWIM-INFO-017 Mapping of data concepts
-->

<!--
====================================
information definition level 
====================================
-->
	<xs:annotation>
		<xs:documentation>
			<!--SWIM-INFO-002 Information definition language-->
            <language>en-GB</language>
            <!--SWIM-INFO-003 Information definition identification-->
			<identification>
				<title>Donlon TOBT Setting Service Information Definition</title>
				<edition>0.93</edition>
				<date>2018-10-17</date>
			</identification>
			<!--SWIM-INFO-004 Information definition responsible party-->
			<responsibleParty>
				<organisationName>Donlon Airport Operator</organisationName>
				<contactInfo>[email protected]</contactInfo>
				<role>author</role>
			</responsibleParty>
			<!--SWIM-INFO-005 Information definition scope-->
			<abstract>Information in support of the Donlon TOBT Setting Service.</abstract>
		</xs:documentation>
	</xs:annotation>
	<!--
====================================
message types
====================================
-->
	<!--SWIM-INFO-013 Establish semantic correspondence-->
	<!--The elements below use the xs:annotation to record their semantic correspondence with the AIRM-->
	<xs:element name="TOBTSettingRequest" id="donlon002">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation>Message which provides the Target Off-Block Time value of a specific flight.</xs:documentation>
				<xs:documentation>
					<!--SWIM-INFO-014 Forms of semantic correspondence-->
					<!--SWIM-INFO-015 Out-of-scope or no correspondence -->
					<!--Below is an example of an out-of-scope statement. It also includes the rationale for the statement in accordance with SWIM-INFO-015-->
					<semanticCorrespondence>
						<outOfScope rationale="container"/>
					</semanticCorrespondence>
				</xs:documentation>
			</xs:annotation>
			<xs:sequence>
				<!--SWIM-INFO-007 Information definition concepts-->
				<!--The element below (tobt) is an example of a concept in XML Schema format. It contains the name of the concept (name="tobt"). The definition is captured in the xs:annotation element-->
				<!--SWIM-INFO-008 Unique identifiers for concepts-->
				<!--The element below (tobt) has a unique identifier recorded in its id attribute (id="TOBTSettingRequest.tobt". -->				
				<xs:element name="tobt" type="don:TargetOffBlockTime" id="TOBTSettingRequest.tobt" minOccurs="1" maxOccurs="1">
					<xs:annotation>
						<xs:documentation>The Target Off-Block Time value to be set. TOBT is the time that an operator / handling agent estimates that an aircraft will be ready, all doors closed, boarding bridge removed, push back vehicle present, ready to start up / push back immediately upon reception of clearance from the TWR.</xs:documentation>
						<xs:documentation>
							<!--SWIM-INFO-014 Forms of semantic correspondence-->
							<!--SWIM-INFO-016 Mapping of information concepts-->
							<!--SWIM-INFO-018 Additional traces to clarify the mapping-->
							<!--SWIM-INFO-019 Use of AIRM's unique identifiers in traces-->
							<!--Below is an example of a mapping from the concept (tobt) in the information definition to concepts in the AIRM. It contains the trace required by SWIM-INFO-016 and notes and additional traces required in order to clarify the mapping. In this case the additional clarification is to ensure that tobt is recognised as being related to OffBlockReady rather than OffBlock as its name would suggest. The AIRM URN is used as the unique identifier in the trace.-->
							<semanticCorrespondence>
								<mapping>
									<note>The TOBT maps to OffBlockReady, not OffBlock. This is clear in the definition.</note> 
									<trace type="informationConceptTrace">urn:aero:airm:1.0.0:LogicalModel:Subjects:Flight:FlightEvent:[email protected]</trace>
									<trace type="narrowingTrace">urn:aero:airm:1.0.0:LogicalModel:Subjects:Common:Codelists:[email protected]</trace>
								</mapping>
							</semanticCorrespondence>
						</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="flightId" type="don:ICAOFlightIdentification" id="TOBTSettingRequest.flightId" minOccurs="1" maxOccurs="1">
					<xs:annotation>
						<xs:documentation>The ICAO identifier of the specified flight</xs:documentation>
						<xs:documentation>
							<semanticCorrespondence>
								<trace type="informationConceptTrace">urn:aero:ses:eurocontrol:airm:1.0.0:ConceptualModel:Subjects:Flight:FlightIdentifier:ICAOFlightID</trace>
							</semanticCorrespondence>
						</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="TOBTSettingResponse" id="donlon031">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation>Message which responds the validity of a previously sent TOBTSettingRequest message.</xs:documentation>
				<xs:documentation>
					<semanticCorrespondence>
						<outOfScope rationale="container"/>
					</semanticCorrespondence>
				</xs:documentation>
			</xs:annotation>
			<xs:sequence>
				<xs:element name="responseStatus" type="don:ResponseStatus" id="TOBTSettingResponse.responseStatus" minOccurs="1" maxOccurs="1">
					<xs:annotation>
						<xs:documentation>Status of the response to the service request</xs:documentation>
						<xs:documentation>
							<semanticCorrespondence>
								<outOfScope rationale="container"/>
							</semanticCorrespondence>
						</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="TOBTDeleteRequest" id="donlon032">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation>Message which requests deleting the last TOBT value of the specified flight.</xs:documentation>
				<xs:documentation>
					<semanticCorrespondence>
						<outOfScope rationale="container"/>
					</semanticCorrespondence>
				</xs:documentation>
			</xs:annotation>
			<xs:sequence>
				<xs:element name="flightId" type="don:ICAOFlightIdentification" id="TOBTDeleteRequest.flightId" minOccurs="1" maxOccurs="1">
					<xs:annotation>
						<xs:documentation>The ICAO identifier of the specified flight</xs:documentation>
						<xs:documentation>
							<semanticCorrespondence>
								<trace  type="informationConceptTrace">urn:aero:ses:eurocontrol:airm:1.0.0:ConceptualModel:Subjects:Flight:FlightIdentifier:ICAOFlightID</trace>
							</semanticCorrespondence>
						</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="TOBTDeleteResponse" id="donlon042">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation>Message which responds the validity of a previously sent TOBTDeleteRequest message.</xs:documentation>
				<xs:documentation>
					<semanticCorrespondence>
						<outOfScope rationale="container"/>
					</semanticCorrespondence>
				</xs:documentation>
			</xs:annotation>
			<xs:sequence>
				<xs:element name="responseStatus" type="don:ResponseStatus" id="TOBTDeleteResponse.responseStatus" minOccurs="1" maxOccurs="1">
					<xs:annotation>
						<xs:documentation>Status of the response to the service request</xs:documentation>
						<xs:documentation>
							<semanticCorrespondence>
								<outOfScope rationale="container"/>
							</semanticCorrespondence>
						</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<!--
====================================
complex types
====================================
-->
	<xs:complexType name="ICAOFlightIdentification">
		<xs:annotation>
			<xs:documentation>Flight identification structure based on usual ICAO fields present in the Flight Plan</xs:documentation>
			<xs:documentation>
				<semanticCorrespondence>
					<outOfScope rationale="container"/>
				</semanticCorrespondence>
			</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="aircraftIdentification" type="don:AircraftIdentification" id="ICAOFlightIdentification.aircraftIdentification" minOccurs="1" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>Name used by ATS units to identify and communicate with the aircraft.</xs:documentation>
					<xs:documentation>
						<semanticCorrespondence>
							<mapping>
								<trace type="dataConceptTrace">urn:aero:airm:1.0.0:LogicalModel:Subjects:Flight:FlightIdentifier:AircraftIdentification</trace>
                                <trace type="dataTypeTrace">CharacterString</trace>
							</mapping>
						</semanticCorrespondence>
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="estimatedOffBlockTime" type="don:EstimatedOffBlockTime" id="ICAOFlightIdentification.estimatedOffBlockTime" minOccurs="1" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>Date and time at which the aircraft will off-block according to ICAO flight plan field.</xs:documentation>
					<xs:documentation>
						<semanticCorrespondence>
							<mapping>
								<trace type="informationConceptTrace">urn:aero:airm:1.0.0:LogicalModel:Subjects:Flight:FlightEvent:[email protected]</trace>
								<trace type="narrowingTrace">urn:aero:airm:1.0.0:LogicalModel:Subjects:Common:Codelists:[email protected]</trace>
							</mapping>
						</semanticCorrespondence>
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="icaoDepartureAerodrome" type="don:ICAODepartureAerodrome" id="ICAOFlightIdentification.icaoDepartureAerodrome" minOccurs="1" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>ICAO code of the scheduled departure aerodrome.</xs:documentation>
					<xs:documentation>
						<semanticCorrespondence>
							<mapping>
								<trace type="informationConceptTrace">urn:aero:airm:1.0.0:LogicalModel:Subjects:BaseInfrastructure:AerodromeInfrastructure:[email protected]</trace>
								<trace type="narrowingTrace">urn:aero:airm:1.0.0:LogicalModel:Subjects:Flight:[email protected]</trace>
							</mapping>
						</semanticCorrespondence>
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="icaoArrivalAerodrome" type="don:ICAOArrivalAerodrome" id="ICAOFlightIdentification.icaoArrivalAerodrome" minOccurs="1" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>ICAO code of scheduled destination aerodrome.</xs:documentation>
					<xs:documentation>
						<semanticCorrespondence>
							<mapping>
								<trace type="informationConceptTrace">urn:aero:airm:1.0.0:LogicalModel:Subjects:BaseInfrastructure:AerodromeInfrastructure:[email protected]</trace>
								<trace type="narrowingTrace">urn:aero:airm:1.0.0:LogicalModel:Subjects:Flight:[email protected]</trace>
							</mapping>
						</semanticCorrespondence>
					</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ResponseStatus">
		<xs:annotation>
			<xs:documentation>Status of the response to the service request</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="reasonForRejection" type="don:ReasonForRejection" id="ResponseStatus.reasonForRejection" minOccurs="1" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>Code or textual description on the reason for rejection.</xs:documentation>
					<xs:documentation>
						<semanticCorrespondence>
							<outOfScope rationale="messaging"/>
						</semanticCorrespondence>
					</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="status" type="don:Status" id="ResponseStatus.status" minOccurs="1" maxOccurs="1">
				<xs:annotation>
					<xs:documentation>Specifies whether the related request has been accepted or not. Values: ACCEPTED, REJECTED</xs:documentation>
					<xs:documentation>
						<semanticCorrespondence>
							<outOfScope rationale="messaging"/>
						</semanticCorrespondence>
					</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<!--
====================================
simple types
====================================
-->
	<!--SWIM-INFO-007 Information definition concepts-->
	<!--The element below (TargetOffBlockTime) is an example of a concept in XML Schema format. It contains the name of the concept (name="TargetOffBlockTime"). The definition is captured in the xs:annotation element. The type is captured in the restriction (xs:dateTime)-->
 	<xs:simpleType name="TargetOffBlockTime" id="donlon021">
		<xs:annotation>
			<xs:documentation>The time that an operator / handling agent estimates that an aircraft will be ready, all doors closed, boarding bridge removed, push back vehicle present, ready to start up / push back immediately upon reception of clearance from the TWR.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:dateTime"/>
	</xs:simpleType>
	<xs:simpleType name="AircraftIdentification" id="donlon022">
		<xs:annotation>
			<xs:documentation>Name used by ATS units to identify and communicate with the aircraft. String of 1 to 7 alphanumeric characters.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:minLength value="1"/>
			<xs:maxLength value="7"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="EstimatedOffBlockTime" id="donlon023">
		<xs:annotation>
			<xs:documentation>Date and time at which the aircraft will off-block according to ICAO flight plan field.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:dateTime"/>
	</xs:simpleType>
	<xs:simpleType name="ICAOArrivalAerodrome" id="donlon024">
		<xs:annotation>
			<xs:documentation>ICAO code of scheduled destination aerodrome.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="don:ICAOAerodromeLocationIndicator"/>
	</xs:simpleType>
	<xs:simpleType name="ICAODepartureAerodrome" id="donlon025">
		<xs:annotation>
			<xs:documentation>ICAO code of the scheduled departure aerodrome.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="don:ICAOAerodromeLocationIndicator"/>
	</xs:simpleType>
	<xs:simpleType name="ICAOAerodromeLocationIndicator" id="donlon026">
		<xs:annotation>
			<xs:documentation>ICAO code of scheduled destination aerodrome. String of 4 alphabetic uppercase characters.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:length value="4"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ReasonForRejection" id="donlon027">
		<xs:annotation>
			<xs:documentation>Code or textual description on the reason for rejection</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	<xs:simpleType name="Status" id="donlon028">
		<xs:annotation>
			<xs:documentation>Specifies whether a request has been accepted or not.
Values:
    ACCEPTED
    REJECTED</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="ACCEPTED"/>
			<xs:enumeration value="REJECTED"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>


Example XML based on the schema

TOBTSettingRequest

The following example illustrates what the TOBTSettingRequest would look like based on the example schema.

TOBTSettingRequest.xml
<?xml version="1.0" encoding="UTF-8"?>
<don:TOBTSettingRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:don="http://www.swim.donlon-airport.com/swim-ops/gateway" xsi:schemaLocation="http://www.swim.donlon-airport.com/swim-ops/gateway DonlonTOBTSettingServiceInformationDefinition.xsd">
	<don:tobt>2018-06-25T09:32:00Z</don:tobt>
	<don:flightId>
		<don:aircraftIdentification>TAP847</don:aircraftIdentification>
		<don:estimatedOffBlockTime>2018-06-25T09:20:00Z</don:estimatedOffBlockTime>
		<don:icaoDepartureAerodrome>EADD</don:icaoDepartureAerodrome>
		<don:icaoArrivalAerodrome>LPPT</don:icaoArrivalAerodrome>
	</don:flightId>
</don:TOBTSettingRequest>

TOBTDeleteRequest

The following example illustrates what the TOBTDeleteRequest would look like based on the example schema.

TOBTDeleteRequest.xml
<?xml version="1.0" encoding="UTF-8"?>
<don:TOBTDeleteRequest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:don="http://www.swim.donlon-airport.com/swim-ops/gateway" xsi:schemaLocation="http://www.swim.donlon-airport.com/swim-ops/gateway DonlonTOBTSettingServiceInformationDefinition.xsd">
	<don:flightId>
		<don:aircraftIdentification>TAP847</don:aircraftIdentification>
		<don:estimatedOffBlockTime>2018-06-25T09:20:00Z</don:estimatedOffBlockTime>
		<don:icaoDepartureAerodrome>EADD</don:icaoDepartureAerodrome>
		<don:icaoArrivalAerodrome>LPPT</don:icaoArrivalAerodrome>
	</don:flightId>
</don:TOBTDeleteRequest>

Data catalogue example

The same content can be represented in a tabular data catalogue format. The following figures show how this could look. It is possible to download the completed spreadsheet: donlon_data_catalogue.xlsx

The spreadsheet contains identification, responsible party and scope information in one tab.

This tab also contains links to the four messages contained in the information definition. Each of these tabs includes the concepts and their semantic correspondence. This is illustrated for the TOBTSettingRequest below.