Service Description
asrv.aero
Flight Data Set Service v 1.0
Namespace: http://www.asrv.aero/webservices/1.0/FlightDataSetService
Document revisions
Date | Description | Author |
---|---|---|
2020-04-20 | First complete version of the documentation | |
2020-04-18 | Version 1.0 specific documentation established |
Table of content
- 1. Introduction
- 2. Service overview
- 3. Service operations
- 3.1. SetAcdmTimesInbound ( transData: TransData, flightLegIdentifier: FlightLegIdentifier, acdmTimesInbound: AcdmTimesInbound ): ResponseStatus
- 3.2. SetAcdmTimesOutbound ( transData: TransData, flightLegIdentifier: FlightLegIdentifier, acdmTimesOutbound: AcdmTimesOutbound ) : ResponseStatus
- 3.3. SetBasicFlightDataInbound ( transData: TransData, basicFlightDataInbound: BasicFlightDataInbound ) : ResponseStatus
- 3.4. SetBasicFlightDataOutbound( transData: TransData, basicFlightDataOutbound: BasicFlightDataOutbound ) : ResponseStatus
- 4. Data entities
- 5. XML Usage
- 6. WSDL and XSDs
- 7. Examples
1. Introduction
1.1. Overview
This service description defines one service with a set of operations to set flight oriented data. All flight related data elements are defined by the Airport Data Dictionary.
The service is primarily designed to meet the need of airport partners, but availability is the decision of the service provider.
There are a set of use cases that can be realized using the operations and data available, for example:
-
- Set A-CDM time data (SetAcdmTimesInbound, SetAcdmTimesOutbound).
- Set basic arrival and departure data SetBasicFlightDataInbound, SetBasicFlightDataOutbound).
While the entity definitions stay the same, the data they contain related to one flight will change as time goes by. Initially only schedule data will be available. The data content should then steadily increase as the flight progresses, until it is as complete as the client (service user) can make it. For some usage scenarios the client will always set the same information as they are highly specialized (docking systems for instance).
1.2. Implementation considerations
Any implementation of this service MUST use the WSDL and XSD files provided here: WSDL and XSDs
It is however up to the service provider to decide which data elements to actually update. And as clients vary wildly in their capabilities most elements are optional
Any service provider should make available documentation about the actual implementation, including:
-
- the address of the service.
- any limitations in the implementation.
- any limitations on how often a client can use the service.
1.3. Purpose of this service description
This service description has the following purpose:
-
-
- Describe of service in enough detail for a service provider to implement it.
- Describe the service so that a client (of this service) developer can use it.
- Make available the WSDL and XSD files necessary to implement and use the service.
- Make it possible for relevant people at airports, airlines, handlers and other aviation partners to understand the available functionality and then to decide if to implement/use it or not.
-
1.4. Intended readership
-
- IT architects
- Developers
- Business architects
- Interested parties in the aviation community
2. Service overview
The figure below shows the available operations on the FlightDataSetService. The operations are described in detail in Service operations.
The operations can set the following types of data:
- Arriving flights
- Departing flights
3. Service operations
3.1. SetAcdmTimesInbound ( transData: TransData, flightLegIdentifier: FlightLegIdentifier, acdmTimesInbound: AcdmTimesInbound ): ResponseStatus
Used to set A-CDM relevant times for an inbound flight.
Parameters:
-
transData: TransData - See definition under Data entities.
Metadata related to this transaction. -
flightLegIdentifier: FlightLegIdentifier - See definition under Data entities.
Must uniquely identify an inbound flight. - acdmTimesInbound: AcdmTimesInbound - See definition under Data entities.
Returns: ResponseStatus - See definition under Data entities .
3.2. SetAcdmTimesOutbound ( transData: TransData, flightLegIdentifier: FlightLegIdentifier, acdmTimesOutbound: AcdmTimesOutbound ) : ResponseStatus
Used to set A-CDM relevant times for an outbound flight.
Parameters:
-
transData: TransData - See definition under Data entities.
Metadata related to this transaction. -
flightLegIdentifier: FlightLegIdentifier - See definition under Data entities.
Must uniquely identify an inbound flight. - acdmTimesOutbound: AcdmTimesOutbound - See definition under Data entities.
Returns: ResponseStatus - See definition under Data entities .
3.3. SetBasicFlightDataInbound ( transData: TransData, basicFlightDataInbound: BasicFlightDataInbound ) : ResponseStatus
Used to set basic flight data for an inbound flight.
Parameters:
-
transData: TransData - See definition under Data entities.
Metadata related to this transaction. -
basicFlightDataInbound: BasicFlightDataInbound - See definition under Data entities.
Returns: ResponseStatus - See definition under Data entities.
3.4. SetBasicFlightDataOutbound( transData: TransData, basicFlightDataOutbound: BasicFlightDataOutbound ) : ResponseStatus
Used to set flight data for an outbound flight.
Parameters:
-
transData: TransData - See definition under Data entities.
Metadata related to this transaction. -
basicFlightDataOutbound: BasicFlightDataOutbound - See definition under Data entities.
Returns: ResponseStatus - See definition under Data entities.
4. Data entities
4.1. AcdmTimesInbound
|
|
4.2. AcdmTimesOutbound
|
|
4.3. BasicFlightDataInbound
|
|
4.4. BasicFlightDataOutbound
|
|
4.5. CodeshareData
|
|
4.6. FlightLegIdentifier
|
|
4.7. ResponseStatus
|
|
4.8. TransData
|
|
5. XML Usage
5.1. Nil Values in Schema
For any particular data element, there is an important distinction between the following cases:
(a) the element is missing
(b) the element is present but has a 'nil' attribute assigned to it
In the first case, this means that the sender is supplying no information about the element. This would typically be because no information is available, or because there has been no change in the value of the element. A recipient would not be expected to take any action as a result of this. In particular, it would not be expected to clear any existing value.
In the second case, this means that the sender has explicitly cleared the element. As a result of this, a recipient would typically clear any value that it had previously stored for this element.
The following table shows an example sequence of messages, and the expected actions taken by the data recipient. It should be noted, however, that the action is up to the recipient. The message from the sender is a notification, and not a command for the recipient to take action.
Message contents |
Expected action by recipient |
---|---|
aircraftRegistration element missing |
Does not set or change aircraft registration value |
<aircraftRegistration>ABC123</aircraftRegistration> |
Sets the value to ABC123 |
aircraftRegistration element missing |
Does not change the value |
<aircraftRegistration xs:nil=’true’> |
Clears the aircraftRegistration value |
Note that the sender should not use blank data elements such as <aircraftRegistration/> or <aircraftRegistration></aircraftRegistration> as these may cause validation errors. For example, if the schema specifies a format or a minimum length for an element, then a zero-length element will be invalid. This problem does not occur if using the nil attribute.
Note - Where a field is defined as mandatory in the schema, it must not contain a nil value.
6. WSDL and XSDs
File | Created | Comment |
---|---|---|
2021-04-06 12:11 | WSDL file including necessary XML definitions. |
7. Examples
7.1. Introduction
Note! Not all SOAP service methods have a complete specification. Hence, not all SOAP service methods are implemented by the FlightDataSetService. Four service methods are implemented:
- SetAcdmTimesInbound
- SetAcdmTimesOutbound
- SetBasicFlightDataInbound
- SetBasicFlightDataOutbound
7.2. Example SOAP templates
7.2.1. SetAcdmTimesInboundRequest SOAP template
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:flig="http://www.asrv.aero/webservices/1.0/flightdatasetservice" xmlns:dat="http://www.asrv.aero/webservices/1.0/flightdatasetservice/datadefinitions"> <soapenv:Header/> <soapenv:Body> <flig:setAcdmTimesInboundRequest> <dat:transData> <dat:correlationId>?</dat:correlationId> <dat:sourceOrganization>?</dat:sourceOrganization> <dat:sourceTimestamp>?</dat:sourceTimestamp> </dat:transData> <dat:flightLegIdentifier> <dat:ifplId>?</dat:ifplId> <dat:callsign>?</dat:callsign> <dat:aircraftRegistration>?</dat:aircraftRegistration> <dat:ssrCode>?</dat:ssrCode> <dat:flightId>?</dat:flightId> <dat:flightDepartureDate>?</dat:flightDepartureDate> <dat:departureAirportIATA>?</dat:departureAirportIATA> <dat:arrivalAirportIATA>?</dat:arrivalAirportIATA> <dat:departureAirportICAO>?</dat:departureAirportICAO> <dat:arrivalAirportICAO>?</dat:arrivalAirportICAO> </dat:flightLegIdentifier> <dat:acdmTimesInbound> <dat:ettt>?</dat:ettt> <dat:eldt>?</dat:eldt> <dat:tldt>?</dat:tldt> <dat:aldt>?</dat:aldt> <dat:sibt>?</dat:sibt> <dat:eibt>?</dat:eibt> <dat:aibt>?</dat:aibt> <dat:acgt>?</dat:acgt> <dat:aegt>?</dat:aegt> </dat:acdmTimesInbound> </flig:setAcdmTimesInboundRequest> </soapenv:Body> </soapenv:Envelope>
7.2.2. SetAcdmTimesInbound SOAP template
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:flig="http://www.asrv.aero/webservices/1.0/flightdatasetservice" xmlns:dat="http://www.asrv.aero/webservices/1.0/flightdatasetservice/datadefinitions"> <soapenv:Header/> <soapenv:Body> <flig:setAcdmTimesOutboundRequest> <dat:transData> <dat:correlationId>?</dat:correlationId> <dat:sourceOrganization>?</dat:sourceOrganization> <dat:sourceTimestamp>?</dat:sourceTimestamp> </dat:transData> <dat:flightLegIdentifier> <dat:ifplId>?</dat:ifplId> <dat:callsign>?</dat:callsign> <dat:aircraftRegistration>?</dat:aircraftRegistration> <dat:ssrCode>?</dat:ssrCode> <dat:flightId>?</dat:flightId> <dat:flightDepartureDate>?</dat:flightDepartureDate> <dat:departureAirportIATA>?</dat:departureAirportIATA> <dat:arrivalAirportIATA>?</dat:arrivalAirportIATA> <dat:departureAirportICAO>?</dat:departureAirportICAO> <dat:arrivalAirportICAO>?</dat:arrivalAirportICAO> </dat:flightLegIdentifier> <dat:acdmTimesOutbound> <dat:asbt>?</dat:asbt> <dat:asrt>?</dat:asrt> <dat:tsat>?</dat:tsat> <dat:asat>?</dat:asat> <dat:ardt>?</dat:ardt> <dat:sobt>?</dat:sobt> <dat:eobt>?</dat:eobt> <dat:tobt>?</dat:tobt> <dat:aobt>?</dat:aobt> <dat:erzt>?</dat:erzt> <dat:arzt>?</dat:arzt> <dat:eczt>?</dat:eczt> <dat:aczt>?</dat:aczt> <dat:eezt>?</dat:eezt> <dat:aezt>?</dat:aezt> <dat:ctot>?</dat:ctot> <dat:etot>?</dat:etot> <dat:ttot>?</dat:ttot> <dat:atot>?</dat:atot> </dat:acdmTimesOutbound> </flig:setAcdmTimesOutboundRequest> </soapenv:Body> </soapenv:Envelope>
7.2.3. SetBasicFlightDataInbound SOAP template
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:flig="http://www.asrv.aero/webservices/1.0/flightdatasetservice" xmlns:dat="http://www.asrv.aero/webservices/1.0/flightdatasetservice/datadefinitions"> <soapenv:Header/> <soapenv:Body> <flig:setBasicFlightDataInboundRequest> <dat:transData> <dat:correlationId>?</dat:correlationId> <dat:sourceOrganization>?</dat:sourceOrganization> <dat:sourceTimestamp>?</dat:sourceTimestamp> </dat:transData> <dat:basicFlightDataInbound> <dat:flightLegIdentifier> <dat:ifplId>?</dat:ifplId> <dat:callsign>?</dat:callsign> <dat:aircraftRegistration>?</dat:aircraftRegistration> <dat:ssrCode>?</dat:ssrCode> <dat:flightId>?</dat:flightId> <dat:flightDepartureDate>?</dat:flightDepartureDate> <dat:departureAirportIATA>?</dat:departureAirportIATA> <dat:arrivalAirportIATA>?</dat:arrivalAirportIATA> <dat:departureAirportICAO>?</dat:departureAirportICAO> <dat:arrivalAirportICAO>?</dat:arrivalAirportICAO> </dat:flightLegIdentifier> <dat:flightIsMultiLeg>?</dat:flightIsMultiLeg> <!--Zero or more repetitions:--> <dat:flightRouteIATA>?</dat:flightRouteIATA> <!--Zero or more repetitions:--> <dat:codeshareData> <dat:codeShareFlightNumber>?</dat:codeShareFlightNumber> <dat:codeShareAirlineIATA>?</dat:codeShareAirlineIATA> <dat:codeShareAirlineICAO>?</dat:codeShareAirlineICAO> <dat:codeShareAirlineTicketed>?</dat:codeShareAirlineTicketed> </dat:codeshareData> <dat:flightServiceTypeIATA>?</dat:flightServiceTypeIATA> <dat:aircraftIATAType>?</dat:aircraftIATAType> <dat:flightIsCancelled>?</dat:flightIsCancelled> <dat:flightDIIndicator>?</dat:flightDIIndicator> <dat:aircraftParkingPosition>?</dat:aircraftParkingPosition> <dat:baggageClaimUnit>?</dat:baggageClaimUnit> <dat:beltFirstBag>?</dat:beltFirstBag> <dat:beltLastBag>?</dat:beltLastBag> <dat:sibt>?</dat:sibt> <dat:eldt>?</dat:eldt> <dat:aldt>?</dat:aldt> <dat:eibt>?</dat:eibt> <dat:aibt>?</dat:aibt> <dat:linkedDeparture> <dat:ifplId>?</dat:ifplId> <dat:callsign>?</dat:callsign> <dat:aircraftRegistration>?</dat:aircraftRegistration> <dat:ssrCode>?</dat:ssrCode> <dat:flightId>?</dat:flightId> <dat:flightDepartureDate>?</dat:flightDepartureDate> <dat:departureAirportIATA>?</dat:departureAirportIATA> <dat:arrivalAirportIATA>?</dat:arrivalAirportIATA> <dat:departureAirportICAO>?</dat:departureAirportICAO> <dat:arrivalAirportICAO>?</dat:arrivalAirportICAO> </dat:linkedDeparture> </dat:basicFlightDataInbound> </flig:setBasicFlightDataInboundRequest> </soapenv:Body> </soapenv:Envelope>
7.2.4. SetBasicFlightDataOutbound SOAP template
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:flig="http://www.asrv.aero/webservices/1.0/flightdatasetservice" xmlns:dat="http://www.asrv.aero/webservices/1.0/flightdatasetservice/datadefinitions"> <soapenv:Header/> <soapenv:Body> <flig:setBasicFlightDataOutboundRequest> <dat:transData> <dat:correlationId>?</dat:correlationId> <dat:sourceOrganization>?</dat:sourceOrganization> <dat:sourceTimestamp>?</dat:sourceTimestamp> </dat:transData> <dat:basicFlightDataOutbound> <dat:flightLegIdentifier> <!--Optional:--> <dat:ifplId>?</dat:ifplId> <!--Optional:--> <dat:callsign>?</dat:callsign> <!--Optional:--> <dat:aircraftRegistration>?</dat:aircraftRegistration> <!--Optional:--> <dat:ssrCode>?</dat:ssrCode> <!--Optional:--> <dat:flightId>?</dat:flightId> <!--Optional:--> <dat:flightDepartureDate>?</dat:flightDepartureDate> <!--Optional:--> <dat:departureAirportIATA>?</dat:departureAirportIATA> <!--Optional:--> <dat:arrivalAirportIATA>?</dat:arrivalAirportIATA> <!--Optional:--> <dat:departureAirportICAO>?</dat:departureAirportICAO> <!--Optional:--> <dat:arrivalAirportICAO>?</dat:arrivalAirportICAO> </dat:flightLegIdentifier> <!--Optional:--> <dat:flightIsMultiLeg>?</dat:flightIsMultiLeg> <!--Zero or more repetitions:--> <dat:flightRouteIATA>?</dat:flightRouteIATA> <!--Zero or more repetitions:--> <dat:codeshareData> <dat:codeShareFlightNumber>?</dat:codeShareFlightNumber> <!--Optional:--> <dat:codeShareAirlineIATA>?</dat:codeShareAirlineIATA> <!--Optional:--> <dat:codeShareAirlineICAO>?</dat:codeShareAirlineICAO> <!--Optional:--> <dat:codeShareAirlineTicketed>?</dat:codeShareAirlineTicketed> </dat:codeshareData> <!--Optional:--> <dat:flightServiceTypeIATA>?</dat:flightServiceTypeIATA> <!--Optional:--> <dat:aircraftIATAType>?</dat:aircraftIATAType> <!--Optional:--> <dat:flightIsCancelled>?</dat:flightIsCancelled> <!--Optional:--> <dat:flightDIIndicator>?</dat:flightDIIndicator> <!--Optional:--> <dat:aircraftParkingPosition>?</dat:aircraftParkingPosition> <!--Optional:--> <dat:gate>?</dat:gate> <!--Optional:--> <dat:gateAction>?</dat:gateAction> <!--Optional:--> <dat:sobt>?</dat:sobt> <!--Optional:--> <dat:tobt>?</dat:tobt> <!--Optional:--> <dat:eobt>?</dat:eobt> <!--Optional:--> <dat:aobt>?</dat:aobt> <!--Optional:--> <dat:tsat>?</dat:tsat> <!--Optional:--> <dat:ttot>?</dat:ttot> <!--Optional:--> <dat:etot>?</dat:etot> <!--Optional:--> <dat:atot>?</dat:atot> <!--Optional:--> <dat:fuelRampRequested>?</dat:fuelRampRequested> <!--Optional:--> <dat:aircraftMTOW>?</dat:aircraftMTOW> <!--Optional:--> <dat:linkedArrival> <!--Optional:--> <dat:ifplId>?</dat:ifplId> <!--Optional:--> <dat:callsign>?</dat:callsign> <!--Optional:--> <dat:aircraftRegistration>?</dat:aircraftRegistration> <!--Optional:--> <dat:ssrCode>?</dat:ssrCode> <!--Optional:--> <dat:flightId>?</dat:flightId> <!--Optional:--> <dat:flightDepartureDate>?</dat:flightDepartureDate> <!--Optional:--> <dat:departureAirportIATA>?</dat:departureAirportIATA> <!--Optional:--> <dat:arrivalAirportIATA>?</dat:arrivalAirportIATA> <!--Optional:--> <dat:departureAirportICAO>?</dat:departureAirportICAO> <!--Optional:--> <dat:arrivalAirportICAO>?</dat:arrivalAirportICAO> </dat:linkedArrival> </dat:basicFlightDataOutbound> </flig:setBasicFlightDataOutboundRequest> </soapenv:Body> </soapenv:Envelope>
7.3. Example SOAP requests
7.3.1. SetAcdmTimesInbound example SOAP request
<setAcdmTimesInboundRequest xmlns="http://www.asrv.aero/webservices/1.0/flightdatasetservice"> <transData xmlns="http://www.asrv.aero/webservices/1.0/flightdatasetservice/datadefinitions"> <correlationId>ATL_01_2017-03-23T09:28:57.729Z</correlationId> <sourceOrganization>ATLABGO</sourceOrganization> <sourceTimestamp>2017-03-23T09:28:57.729Z</sourceTimestamp> </transData> <flightLegIdentifier xmlns="http://www.asrv.aero/webservices/1.0/flightdatasetservice/datadefinitions"> <flightId>BOK999</flightId> <flightDepartureDate>2017-03-23</flightDepartureDate> <departureAirportIATA>OSL</departureAirportIATA> <arrivalAirportIATA>BGO</arrivalAirportIATA> <arrivalAirportICAO>ENBR</arrivalAirportICAO> </flightLegIdentifier> <acdmTimesInbound xmlns="http://www.asrv.aero/webservices/1.0/flightdatasetservice/datadefinitions"> <aibt>2017-03-23T09:28:56.000Z</aibt> </acdmTimesInbound> </setAcdmTimesInboundRequest>
7.3.2. SetAcdmTimesOutbound example SOAP request
<setAcdmTimesOutboundRequest xmlns="http://www.asrv.aero/webservices/1.0/flightdatasetservice"> <transData xmlns="http://www.asrv.aero/webservices/1.0/flightdatasetservice/datadefinitions"> <correlationId>ATL_01_2017-03-23T10:10:47.915Z</correlationId> <sourceOrganization>ATLABGO</sourceOrganization> <sourceTimestamp>2017-03-23T10:10:47.915Z</sourceTimestamp> </transData> <flightLegIdentifier xmlns="http://www.asrv.aero/webservices/1.0/flightdatasetservice/datadefinitions"> <flightId>BOK103</flightId> <flightDepartureDate>2017-03-23</flightDepartureDate> <departureAirportIATA>BGO</departureAirportIATA> <arrivalAirportIATA>SKN</arrivalAirportIATA> <departureAirportICAO>ENBR</departureAirportICAO> <arrivalAirportICAO>ENSK</arrivalAirportICAO> </flightLegIdentifier> <acdmTimesOutbound xmlns="http://www.asrv.aero/webservices/1.0/flightdatasetservice/datadefinitions"> <aobt>2017-03-23T10:10:47.000Z</aobt> </acdmTimesOutbound> </setAcdmTimesOutboundRequest>
7.3.3. SetBasicFlightDataInbound SOAP example
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:flig="http://www.asrv.aero/webservices/1.0/flightdatasetservice" xmlns:dat="http://www.asrv.aero/webservices/1.0/flightdatasetservice/datadefinitions"> <soapenv:Header/> <soapenv:Body> <flig:setBasicFlightDataInboundRequest> <dat:transData> <dat:correlationId>BHS_01_2017-03-23T10:10:47.915Z</dat:correlationId> <dat:sourceOrganization>BHSBGO</dat:sourceOrganization> <dat:sourceTimestamp>2017-03-23T10:10:47.915Z</dat:sourceTimestamp> </dat:transData> <dat:basicFlightDataInbound> <dat:flightLegIdentifier> <dat:ifplId>AA62962432</dat:ifplId> <dat:callsign>NAX616</dat:callsign> <dat:aircraftRegistration>LNDYT</dat:aircraftRegistration> <dat:flightId>DY616</dat:flightId> <dat:flightDepartureDate>2017-04-25</dat:flightDepartureDate> <dat:departureAirportIATA>OSL</dat:departureAirportIATA> <dat:arrivalAirportIATA>BGO</dat:arrivalAirportIATA> <dat:departureAirportICAO>ENGM</dat:departureAirportICAO> <dat:arrivalAirportICAO>ENBR</dat:arrivalAirportICAO> </dat:flightLegIdentifier> <dat:baggageClaimUnit>3</dat:baggageClaimUnit> <dat:beltFirstBag>2017-03-23T10:10:40Z</dat:beltFirstBag> <dat:beltLastBag>2017-03-23T10:10:45Z</dat:beltLastBag> </dat:basicFlightDataInbound> </flig:setBasicFlightDataInboundRequest> </soapenv:Body> </soapenv:Envelope>