<?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" xmlns:gml="http://www.opengis.net/gml/3.2" targetNamespace="http://www.netex.org.uk/netex" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.0" id="netex_fareStructure_version">
	<xsd:include schemaLocation="netex_fareSeries_support.xsd"/>
	<xsd:include schemaLocation="../../netex_part_1/part1_tacticalPlanning/netex_fareZone_version.xsd"/>
	<xsd:include schemaLocation="netex_farePrice_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-11-07</Modified>CR0544 Deprecate PrivateCode.
				</Date>
				<Date><Modified>2023-12-09</Modified>Add Zone in Series 
				</Date>
				<Date><Modified>2023-12-09</Modified>SeriesConstraint Issue #33: Fix unbounded error on SeriesCOnstraint/JourneyPatterns
				</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 SERIES 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_3/part3_fares}netex_fareSeries_version.xsd</Identifier>
				<Language>[ISO 639-2/B] ENG</Language>
				<Publisher>Kizoom, 109-123 Clifton Street, London EC4A 4LD </Publisher>
				<Relation>
					<Requires>http://www.netex.org.uk/schemas/1.0/PATH/netex_prereqfile.xsd</Requires>
				</Relation>
				<Rights>Unclassified
					<Copyright>CEN, Crown Copyright 2009-2014</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   SERIES CONSTRAINT   types.</Title>
				<Type>Standard</Type>
			</Metadata>
		</xsd:appinfo>
		<xsd:documentation>NetEx SERIES CONSTRAINT types.</xsd:documentation>
	</xsd:annotation>
	<!-- ======================================================================= -->
	<!-- ===ENTIITY IN VERSION IN FRAME====Used in SERVICE FRAME)=================================================== -->
	<xsd:group name="FareSeriesInFrameGroup">
		<xsd:annotation>
			<xsd:documentation>Additional descriptive properties of a FARE FRAME.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="seriesConstraints" type="fareSeriesInFrame_RelStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>FARE PRODUCTs in FRAME.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:group>
	<xsd:complexType name="fareSeriesInFrame_RelStructure">
		<xsd:annotation>
			<xsd:documentation>Type for containment in frame of SERIES CONSTRAINT.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="frameContainmentStructure">
				<xsd:sequence>
					<xsd:element ref="SeriesConstraint" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<!-- ====FARE STRUCTURE=================================================== -->
	<xsd:complexType name="SeriesConstraints_RelStructure">
		<xsd:annotation>
			<xsd:documentation>Type for a list of SERIES ELEMENTs.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="containmentAggregationStructure">
				<xsd:choice maxOccurs="unbounded">
					<xsd:element ref="SeriesConstraintRef"/>
					<xsd:element ref="SeriesConstraint"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:element name="SeriesConstraint" substitutionGroup="PriceableObject_Dummy">
		<xsd:annotation>
			<xsd:documentation>A particular tariff, described by a combination of parameters.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:restriction base="SeriesConstraint_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="PriceableObjectGroup"/>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="SeriesConstraintGroup"/>
						</xsd:sequence>
					</xsd:sequence>
					<xsd:attribute name="id" type="SeriesConstraintIdType" use="required"/>
					<xsd:attribute name="order" type="xsd:positiveInteger" use="optional">
						<xsd:annotation>
							<xsd:documentation>relative number of series for same OD pair (TAP Route number) -v2.0</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
				</xsd:restriction>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="SeriesConstraint_VersionStructure">
		<xsd:annotation>
			<xsd:documentation>Type for SERIES CONSTRAINT.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="PriceableObject_VersionStructure">
				<xsd:sequence>
					<xsd:group ref="SeriesConstraintGroup"/>
				</xsd:sequence>
				<xsd:attribute name="order" type="xsd:positiveInteger" use="optional">
					<xsd:annotation>
						<xsd:documentation>relative number of series for same OD pair (TAP Route number) -v2.0</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:group name="SeriesConstraintGroup">
		<xsd:annotation>
			<xsd:documentation>Elements for a SERIES CONSTRAINT.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:group ref="SeriesConstraintDescriptionGroup"/>
			<xsd:group ref="SeriesConstraintClassificationGroup"/>
			<xsd:group ref="SeriesConstraintPricingGroup"/>
			<xsd:group ref="SeriesConstraintConstraintGroup"/>
			<xsd:element name="journeyPatterns" type="journeyPatternRefs_RelStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>JourneyPatternsequivalent to the series.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="prices" type="seriesConstraintPrices_RelStructure" minOccurs="0" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>Frices for the SERIES CONSTRAINTs (Needed for TAP TSI)</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="replaces" type="seriesConstraintRefs_RelStructure" minOccurs="0" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>Replaces the speciified SERIES CONSTRAINTs (Needed for TAP TSI)</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:group>
	<xsd:group name="SeriesConstraintDescriptionGroup">
		<xsd:annotation>
			<xsd:documentation>Description Elements for a SERIES CONSTRAINT.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element ref="PrivateCode" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>DEPRECATED - use privateCodes. -v2.0</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Itinerary" type="MultilingualString" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>String to use to represent Itinerary.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="SymbolMarkingUsualRoute" type="xsd:normalizedString" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Symbal to us eto mark normal route.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:group>
	<xsd:group name="SeriesConstraintClassificationGroup">
		<xsd:annotation>
			<xsd:documentation>Classification elements for a SERIES CONSTRAINT.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="SeriesType" type="SeriesTypeEnumeration" default="stationToStation" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Classification of SERIES CONSTRAINT. Default is station to station.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="RoutingType" type="RoutingTypeEnumeration" default="both" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Whether this is a direct i.e. no changes requried point to point or indirect.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:group>
	<xsd:group name="SeriesConstraintPricingGroup">
		<xsd:annotation>
			<xsd:documentation>Pricing elements for a SERIES CONSTRAINT.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="FareBasis" type="FareBasisEnumeration" default="route" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Preferred basis for calculating fares for this series.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="FirstClassDistance" type="DistanceType" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Distance r calculation of First Class fares.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="SecondClassDistance" type="DistanceType" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Distance r calculation of Second Class fares.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:group>
	<xsd:group name="SeriesConstraintConstraintGroup">
		<xsd:annotation>
			<xsd:documentation>Constraint elements for a SERIES CONSTRAINT.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Discrete" type="xsd:boolean" default="true" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Whether SERIES CONSTRAINT can only be used by itself, or whether it can be used in a chain of series.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="FromConnectionRef" type="ConnectionRefStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Start CONNECTION link for SERIES CONSTRAINT.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ToConnectionRef" type="ConnectionRefStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>End CONNECTION link for SERIES CONSTRAINT.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="farePointsInPattern" type="farePointsInPattern_RelStructure" minOccurs="0" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>FARE POINTs IN PATTERN in the SERIES CONSTRAINT.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="zonesInSeries" type="zonesInSeries_RelStructure" minOccurs="0" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>ZONES IN SERIES series limiting the SERIES CONSTRAINT. +v2.0</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:group>
	<!-- == SERIES CONSTRAINT PRICE.================================ -->
	<xsd:complexType name="seriesConstraintPrices_RelStructure">
		<xsd:annotation>
			<xsd:documentation>Type for a list of SERIES CONSTRAINT PRICEs.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="strictContainmentAggregationStructure">
				<xsd:choice maxOccurs="unbounded">
					<xsd:element ref="SeriesConstraintPriceRef"/>
					<xsd:element name="SeriesConstraintPrice" type="SeriesConstraintPrice_VersionedChildStructure">
						<xsd:annotation>
							<xsd:documentation>A set of all possible price features of a SERIES CONSTRAINT: default total price, discount in value or percentage etc.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element ref="CellRef_Dummy"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:element name="SeriesConstraintPrice" substitutionGroup="FarePrice_Dummy">
		<xsd:annotation>
			<xsd:documentation>A set of all possible price features of a SERIES CONSTRAINT: default total price, discount in value or percentage etc.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:restriction base="SeriesConstraintPrice_VersionedChildStructure">
					<xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="EntityInVersionGroup" minOccurs="0"/>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="VersionedChildGroup"/>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="FarePriceGroup"/>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="SeriesConstraintPriceGroup"/>
						</xsd:sequence>
					</xsd:sequence>
					<xsd:attribute name="id" type="SeriesConstraintPriceIdType" use="required"/>
				</xsd:restriction>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="SeriesConstraintPrice_VersionedChildStructure">
		<xsd:annotation>
			<xsd:documentation>Type for a SERIES CONSTRAINT PRICE.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="FarePrice_VersionedChildStructure">
				<xsd:sequence>
					<xsd:group ref="SeriesConstraintPriceGroup"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:group name="SeriesConstraintPriceGroup">
		<xsd:annotation>
			<xsd:documentation>Elements for a SERIES CONSTRAINT PRICE.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element ref="SeriesConstraintRef" minOccurs="0"/>
		</xsd:sequence>
	</xsd:group>
	<!-- == ZONE IN SERIES================================ -->
	<xsd:complexType name="zonesInSeries_RelStructure">
		<xsd:annotation>
			<xsd:documentation>Type for a list of ZONEs IN SERIES.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="strictContainmentAggregationStructure">
				<xsd:sequence>
					<xsd:element name="ZoneInSeries" type="ZoneInSeries_VersionedChildStructure" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>An ordered sequence of ZONEs IN SEQUENCE constraining the permitted routing.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:element name="ZoneInSeries" substitutionGroup="VersionedChild">
		<xsd:annotation>
			<xsd:documentation>Use of a ZONE in sequence within a SERIES CONSTRAINT, for example to indicate that a series must route through a given sequence of TARIFF ZONEs, +v2.0</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:restriction base="ZoneInSeries_VersionedChildStructure">
					<xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="EntityInVersionGroup" minOccurs="0"/>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="VersionedChildGroup"/>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="ZoneInSeriesGroup"/>
						</xsd:sequence>
					</xsd:sequence>
					<xsd:attribute name="id" type="ZoneInSeriesIdType" use="required"/>
				</xsd:restriction>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="ZoneInSeries_VersionedChildStructure">
		<xsd:annotation>
			<xsd:documentation>Type for a ZONE IN SERIES.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="VersionedChildStructure">
				<xsd:sequence>
					<xsd:group ref="ZoneInSeriesGroup"/>
				</xsd:sequence>
				<xsd:attribute name="order" type="xsd:positiveInteger" use="optional">
					<xsd:annotation>
						<xsd:documentation>-v2.0</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:group name="ZoneInSeriesGroup">
		<xsd:annotation>
			<xsd:documentation>Elements for a ZONE IN SERIES.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element ref="TariffZoneRef_Dummy"/>
			<xsd:element name="InterchangeAllowed" type="xsd:boolean" default="true" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Whether interchange is allowed in a zone.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:group>
	<!-- ======================================================================= -->
</xsd:schema>
