<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://www.netex.org.uk/netex" xmlns:netex="http://www.netex.org.uk/netex" xmlns:siri="http://www.siri.org.uk/siri" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.netex.org.uk/netex" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.0" id="netex_routingConstraint_version">
	<xsd:annotation>
		<xsd:appinfo>
			<Metadata xmlns="http://www.govtalk.gov.uk/CM/gms-xs">
				<Aggregation>main schema</Aggregation>
				<Audience>e-service developers</Audience>
				<Contributor>V1.0 Christophe Duquesne</Contributor>
				<Contributor>Nicholas Knowles</Contributor>
				<Coverage>Europe</Coverage>
				<Creator>First drafted for NeTEx version 1.0 CEN TC278 WG3 SG9 Editor Nicholas Knowles.</Creator>
				<Date>
					<Created>2010-09-04</Created>
				</Date>
				<Date><Modified>2011-02-05</Modified>Name Space changes   
				</Date>
				<Date><Modified>2023-12-13</Modified>Enhancement #391 Allow LINE REF and on SERVICE RESTRICTION
					    Allow LINE IN DIRECTION reference  on ROUTING CONSTRAINT ZONE
				</Date>
				<Description>
					<p>NeTEx is a European CEN standard for the exchange of Public Transport data including timetables.</p>
					<p>This sub-schema describes the ROUTING CONSTRAINT  types.</p>
				</Description>
				<Format>
					<MediaType>text/xml</MediaType>
					<Syntax>http://www.w3.org/2001/XMLSchema</Syntax>
					<Description>XML schema, W3C Recommendation 2001</Description>
				</Format>
				<Identifier>{http://www.netex.org.uk/schemas/1.0/xsd/netex_part_1/part1_tacticalPlanning}netex_routingConstraint_support.xsd</Identifier>
				<Language>[ISO 639-2/B] ENG</Language>
				<Publisher>Kizoom Software Ltd, 16 High Holborn, London WC1V 6BX </Publisher>
				<Relation>
					<Requires>http://www.netex.org.uk/schemas/1.0/PATH/netex_prereqfile.xsd</Requires>
				</Relation>
				<Rights>Unclassified
					 <Copyright>CEN, Crown Copyright 2009-2023</Copyright>
				</Rights>
				<Source>
					<ul>
						<li>Derived from the Transmodel, VDV, TransXChange, NEPTUNE, BISON and Trident standards.</li>
					</ul>
				</Source>
				<Status>Version 1.0</Status>
				<Subject>
					<Category>Arts, recreation and travel, Tourism, Travel (tourism), Transport,
Air transport, Airports,
Ports and maritime transport, Ferries (marine),
Public transport, Bus services, Coach services, Bus stops and stations,
Rail transport, Railway stations and track, Train services, Underground trains,
Business and industry, Transport, Air transport , Ports and maritime transport, Public transport,
Rail transport, Roads and Road transport
</Category>
					<Project>CEN TC278 WG3 SG9.</Project>
				</Subject>
				<Title>NeTEx ROUTING CONSTRAINT types.</Title>
				<Type>Standard</Type>
			</Metadata>
		</xsd:appinfo>
		<xsd:documentation>NeTEX: ROUTING CONSTRAINT types.</xsd:documentation>
	</xsd:annotation>
	<xsd:include schemaLocation="netex_routingConstraint_support.xsd"/>
	<xsd:include schemaLocation="netex_servicePattern_version.xsd"/>
	<!-- ======================================================================= -->
	<xsd:annotation>
		<xsd:appinfo>
			<Metadata xmlns="http://www.govtalk.gov.uk/CM/gms-xs">
				<Aggregation>main schema</Aggregation>
				<Audience>e-service developers</Audience>
				<Contributor>V1.0 Christophe Duquesne</Contributor>
				<Contributor>Nicholas Knowles</Contributor>
				<Coverage>Europe</Coverage>
				<Creator>First drafted for NeTEx version 1.0 CEN TC278 WG3 SG9 Editor Nicholas Knowles.</Creator>
				<Date>
					<Created>2010-09-04</Created>
				</Date>
				<Date><Modified>2011-02-05</Modified>Name Space changes
				</Date>
				<Date><Modified>2023-12-13</Modified>#391 https://github.com/NeTEx-CEN/NeTEx/issues/391
					           Enhancements: Add constraints of LINE to SERVICE EXCLUSION
					           Add constraints of LINE DIRECTION to ROUTING CONSTRAINT ZONE.
				</Date>
				<Description>
					<p>NeTEx is a European CEN standard for the exchange of Public Transport data including timetables.</p>
					<p>This sub-schema describes the INTERCHANGE RULE types.</p>
				</Description>
				<Format>
					<MediaType>text/xml</MediaType>
					<Syntax>http://www.w3.org/2001/XMLSchema</Syntax>
					<Description>XML schema, W3C Recommendation 2001</Description>
				</Format>
				<Identifier>{http://www.netex.org.uk/schemas/1.0/xsd/netex_part_1/part1_tacticalPlanning}netex_routingConstraint_version.xsd</Identifier>
				<Language>[ISO 639-2/B] ENG</Language>
				<Publisher>Kizoom Software Ltd, 16 High Holborn, London WC1V 6BX </Publisher>
				<Relation>
					<Requires>http://www.netex.org.uk/schemas/1.0/PATH/netex_prereqfile.xsd</Requires>
				</Relation>
				<Rights>Unclassified
 <Copyright>CEN, Crown Copyright 2009-2023</Copyright>
				</Rights>
				<Source>
					<ul>
						<li>Derived from the Transmodel, VDV, TransXChange, NEPTUNE, BISON and Trident standards.</li>
					</ul>
				</Source>
				<Status>Version 1.0</Status>
				<Subject>
					<Category>Arts, recreation and travel, Tourism, Travel (tourism), Transport,
Air transport, Airports,
Ports and maritime transport, Ferries (marine),
Public transport, Bus services, Coach services, Bus stops and stations,
Rail transport, Railway stations and track, Train services, Underground trains,
Business and industry, Transport, Air transport , Ports and maritime transport, Public transport,
Rail transport, Roads and Road transport
</Category>
					<Project>CEN TC278 WG3 SG9.</Project>
				</Subject>
				<Title>NeTEx ROUTING CONSTRAINT types.</Title>
				<Type>Standard</Type>
			</Metadata>
		</xsd:appinfo>
		<xsd:documentation>NeTEX: ROUTING CONSTRAINT types.</xsd:documentation>
	</xsd:annotation>
	<!-- ===ENTIITY IN VERSION IN FRAME====(Used in SERVICE FRAME)=================================================== -->
	<xsd:group name="RoutingConstraintInFrameGroup">
		<xsd:annotation>
			<xsd:documentation>ROUTING CONSTRAINT related elements in frame.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="transferRestrictions" type="transferRestrictionsInFrame_RelStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>TRANSFER RESTRICTIONS in frame.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="routingConstraintZones" type="routingConstraintZonesInFrame_RelStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>ROUTING CONSTRAINT ZONEs in frame.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="serviceExclusions" type="serviceExclusionsInFrame_RelStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>SERVICE EXCLUSIONs in frame.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:group>
	<xsd:complexType name="serviceExclusionsInFrame_RelStructure">
		<xsd:annotation>
			<xsd:documentation>Type for containment in frame of SERVICE EXCLUSION.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="containmentAggregationStructure">
				<xsd:sequence>
					<xsd:element ref="ServiceExclusion" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="transferRestrictionsInFrame_RelStructure">
		<xsd:annotation>
			<xsd:documentation>Type for containment in frame of TRANSFER RESTRICTION.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="containmentAggregationStructure">
				<xsd:sequence>
					<xsd:element ref="TransferRestriction" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>A CONSTRAINT that can be applied on a CONNECTION or INTERCHANGE between two SCHEDULED STOP POINT, preventing or forbidding the passenger to use it.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="routingConstraintZonesInFrame_RelStructure">
		<xsd:annotation>
			<xsd:documentation>Type for containment in frame of ROUTING CONSTRAINT ZONE.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="containmentAggregationStructure">
				<xsd:sequence>
					<xsd:element ref="RoutingConstraintZone" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<!-- ======================== =============================================== -->
	<xsd:element name="ServiceExclusion" substitutionGroup="Assignment_Dummy">
		<xsd:annotation>
			<xsd:documentation>A constraint on the use of a service. The service, on this specific JOURNEY PATTERN (usually a FTS JOURNEY PATTERN) cannot operate when another (regular) service operates. This may occur only on subpart of the JOURNEY PATTERN, or only on one or some specific SCHEDULED STOP POINTs within the pattern.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:restriction base="ServiceExclusion_VersionStructure">
					<xsd:sequence>
						<xsd:sequence>
							<xsd:sequence>
								<xsd:group ref="EntityInVersionGroup" minOccurs="0"/>
							</xsd:sequence>
							<xsd:sequence>
								<xsd:group ref="DataManagedObjectGroup"/>
							</xsd:sequence>
							<xsd:sequence>
								<xsd:group ref="AssignmentGroup"/>
							</xsd:sequence>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="ServiceExclusionGroup"/>
						</xsd:sequence>
					</xsd:sequence>
					<xsd:attribute name="id" type="ServiceExclusionIdType" use="required"/>
				</xsd:restriction>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="ServiceExclusion_VersionStructure">
		<xsd:annotation>
			<xsd:documentation>Type for SERVICE EXCLUSION.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="Assignment_VersionStructure">
				<xsd:sequence>
					<xsd:group ref="ServiceExclusionGroup"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:group name="ServiceExclusionGroup">
		<xsd:annotation>
			<xsd:documentation>Elements for a SERVICE EXCLUSION.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="ExcludingJourneyPatternRef" type="JourneyPatternRefStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>JOURNEY PATTERN to which exclusion applies.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="StartPointRef" type="ScheduledStopPointRefStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Starting stop point within JOURNEY PATTERN for exclusion.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="EndPointRef" type="ScheduledStopPointRefStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Ending stop point within JOURNEY PATTERN for exclusion.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="excludedJourneyPatternRefs" type="journeyPatternRefs_RelStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Excluded other JOURNEY PATTERNs.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element ref="LineRef" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>+v2.0</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:group>
	<!-- ======================================================================= -->
	<xsd:element name="TransferRestriction" substitutionGroup="Assignment_Dummy">
		<xsd:annotation>
			<xsd:documentation>A CONSTRAINT that can be applied on a CONNECTION or INTERCHANGE between two SCHEDULED STOP POINT, preventing or forbidding the passenger to use it.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:restriction base="TransferRestriction_VersionStructure">
					<xsd:sequence>
						<xsd:sequence>
							<xsd:sequence>
								<xsd:group ref="EntityInVersionGroup" minOccurs="0"/>
							</xsd:sequence>
							<xsd:sequence>
								<xsd:group ref="DataManagedObjectGroup"/>
							</xsd:sequence>
							<xsd:sequence>
								<xsd:group ref="AssignmentGroup"/>
							</xsd:sequence>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="TransferRestrictionGroup"/>
						</xsd:sequence>
					</xsd:sequence>
					<xsd:attribute name="id" type="TransferRestrictionIdType" use="required">
						<xsd:annotation>
							<xsd:documentation>Identifier of ENTITY.</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
				</xsd:restriction>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="TransferRestriction_VersionStructure">
		<xsd:annotation>
			<xsd:documentation>Type for TRANSFER RESTRICTION.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="Assignment_VersionStructure">
				<xsd:sequence>
					<xsd:group ref="TransferRestrictionGroup"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:group name="TransferRestrictionGroup">
		<xsd:annotation>
			<xsd:documentation>Elements for a TRANSFER RESTRICTION.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element ref="TypeOfTransferRef" minOccurs="0"/>
			<xsd:element name="BothWays" type="xsd:boolean" default="true" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Whether timings and validity applies to both directions (true) or just to the from-to direction of the TRANSFER.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="RestrictionType" type="TransferConstraintTypeEnumeration">
				<xsd:annotation>
					<xsd:documentation>Nature of restriction.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="FromPointRef" type="ScheduledStopPointRefStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>From POINT of TRANSFER RESTRICTION.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ToPointRef" type="ScheduledStopPointRefStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>TO POINT of TRANSFER RESTRICTION.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:group>
	<!-- ======================== =============================================== -->
	<xsd:element name="RoutingConstraintZone" substitutionGroup="Zone">
		<xsd:annotation>
			<xsd:documentation>A constraint on the use of a service. The service, on this specific JOURNEY PATTERN (usually a FTS JOURNEY PATTERN) cannot operate when another (regular) service operates. This may occur only on subpart of the JOURNEY PATTERN, or only on one or some specific SCHEDULED STOP POINTs within the pattern.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:restriction base="RoutingConstraintZone_VersionStructure">
					<xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="EntityInVersionGroup" minOccurs="0"/>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="DataManagedObjectGroup"/>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="GroupOfEntitiesGroup"/>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="GroupOfPointsGroup"/>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="ZoneGroup"/>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="RoutingConstraintZoneGroup"/>
						</xsd:sequence>
					</xsd:sequence>
					<xsd:attribute name="id" type="RoutingConstraintZoneIdType" use="required">
						<xsd:annotation>
							<xsd:documentation>Identifier of ENTITY.</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
				</xsd:restriction>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="RoutingConstraintZone_VersionStructure">
		<xsd:annotation>
			<xsd:documentation>Type for ROUTING CONSTRAINT ZONE.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="Zone_VersionStructure">
				<xsd:sequence>
					<xsd:group ref="RoutingConstraintZoneGroup"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:group name="RoutingConstraintZoneGroup">
		<xsd:annotation>
			<xsd:documentation>Elements for a ROUTING CONSTRAINT ZONE.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="ZoneUse" type="ZoneUseEnumeration" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>How ZONE may be used.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="MaximumSpeed" type="SpeedType" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Maximum speed in ZONE. +v1.2.2ne</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="pointsInPattern" type="pointsInJourneyPattern_RelStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Points between which constraint applies, in sequence.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="lineDirections" type="linesInDirectionRefs_RelStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>LINE and DIRECTION combinations to which exclusion applies. +V2.0</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="lines" type="lineRefs_RelStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>LINEs to which exclusion applies.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element ref="GroupOfLinesRef" minOccurs="0"/>
		</xsd:sequence>
	</xsd:group>
	<!-- ======================================================================= -->
</xsd:schema>
