<?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="1.1" id="netex_flexibleService_version">
	<xsd:include schemaLocation="netex_flexibleService_support.xsd"/>
	<xsd:include schemaLocation="../../netex_part_1/part1_ifopt/netex_ifopt_flexibleStopPlace_support.xsd"/>
	<xsd:include schemaLocation="../../netex_part_1/part1_tacticalPlanning/netex_stopAssignment_support.xsd"/>
	<xsd:include schemaLocation="../../netex_part_1/part1_tacticalPlanning/netex_stopAssignment_version.xsd"/>
	<xsd:include schemaLocation="netex_vehicleJourney_support.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>2019-04-25</Modified>FIX - add reference to the journey for whiuch these are the properties !
				</Date>
				<Date><Modified>2020-06-21</Modified>FIX - Issue #73 Recursive inclusion  NJSK Remove cycle dependency in includes  
				</Date>
				<Date><Modified>2023-12-18</Modified>FIX: Correct the #525 implementation of BOOKING ARRANGEMENT and SERVICE BOOKING ARRANGEMENT,
					   SERVICE BOOKING ARRANGEMENT should inherit from BOOKING ARRANGEMENT and should have its own structure.
				</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 FLEXIBLE SERVICE 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_2/part2_journeyTimes}netex_flexibleService_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-2019</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 FLEXIBLE SERVICE types.</Title>
				<Type>Standard</Type>
			</Metadata>
		</xsd:appinfo>
		<xsd:documentation>NeTEx FLEXIBLE SERVICE types.</xsd:documentation>
	</xsd:annotation>
	<!-- ======================================================================= -->
	<xsd:complexType name="flexibleServicePropertiesInFrame_RelStructure">
		<xsd:annotation>
			<xsd:documentation>Type for containment in frame of FLEXIBLE SERVICE PROPERTies.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="containmentAggregationStructure">
				<xsd:sequence>
					<xsd:element ref="FlexibleServiceProperties" maxOccurs="unbounded"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<!-- ======================================================================= -->
	<xsd:complexType name="flexibleServiceProperties_RelStructure">
		<xsd:annotation>
			<xsd:documentation>Type for containment in frame of FLEXIBLE SERVICE PROPERTies.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="oneToManyRelationshipStructure">
				<xsd:choice maxOccurs="unbounded">
					<xsd:element ref="FlexibleServicePropertiesRef"/>
					<xsd:element ref="FlexibleServiceProperties"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:element name="FlexibleServiceProperties" substitutionGroup="DataManagedObject">
		<xsd:annotation>
			<xsd:documentation>Additional characteristics of a FLEXIBLE SERVICE. A service may be partly fixed, partly flexible.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:restriction base="FlexibleServiceProperties_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="FlexibleServicePropertiesGroup"/>
						</xsd:sequence>
					</xsd:sequence>
					<xsd:attribute name="id" type="FlexibleServicePropertiesIdType" use="optional"/>
				</xsd:restriction>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="FlexibleServiceProperties_VersionStructure">
		<xsd:annotation>
			<xsd:documentation>Type for FLEXIBLE SERVICE PROPERTies.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="DataManagedObjectStructure">
				<xsd:sequence>
					<xsd:group ref="FlexibleServicePropertiesGroup"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:group name="FlexibleServicePropertiesGroup">
		<xsd:annotation>
			<xsd:documentation>Elements for an individual FLEXIBLE SERVICE.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element ref="JourneyRef" minOccurs="0"/>
			<xsd:group ref="FlexibleServiceCharacteristicsGroup"/>
			<xsd:choice>
				<xsd:annotation>
					<xsd:documentation>Usage of BookingArrangementGroup is DEPRECATED: use bookingArrangements</xsd:documentation>
				</xsd:annotation>
				<xsd:element name="bookingArrangements" type="bookingArrangements_RelStructure" minOccurs="0">
					<xsd:annotation>
						<xsd:documentation>Set of possible Booking Arrangements for stop if different from those for SERVICE JOURNEY. +v2.0</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:group ref="DeprecatedBookingArrangementGroup"/>
			</xsd:choice>
		</xsd:sequence>
	</xsd:group>
	<xsd:group name="FlexibleServiceCharacteristicsGroup">
		<xsd:annotation>
			<xsd:documentation>Elements classifying an individual FLEXIBLE SERVICE.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element ref="TypeOfFlexibleServiceRef" minOccurs="0"/>
			<xsd:element name="FlexibleServiceType" type="FlexibleServiceEnumeration" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Flexible service type is FixedPassingTimes/DynamicPassingTimes/FixedHeadwayFrequency (in the last value, this provides a maximum waiting time, but no passing time is defined, all is done dynamically depending on the demand). A NotFlexible value is probably also required to clearly state that a Stop (i.e. Point in JP) is not flexible when others are.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="CancellationPossible" type="xsd:boolean" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Whether cancellation is always possible (meaning the Operator can decided to cancel, usually because there are not enough people, or they are too busy to run service).</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ChangeOfTimePossible" type="xsd:boolean" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Whether the time of the service may be altered.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:group>
	<!-- ======================================================================= -->
	<xsd:element name="FlexibleStopAssignment" substitutionGroup="StopAssignment">
		<xsd:annotation>
			<xsd:documentation>Assignment of a SCHEDULED STOP POINT to a FLEXIBLE STOP PLACE and quay. etc.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:restriction base="FlexibleStopAssignment_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="StopAssignmentGroup"/>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="FlexibleStopAssignmentGroup"/>
						</xsd:sequence>
					</xsd:sequence>
					<xsd:attribute name="id" type="FlexibleStopAssignmentIdType" use="required"/>
				</xsd:restriction>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="FlexibleStopAssignment_VersionStructure">
		<xsd:annotation>
			<xsd:documentation>Type for a FLEXIBLE STOP ASSIGNMENT.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="StopAssignment_VersionStructure">
				<xsd:sequence>
					<xsd:group ref="FlexibleStopAssignmentGroup"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:group name="FlexibleStopAssignmentGroup">
		<xsd:annotation>
			<xsd:documentation>Elements for a FLEXIBLE STOP ASSIGNMENT.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element ref="FlexibleStopPlaceRef"/>
			<xsd:element ref="FlexibleQuayRef" minOccurs="0"/>
		</xsd:sequence>
	</xsd:group>
	<!-- ======================================================================= -->
	<xsd:element name="TypeOfFlexibleService" substitutionGroup="TypeOfEntity">
		<xsd:annotation>
			<xsd:documentation>A classification of FLEXIBLE SERVICEs according to their functional purpose.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:restriction base="TypeOfFlexibleService_ValueStructure">
					<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="TypeOfValueGroup"/>
						</xsd:sequence>
					</xsd:sequence>
					<xsd:attribute name="id" type="TypeOfFlexibleServiceIdType" use="required"/>
				</xsd:restriction>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="TypeOfFlexibleService_ValueStructure">
		<xsd:annotation>
			<xsd:documentation>Type for a TYPE OF FLEXIBLE SERVICE.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="TypeOfEntity_VersionStructure"/>
		</xsd:complexContent>
	</xsd:complexType>
	<!-- ======================================================================= -->
</xsd:schema>
