<?xml version="1.0" encoding="utf-8"?>
<xs:schema targetNamespace="http://www.fixm.aero/flight/4.2" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:fx="http://www.fixm.aero/flight/4.2" xmlns:fb="http://www.fixm.aero/base/4.2" elementFormDefault="qualified" version="4.2.0">
	<xs:annotation>
		<xs:documentation>An FF-ICE Filed Flight Plan message Constraints template.

=========================================== 
Copyright (c) 2020 Airservices Australia, DSNA, EUROCONTROL, GCAA UAE, IATA, International Coordinating Council of Aerospace Industries Associations, JCAB, NATS Limited, NAV CANADA, SESAR Joint Undertaking and US FAA 
=========================================== 
All rights reserved. 
          
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 
	- Redistributions of source code must retain the above copyright notice, this list of conditions and the disclaimer.
	- Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the disclaimer in the documentation and/or other materials provided with the distribution.
	- Neither the names of Airservices Australia, DSNA, EUROCONTROL, GCAA UAE, IATA, International Coordinating Council of Aerospace Industries Associations, JCAB, NATS Limited, NAV CANADA, SESAR Joint Undertaking and US FAA nor the names of their contributors may be used to endorse or promote products derived from this specification without specific prior written permission.
          
DISCLAIMER 
          
THIS SPECIFICATION IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
          
========================================== 
Editorial note: this license is an instance of the BSD license template as provided by the Open Source Initiative: 
http://www.opensource.org/licenses/bsd-license.php 
          
The authoritative reference for FIXM is www.FIXM.aero. 
          
Details on Airservices Australia: http://www.airservicesaustralia.com/ 
Details on DSNA: http://www.developpement-durable.gouv.fr/-Navigation-aerienne-.html 
Details on EUROCONTROL: http://www.eurocontrol.int/ 
Details on IATA: http://www.iata.org/Pages/default.aspx 
Details on JCAB: http://www.mlit.go.jp/en/koku/index.html 
Details on NATS Limited: http://www.nats.co.uk/ 
Details on NAV CANADA: http://www.navcanada.ca/ 
Details on the UAE GCAA: https://www.gcaa.gov.ae 
Details on the ICCAIA: www.iccaia.org 
Details on the SESAR JU and its members: http://www.sesarju.eu/discover-sesar/partnering-smarter-aviation/members 
Details on the US FAA: http://www.faa.gov/</xs:documentation>
	</xs:annotation>
	<xs:import namespace="http://www.fixm.aero/base/4.2" schemaLocation="../../base/FficeFPU_Base.xsd"/>
	<xs:include schemaLocation="../../../../../../core/flight/flightroutetrajectory/RouteChanges.xsd"/>
	<xs:include schemaLocation="../../../../../../core/flight/flightroutetrajectory/Constraints.xsd"/>
	<xs:complexType name="FfficeFPU_TimeConstraintType">
		<xs:annotation>
			<xs:documentation>The time constraint applicable to a specific point on the route. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:restriction base="fx:TimeConstraintType">
				<xs:sequence>
					<xs:element name="condition" type="fx:TimeConditionType" minOccurs="1" maxOccurs="1">
						<xs:annotation>
							<xs:documentation>Type of time constraint that describes the condition relative to the time constraint.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="extension" type="fb:TimeConstraintExtensionType" minOccurs="0" maxOccurs="2000" nillable="true">
						<xs:annotation>
							<xs:documentation>An extension hook for attaching extension (non-core) classes.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="timeSpecification" type="fb:TimeChoiceType" minOccurs="1" maxOccurs="1">
						<xs:annotation>
							<xs:documentation>Date and time associated with the constraint.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:restriction>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="FficeFPU_LevelConstraintType">
		<xs:annotation>
			<xs:documentation>The altitude constraint applicable to a specific point or segment on the route. </xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:restriction base="fx:LevelConstraintType">
				<xs:sequence>
					<xs:element name="activation" type="fx:ActivationType" minOccurs="1" maxOccurs="1">
						<xs:annotation>
							<xs:documentation>Provides an indication of whether the profile constraint is met or initiated at the Location</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="condition" type="fx:LevelConditionType" minOccurs="1" maxOccurs="1">
						<xs:annotation>
							<xs:documentation>Specifies that the flight level or altitude be achieved based on the condition relative to the point.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="extension" type="fb:LevelConstraintExtensionType" minOccurs="0" maxOccurs="2000" nillable="true">
						<xs:annotation>
							<xs:documentation>An extension hook for attaching extension (non-core) classes.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="level" type="fb:FlightLevelOrAltitudeOrRangeChoiceType" minOccurs="1" maxOccurs="1">
						<xs:annotation>
							<xs:documentation>Level or altitude specification of the constraint.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:restriction>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="FficeFPU_RouteTrajectoryConstraintType">
		<xs:annotation>
			<xs:documentation>A class that defines a constraint to a route point or trajectory.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:restriction base="fx:RouteTrajectoryConstraintType">
				<xs:sequence>
					<xs:element name="departureOrArrivalIndicator" type="fx:DepartureOrArrivalIndicatorType" minOccurs="0" maxOccurs="1" nillable="true">
						<xs:annotation>
							<xs:documentation>Identifies whether the constraint is applicable on climb or descent.  This provides an indication of which constraints take priority in the event of conflict when establishing 
a profile.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="description" type="fb:CharacterStringType" minOccurs="0" maxOccurs="1" nillable="true">
						<xs:annotation>
							<xs:documentation>Textual description of the constraint.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="extension" type="fb:RouteTrajectoryConstraintExtensionType" minOccurs="0" maxOccurs="2000" nillable="true">
						<xs:annotation>
							<xs:documentation>An extension hook for attaching extension (non-core) classes.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="level" type="fx:FficeFPU_LevelConstraintType" minOccurs="0" maxOccurs="1" nillable="true">
						<xs:annotation>
							<xs:documentation>The level constraint applicable to a specific point or segment on the route. </xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="restrictionReference" type="fb:RestrictionReferenceType" minOccurs="0" maxOccurs="1" nillable="true">
						<xs:annotation>
							<xs:documentation>Reference to a named restriction, if applicable.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="speed" type="fx:FficeFPU_SpeedConstraintType" minOccurs="0" maxOccurs="1" nillable="true">
						<xs:annotation>
							<xs:documentation>The speed constraint applicable to a specific point or segment on the route.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="time" type="fx:FfficeFPU_TimeConstraintType" minOccurs="0" maxOccurs="1" nillable="true">
						<xs:annotation>
							<xs:documentation>The time constraint applicable to a specific point on the route. </xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:restriction>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="FficeFPU_SpeedConstraintType">
		<xs:annotation>
			<xs:documentation>The speed constraint applicable to a specific point or segment on the route.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:restriction base="fx:SpeedConstraintType">
				<xs:sequence>
					<xs:element name="activation" type="fx:ActivationType" minOccurs="1" maxOccurs="1">
						<xs:annotation>
							<xs:documentation>Provides an indication of whether the profile constraint is met or initiated at the Location</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="condition" type="fx:SpeedConditionType" minOccurs="1" maxOccurs="1">
						<xs:annotation>
							<xs:documentation>Specifies that the speed be achieved based on the condition relative to the point.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="extension" type="fb:SpeedConstraintExtensionType" minOccurs="0" maxOccurs="2000" nillable="true">
						<xs:annotation>
							<xs:documentation>An extension hook for attaching extension (non-core) classes.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="speed" type="fb:TrueAirspeedChoiceType" minOccurs="1" maxOccurs="1">
						<xs:annotation>
							<xs:documentation>Speed specification of the speed constraint. Can be either an absolute speed or a speed range.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:restriction>
		</xs:complexContent>
	</xs:complexType>
</xs:schema>
