<?xml version = "1.0" encoding = "UTF-8"?>
<xsd:schema xmlns:xsd = "http://www.w3.org/2001/XMLSchema">
	<xsd:annotation>
		<xsd:documentation>TransXChange XMLSchema Version 1.2.1, produced by Cap Gemini Ernst and Young on behalf of the Traffic Area Network and the Department for Transport. 
TransXChange defines the required structures and content to describe the registration, routes and scheduling of public transport services (in particular bus services). Note this is NOT the Regstration Variant of TransXChange. </xsd:documentation>
	</xsd:annotation>
	<!--
**********************************************************************
**********************************************************************
*                                                                    *
*                                                                    *
*    *****            TransXChange XMLSchema                *****    *
*    *****         DTLR, Cap Gemini Ernst & Young           *****    *
*                                                                    *
*                                                                    *
*                 Version 1.2.1                                      *
*                                                                    *
*                                                                    *
**********************************************************************
**********************************************************************
-->
	
	
	<!--
**********************************************************************
*    *****          Global Attribute Declarations           *****    *
**********************************************************************
-->
	
	<xsd:attribute name = "Distance" type = "xsd:integer">
		<xsd:annotation>
			<xsd:documentation>Distance (metres)</xsd:documentation>
		</xsd:annotation>
	</xsd:attribute>
	<xsd:attribute name = "Direction">
		<xsd:annotation>
			<xsd:documentation>Direction of vehicle</xsd:documentation>
		</xsd:annotation>
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:enumeration value = "Inbound"/>
				<xsd:enumeration value = "Outbound"/>
				<xsd:enumeration value = "InboundAndOutbound"/>
				<xsd:enumeration value = "Circular"/>
				<xsd:enumeration value = "Clockwise"/>
				<xsd:enumeration value = "Anti-Clockwise"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:attribute>
	<xsd:attribute name = "Modification">
		<xsd:annotation>
			<xsd:documentation>Element (various) of record represents either an element to be revised, deleted or added (or none of these)</xsd:documentation>
		</xsd:annotation>
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:enumeration value = "New"/>
				<xsd:enumeration value = "Delete"/>
				<xsd:enumeration value = "Revise"/>
				<xsd:enumeration value = "NA"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:attribute>
	<xsd:attribute name = "XCoord">
		<xsd:annotation>
			<xsd:documentation>X Coordinate of point (Easting)</xsd:documentation>
		</xsd:annotation>
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:length value = "6"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:attribute>
	<xsd:attribute name = "YCoord">
		<xsd:annotation>
			<xsd:documentation>Y Coordinate of point (Northing)</xsd:documentation>
		</xsd:annotation>
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:length value = "7"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:attribute>
	<xsd:attribute name = "StartDate" type = "xsd:date">
		<xsd:annotation>
			<xsd:documentation>Start of miscellaneous period</xsd:documentation>
		</xsd:annotation>
	</xsd:attribute>
	<xsd:attribute name = "EndDate" type = "xsd:date">
		<xsd:annotation>
			<xsd:documentation>End of miscellaneous period. Local use of this attribute involves its default value set to '9999-09-09' this represents an end date of until further notice</xsd:documentation>
		</xsd:annotation>
	</xsd:attribute>
	<xsd:attribute name = "Operates">
		<xsd:annotation>
			<xsd:documentation>Identifies whether the Vehicle Journey will operate, not operate or is to be decided</xsd:documentation>
		</xsd:annotation>
		<xsd:simpleType>
			<xsd:restriction base = "xsd:string">
				<xsd:enumeration value = "Operates"/>
				<xsd:enumeration value = "Does_Not_Operate"/>
				<xsd:enumeration value = "To_Be_Determined"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:attribute>
	<xsd:attribute name = "InterchangeTime" type = "xsd:integer">
		<xsd:annotation>
			<xsd:documentation>Time (minutes) between VehicleJourneys or for travelling within/between Clusters</xsd:documentation>
		</xsd:annotation>
	</xsd:attribute>
	<xsd:attribute name = "RevisionNumber">
		<xsd:annotation>
			<xsd:documentation>Version number of MRU (Minimum Revisable Unit) of a TransXChange record. MRUs are restricted to Route, StopPoint, OverallServiceDescription, VehicleJourney</xsd:documentation>
		</xsd:annotation>
		<xsd:simpleType>
			<xsd:restriction base = "xsd:integer">
				<xsd:minInclusive value = "0"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:attribute>
	
	<!--
**********************************************************************
*    *****                 Type Definitions                 *****    *
**********************************************************************
-->
	
	<xsd:complexType name = "StopPointRefType">
		<xsd:attribute name = "StopRefNumber" use = "required">
			<xsd:annotation>
				<xsd:documentation>Short code referring to StopPoint</xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:restriction base = "xsd:IDREF">
					<xsd:maxLength value = "13"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name = "TimingLink">
		<xsd:sequence>
			<xsd:element ref = "StoppingArrangements" minOccurs = "0"/>
		</xsd:sequence>
		<xsd:attribute name = "DefaultRunTime" use = "required" type = "xsd:integer">
			<xsd:annotation>
				<xsd:documentation>Default time (minutes) to traverse a TimingLink irrespective of JourneyPattern or VehicleJourney</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name = "HailAndRide" default = "0" type = "xsd:boolean">
			<xsd:annotation>
				<xsd:documentation>Identification of whether JourneyPattern/VehicleJourney section (i.e. TimingLink) operates as Hail and Ride</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name = "JourneyPatternRunTime" use = "optional" type = "xsd:integer">
			<xsd:annotation>
				<xsd:documentation>Time (minutes) to traverse a TimingLink along a specific JourneyPattern which supersedes the associated DefaultRunTime</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name = "Operator">
		<xsd:sequence>
			<xsd:element ref = "OperatorAddresses"/>
		</xsd:sequence>
		<xsd:attribute name = "OperatorCode" use = "optional">
			<xsd:annotation>
				<xsd:documentation>Identifying code for Operator</xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:restriction base = "xsd:string">
					<xsd:maxLength value = "4"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name = "OperatorShortName" use = "required">
			<xsd:annotation>
				<xsd:documentation>Diminutive form of Operator name. </xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:restriction base = "xsd:string">
					<xsd:maxLength value = "24"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name = "OperatorNameOnLicence" use = "optional">
			<xsd:annotation>
				<xsd:documentation>Full name of Operator (i.e. as appears on licence). </xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:restriction base = "xsd:string">
					<xsd:maxLength value = "48"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name = "TradingName" use = "optional">
			<xsd:annotation>
				<xsd:documentation>Trading name of Operator (i.e. the Operator's name known to passengers). </xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:restriction base = "xsd:string">
					<xsd:maxLength value = "24"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name = "EnquiryTel" use = "optional" type = "xsd:string">
			<xsd:annotation>
				<xsd:documentation>Enquiry telephone number of Operator</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name = "ContactTel" use = "optional" type = "xsd:string">
			<xsd:annotation>
				<xsd:documentation>Contact telephone number of Operator</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name = "LicenceNumber" use = "optional">
			<xsd:annotation>
				<xsd:documentation>Licence Number of Operator. </xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:restriction base = "xsd:string">
					<xsd:pattern value = "[a-zA-Z]{2,3}[0-9]{7}"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name = "LicenceType" use = "optional">
			<xsd:annotation>
				<xsd:documentation>Licence type of Operator.</xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:restriction base = "xsd:string">
					<xsd:enumeration value = "Standard_National"/>
					<xsd:enumeration value = "Standard_International"/>
					<xsd:enumeration value = "Restricted"/>
					<xsd:enumeration value = "Special_Restricted"/>
					<xsd:enumeration value = "Community_Bus_Permit"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name = "InterchangeType">
		<xsd:sequence>
			<xsd:element ref = "StoppingArrangements" minOccurs = "0"/>
			<xsd:element ref = "InterchangePointRef" maxOccurs = "2"/>
		</xsd:sequence>
		<xsd:attribute name = "JourneyPattern1" use = "required">
			<xsd:annotation>
				<xsd:documentation>First JourneyPattern (i.e. incoming) of an Interchange</xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:restriction base = "xsd:string">
					<xsd:maxLength value = "6"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name = "JourneyPattern2" use = "required">
			<xsd:annotation>
				<xsd:documentation>Second JourneyPattern (i.e. outgoing) of an Interchange</xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:restriction base = "xsd:string">
					<xsd:maxLength value = "6"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute ref = "InterchangeTime" use = "required"/>
		<xsd:attribute name = "InterchangeMode" default = "Walk">
			<xsd:annotation>
				<xsd:documentation>Method of transport available/assumed at Interchange</xsd:documentation>
			</xsd:annotation>
			<xsd:simpleType>
				<xsd:restriction base = "xsd:string">
					<xsd:enumeration value = "Walk"/>
					<xsd:enumeration value = "Bus"/>
					<xsd:enumeration value = "Train"/>
					<xsd:enumeration value = "Tram"/>
					<xsd:enumeration value = "Metro"/>
					<xsd:enumeration value = "Coach"/>
					<xsd:enumeration value = "Ferry"/>
					<xsd:enumeration value = "Air"/>
					<xsd:enumeration value = "Taxi"/>
					<xsd:enumeration value = "Cycle"/>
					<xsd:enumeration value = "Moving_Walkway"/>
					<xsd:enumeration value = "Through"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute ref = "StartDate" use = "required"/>
		<xsd:attribute ref = "EndDate" default = "9999-09-09"/>
	</xsd:complexType>
	<xsd:complexType name = "DayCollection">
		<xsd:sequence>
			<xsd:element ref = "CalendarDay" maxOccurs = "unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name = "BankHolidayType">
		<xsd:attribute ref = "Operates" use = "required"/>
	</xsd:complexType>
	<xsd:complexType name = "ServiceCategory">
		<xsd:simpleContent>
			<xsd:extension base = "xsd:boolean"/>
		</xsd:simpleContent>
	</xsd:complexType>
	<xsd:complexType name = "SchoolProfile">
		<xsd:sequence>
			<xsd:element ref = "School" maxOccurs = "unbounded"/>
		</xsd:sequence>
		<xsd:attribute ref = "Operates" use = "required"/>
	</xsd:complexType>
	
	<!--
**********************************************************************
*                                                                    *
*    *****                Route Components                  *****    *
*                                                                    *
**********************************************************************
-->
	
	
	<!--
**********************************************************************
*    *****                     Route Link                   *****    *
**********************************************************************
-->
	
	<xsd:element name = "MappingPoint">
		<xsd:annotation>
			<xsd:documentation>Point defined by its geographical coordinates</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute ref = "XCoord" use = "required"/>
			<xsd:attribute ref = "YCoord" use = "required"/>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "Manoeuvre" type = "xsd:string">
		<xsd:annotation>
			<xsd:documentation>Description of vehicle manoeuvre associated with a Route Link</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name = "RouteLink">
		<xsd:annotation>
			<xsd:documentation>Subset of Route defined by 2 Mapping Points which denote the start and end of the RouteLink.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType mixed = "true">
			<xsd:sequence>
				<xsd:element ref = "MappingPoint" minOccurs = "2" maxOccurs = "2"/>
				<xsd:element ref = "Manoeuvre" minOccurs = "0" maxOccurs = "unbounded"/>
			</xsd:sequence>
			<xsd:attribute name = "OSODR" use = "optional">
				<xsd:annotation>
					<xsd:documentation>Ordnance Survey Roads Database Reference (derived from OS OSCAR), this uniquely identifies any RouteLink</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:maxLength value = "13"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute ref = "Distance" use = "optional"/>
			<xsd:attribute ref = "Direction" use = "required"/>
			<xsd:attribute ref = "Modification" use = "optional"/>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*    *****                 Route Variation                  *****    *
**********************************************************************
-->
	
	<xsd:element name = "RouteVariation">
		<xsd:annotation>
			<xsd:documentation>Variation to an existing Route</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType mixed = "true">
			<xsd:choice>
				<xsd:element ref = "RouteLink" maxOccurs = "unbounded"/>
			</xsd:choice>
			<xsd:attribute name = "RouteVariationNo" use = "required">
				<xsd:annotation>
					<xsd:documentation>Identifier of Route Variation</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:integer">
						<xsd:minInclusive value = "0"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*    *****                       Route                      *****    *
**********************************************************************
-->
	
	<xsd:element name = "Route">
		<xsd:annotation>
			<xsd:documentation>Path through the physical road network which is composed of an ordered collection of Route Links. The order of &lt;RouteLink>s in the &lt;Route> should represent the order in which they appear in the physical Route</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType mixed = "true">
			<xsd:sequence>
				<xsd:element ref = "RouteLink" maxOccurs = "unbounded"/>
				<xsd:element ref = "RouteVariation" minOccurs = "0" maxOccurs = "unbounded"/>
			</xsd:sequence>
			<xsd:attribute name = "RouteID" use = "required">
				<xsd:annotation>
					<xsd:documentation>Unique Identifier of Route. Note that the first 4 characters of RouteID should be identical to the OperatorCode, the remaining 6 digits represent a Route identifier which is unique to the Operator</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:maxLength value = "10"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "RouteDescription" use = "required">
				<xsd:annotation>
					<xsd:documentation>Short description of Route</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:maxLength value = "68"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute ref = "RevisionNumber" use = "required"/>
			<xsd:attribute ref = "Modification" use = "required"/>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*                                                                    *
*    *****               Stop Point Components              *****    *
*                                                                    *
**********************************************************************
-->
	
	
	<!--
**********************************************************************
*    *****                      Cluster                     *****    *
**********************************************************************
-->
	
	<xsd:element name = "WalkLink">
		<xsd:annotation>
			<xsd:documentation>Link between 2 Clusters</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute ref = "InterchangeTime" use = "required"/>
			<xsd:attribute name = "AdjClusterNumber" use = "required">
				<xsd:annotation>
					<xsd:documentation>Code of adjoining cluster of WalkLink</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:maxLength value = "12"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "Cluster">
		<xsd:annotation>
			<xsd:documentation>Collection of Stop Points in close proximity to each other</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType mixed = "true">
			<xsd:choice>
				<xsd:element ref = "WalkLink" minOccurs = "0" maxOccurs = "unbounded"/>
			</xsd:choice>
			<xsd:attribute name = "ClusterNumber" use = "required">
				<xsd:annotation>
					<xsd:documentation>Identifying code for Cluster</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:maxLength value = "12"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "ClusterName" use = "required">
				<xsd:annotation>
					<xsd:documentation>Name of Cluster</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:maxLength value = "12"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute ref = "InterchangeTime" use = "optional"/>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*    *****                 Place of Interest                *****    *
**********************************************************************
-->
	
	<xsd:element name = "PlaceOfInterest">
		<xsd:annotation>
			<xsd:documentation>Place of interest or landmark within walking distance of a StopPoint</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name = "NameOfPlaceOfInterest" use = "required" type = "xsd:string">
				<xsd:annotation>
					<xsd:documentation>Name by which the place of interest is commonly known</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name = "WalkTime" use = "required" type = "xsd:integer">
				<xsd:annotation>
					<xsd:documentation>Time in minutes between the StopPoint and the PlaceOfInterest</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*    *****                     Stop Point                   *****    *
**********************************************************************
-->
	
	<xsd:element name = "StopPoint">
		<xsd:annotation>
			<xsd:documentation>Point along a JourneyPattern VehicleJourney where the vehicle stops for passenger entry/exit</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType mixed = "true">
			<xsd:sequence>
				<xsd:element ref = "Cluster" minOccurs = "0" maxOccurs = "unbounded"/>
				<xsd:element ref = "PlaceOfInterest" minOccurs = "0" maxOccurs = "unbounded"/>
			</xsd:sequence>
			<xsd:attribute name = "StopNumber" use = "required">
				<xsd:annotation>
					<xsd:documentation>Short code for StopPoint</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:ID">
						<xsd:maxLength value = "13"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "CommonName" use = "required" type = "xsd:string">
				<xsd:annotation>
					<xsd:documentation>Commonly used name of StopPoint</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name = "GazetteerName" use = "required">
				<xsd:annotation>
					<xsd:documentation>Lowest-order locality name</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:maxLength value = "24"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "ParentGazName" use = "required">
				<xsd:annotation>
					<xsd:documentation>higher order (than GazetteerName) locality name</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:maxLength value = "24"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "GazetteerCode" use = "optional">
				<xsd:annotation>
					<xsd:documentation>Identification of type of location entry</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:length value = "1"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "GazetteerID" use = "optional">
				<xsd:annotation>
					<xsd:documentation>National Gazetteer Code of StopPoint</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:maxLength value = "8"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "StopIdentifier" use = "optional">
				<xsd:annotation>
					<xsd:documentation>sub-division of common name, for example Bay Number Pole ID, Opposite to , Adjacent to</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:maxLength value = "24"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "DefaultWaitTime" use = "required" type = "xsd:integer">
				<xsd:annotation>
					<xsd:documentation>Default time (minutes) to wait at a StopPoint irrespective of JourneyPattern or VehicleJourney. NB. this time is the TOTAL wait time at the stop and thus is duplicated by wait time associated with the stop point of the preceeding/following link</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name = "BusStopType" use = "required">
				<xsd:annotation>
					<xsd:documentation>Classification of StopPoints</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:enumeration value = "Stand"/>
						<xsd:enumeration value = "Single_Stop"/>
						<xsd:enumeration value = "Paired_Stop"/>
						<xsd:enumeration value = "Interchange"/>
						<xsd:enumeration value = "Railway_Station"/>
						<xsd:enumeration value = "Database_Boundary"/>
						<xsd:enumeration value = "Hail_And_Ride_Boundary"/>
						<xsd:enumeration value = "Hail_And_Ride_Centroid"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "BusStopSubType" use = "required">
				<xsd:annotation>
					<xsd:documentation>Classification of BusStopTypes</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:enumeration value = "Marked"/>
						<xsd:enumeration value = "Unmarked"/>
						<xsd:enumeration value = "HailAndRide"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute ref = "XCoord" use = "required"/>
			<xsd:attribute ref = "YCoord" use = "required"/>
			<xsd:attribute ref = "Modification" use = "required"/>
			<xsd:attribute ref = "RevisionNumber" use = "required"/>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*                                                                    *
*    *****       Overall Service Description Components     *****    *
*                                                                    *
**********************************************************************
-->
	
	
	<!--
**********************************************************************
*    *****                    Service Type                  *****    *
**********************************************************************
-->
	
	<xsd:element name = "DialARide">
		<xsd:annotation>
			<xsd:documentation>A service which stops at a variety of places (including homes) around a core route when booked in advance</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "ServiceCategory"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "ExcursionOrTour">
		<xsd:annotation>
			<xsd:documentation>A service where all passengers go to the same destination and return to their departure point</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "ServiceCategory">
					<xsd:attribute name = "MaxDepartures" use = "required" type = "xsd:integer">
						<xsd:annotation>
							<xsd:documentation>Maximum number of vehicle departures within 1 day associated with an excursion type service.</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "HailAndRide">
		<xsd:annotation>
			<xsd:documentation>A service that stops anywhere on designated parts of the route if flagged down by passengers where it is safe to do so</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "ServiceCategory"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "LimitedStops">
		<xsd:annotation>
			<xsd:documentation>A service where only certain pre-defined stops on a route are used</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "ServiceCategory"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "NormalStopping">
		<xsd:annotation>
			<xsd:documentation>A service where all stops on a route are used</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "ServiceCategory"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "SchoolOrWorks">
		<xsd:annotation>
			<xsd:documentation>A service dedicated to a school or works that is not available to the public</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "ServiceCategory"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "RuralService">
		<xsd:annotation>
			<xsd:documentation>A service primarily aimed at serving rural communities (ie. at locations with populations less than 25000 people)</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "ServiceCategory"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "OtherServiceType">
		<xsd:annotation>
			<xsd:documentation>Services that do not fit any of the defined categories; this must be used sparingly and rarely. Note that a description of the service type is required as the attribute OtherServiceTypeDescription</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "ServiceCategory">
					<xsd:attribute name = "OtherServiceTypeDescription" use = "required" type = "xsd:string">
						<xsd:annotation>
							<xsd:documentation>Description of Service Type which cannot be classified by the options given as sub-elements of ServiceType</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "ServiceType">
		<xsd:annotation>
			<xsd:documentation>Classification of the type of service. Note all the contained attributes default to the boolean value '0' (i.e. false or no)</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "DialARide" minOccurs = "0"/>
				<xsd:element ref = "ExcursionOrTour" minOccurs = "0"/>
				<xsd:element ref = "HailAndRide" minOccurs = "0"/>
				<xsd:element ref = "LimitedStops" minOccurs = "0"/>
				<xsd:element ref = "NormalStopping" minOccurs = "0"/>
				<xsd:element ref = "SchoolOrWorks" minOccurs = "0"/>
				<xsd:element ref = "RuralService" minOccurs = "0"/>
				<xsd:element ref = "OtherServiceType" minOccurs = "0"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*    *****                    Journey Pattern               *****    *
**********************************************************************
-->
	
	<xsd:element name = "StoppingArrangements" type = "xsd:string">
		<xsd:annotation>
			<xsd:documentation>Description of facilities/requirements for stopping associated with components of a service</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name = "JourneyPatternStopPointRef">
		<xsd:annotation>
			<xsd:documentation>Reference to a StopPoint element as part of a JourneyPatternTimingLink</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "StopPointRefType">
					<xsd:attribute name = "JourneyPatternWaitTime" use = "optional" type = "xsd:integer">
						<xsd:annotation>
							<xsd:documentation>Time (minutes) to wait at the referenced StopPoint within a specific JourneyPattern which supersedes the DefaultWaitTime of the StopPoint. NB. this time is the TOTAL wait time at the stop and thus is duplicated by wait time associated with the stop point of the preceeding/following link</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name = "StopPointClassification" use = "required">
						<xsd:annotation>
							<xsd:documentation>Classification of the role of the StopPoint. The enumerated options include 'PrincipalPoint' (this point is part of the service registration and is liable to inspections and enforcement); 'TimeInfoPoint' (this is not part of the service registration and is not liable to inspections or enforcement, however it is expected to be used within a timetable to identify a timing point which will not be a Principal Point); 'PrincipalAndTimeInfoPoint' (is a Principal Point which is expected to be also used as a timing point within a timetable); 'OtherStop' (this is not part of the service registration and is not liable to inspections or enforcement; it is not expected to be used as part of the timetable)</xsd:documentation>
						</xsd:annotation>
						<xsd:simpleType>
							<xsd:restriction base = "xsd:string">
								<xsd:enumeration value = "PrincipalPoint"/>
								<xsd:enumeration value = "TimeInfoPoint"/>
								<xsd:enumeration value = "PrincipalAndTimeInfoPoint"/>
								<xsd:enumeration value = "OtherStop"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:attribute>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "JourneyPatternTimingLink">
		<xsd:annotation>
			<xsd:documentation>Subset of JourneyPattern defined by 2 Stop Points which denote the start and end of the JourneyPatternTimingLink.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "TimingLink">
					<xsd:sequence>
						<xsd:element ref = "JourneyPatternStopPointRef" minOccurs = "2" maxOccurs = "2"/>
					</xsd:sequence>
					<xsd:attribute ref = "Distance" use = "optional"/>
					<xsd:attribute ref = "Direction" use = "required"/>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "JourneyPatternException">
		<xsd:annotation>
			<xsd:documentation>A variant to the related Journey Pattern</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base = "xsd:string">
					<xsd:attribute name = "OperatesBetweenDates" use = "required" type = "xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>Identification of whether the JourneyPatternException applies between or outside of the StartDate and EndDate</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute ref = "StartDate" use = "required"/>
					<xsd:attribute ref = "EndDate" default = "9999-09-09"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "JourneyPattern">
		<xsd:annotation>
			<xsd:documentation>Part of the (bus) service definition. JourneyPatterns are served by a single Operator along a single Route which is composed of an ordered collection of Journey Pattern Timing Links and represents the pattern of working for vehicles of the service. Note that the order of &lt;JourneyPatternTimingLink>s in the &lt;JourneyPattern> must follow the order in which they appear in the physical Journey Pattern</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType mixed = "true">
			<xsd:sequence>
				<xsd:element ref = "JourneyPatternTimingLink" maxOccurs = "unbounded"/>
				<xsd:element ref = "JourneyPatternException" minOccurs = "0" maxOccurs = "unbounded"/>
			</xsd:sequence>
			<xsd:attribute name = "RunningBoard" use = "optional">
				<xsd:annotation>
					<xsd:documentation>Reference to collection of Vehicle Journeys operated by vehicle</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:maxLength value = "6"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "JourneyPatternID" use = "required">
				<xsd:annotation>
					<xsd:documentation>Identifier for Journey Pattern</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:maxLength value = "6"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*    *****           Journey Pattern Interchange            *****    *
**********************************************************************
-->
	
	<xsd:element name = "InterchangePointRef">
		<xsd:annotation>
			<xsd:documentation>Reference to a StopPoint element which denotes the interchange point (or one of the interchange points if 2 exist at the interchange)</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "StopPointRefType"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "JourneyPatternInterchange">
		<xsd:annotation>
			<xsd:documentation>Interchange between Journey Patterns</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "InterchangeType">
					<xsd:attribute name = "JourneyPatternAssociationType" use = "required">
						<xsd:annotation>
							<xsd:documentation>Relationship between incoming and outgoing JourneyPatterns of an Interchange</xsd:documentation>
						</xsd:annotation>
						<xsd:simpleType>
							<xsd:restriction base = "xsd:string">
								<xsd:enumeration value = "Join"/>
								<xsd:enumeration value = "Split"/>
								<xsd:enumeration value = "Cross_Border"/>
								<xsd:enumeration value = "Guaranteed_Connection"/>
								<xsd:enumeration value = "Vehicles_Change_Route_Number"/>
								<xsd:enumeration value = "Through"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:attribute>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*    *****                    Registration                  *****    *
**********************************************************************
-->
	
	<xsd:element name = "TrafficArea">
		<xsd:annotation>
			<xsd:documentation>Traffic Area with full or partial responsibility for the registration of the submission</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name = "TrafficAreaName" use = "required">
				<xsd:annotation>
					<xsd:documentation>Name of Individual Traffic Area</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:enumeration value = "Eastern"/>
						<xsd:enumeration value = "NorthEastern"/>
						<xsd:enumeration value = "NorthWestern"/>
						<xsd:enumeration value = "SouthEastMetropolitan"/>
						<xsd:enumeration value = "Scottish"/>
						<xsd:enumeration value = "Welsh"/>
						<xsd:enumeration value = "WestMidlands"/>
						<xsd:enumeration value = "Western"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "TrafficAreas">
		<xsd:annotation>
			<xsd:documentation>Collection of Traffic Areas with full or partial responsibility for the registration of the submission</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "TrafficArea" maxOccurs = "unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "SubmissionAuthor">
		<xsd:annotation>
			<xsd:documentation>Signatory of the submission - i.e. upon whose authority the submission is made</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name = "AuthorPosition" use = "required" type = "xsd:string">
				<xsd:annotation>
					<xsd:documentation>Position of responsibility of the signatory of the Registration</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name = "AuthorTitle" use = "required" type = "xsd:string">
				<xsd:annotation>
					<xsd:documentation>Title (i.e. Mr, Mrs, Miss, Ms, Rev, Rt.Hon etc) of the signatory of the Registration</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name = "AuthorForename" use = "required" type = "xsd:string">
				<xsd:annotation>
					<xsd:documentation>Forename of the signatory of the Registration</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name = "AuthorSurname" use = "required" type = "xsd:string">
				<xsd:annotation>
					<xsd:documentation>Surname of the signatory of the Registration</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "CirculatedAuthority">
		<xsd:annotation>
			<xsd:documentation>Authority circulated with record</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name = "AuthorityName" use = "required">
				<xsd:annotation>
					<xsd:documentation>Name of the Authoritiy circulated with record</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:enumeration value = "Aberdeen"/>
						<xsd:enumeration value = "Aberdeenshire"/>
						<xsd:enumeration value = "Angus"/>
						<xsd:enumeration value = "Argyll and Bute"/>
						<xsd:enumeration value = "Bath and North East Somerset"/>
						<xsd:enumeration value = "Bedfordshire"/>
						<xsd:enumeration value = "Berkshire"/>
						<xsd:enumeration value = "Blackburn with Darwen"/>
						<xsd:enumeration value = "Blackpool"/>
						<xsd:enumeration value = "Blaenau Gwent"/>
						<xsd:enumeration value = "Bournemouth"/>
						<xsd:enumeration value = "Bracknell Forest"/>
						<xsd:enumeration value = "Bridgend"/>
						<xsd:enumeration value = "Brighton and Hove"/>
						<xsd:enumeration value = "Bristol"/>
						<xsd:enumeration value = "Buckinghamshire"/>
						<xsd:enumeration value = "Caerphilly"/>
						<xsd:enumeration value = "Cambridgeshire"/>
						<xsd:enumeration value = "Cardiff"/>
						<xsd:enumeration value = "Carmarthenshire"/>
						<xsd:enumeration value = "Centro"/>
						<xsd:enumeration value = "Ceredigion"/>
						<xsd:enumeration value = "Channel Islands"/>
						<xsd:enumeration value = "Cheshire"/>
						<xsd:enumeration value = "Clackmannanshire"/>
						<xsd:enumeration value = "Comhairle Nan Eilean Siar"/>
						<xsd:enumeration value = "Conwy"/>
						<xsd:enumeration value = "Cornwall"/>
						<xsd:enumeration value = "Cumbria"/>
						<xsd:enumeration value = "Darlington"/>
						<xsd:enumeration value = "Denbighshire"/>
						<xsd:enumeration value = "Derby"/>
						<xsd:enumeration value = "Derbyshire"/>
						<xsd:enumeration value = "Devon"/>
						<xsd:enumeration value = "Dorset"/>
						<xsd:enumeration value = "Dumfries and Galloway"/>
						<xsd:enumeration value = "Dundee"/>
						<xsd:enumeration value = "Durham"/>
						<xsd:enumeration value = "East Ayrshire"/>
						<xsd:enumeration value = "East Dunbartonshire"/>
						<xsd:enumeration value = "East Lothian"/>
						<xsd:enumeration value = "East Renfrewshire"/>
						<xsd:enumeration value = "East Riding of Yorkshire"/>
						<xsd:enumeration value = "East Sussex"/>
						<xsd:enumeration value = "Edinburgh"/>
						<xsd:enumeration value = "Essex"/>
						<xsd:enumeration value = "Falkirk"/>
						<xsd:enumeration value = "Fife"/>
						<xsd:enumeration value = "Flintshire"/>
						<xsd:enumeration value = "Glasgow"/>
						<xsd:enumeration value = "Gloucestershire"/>
						<xsd:enumeration value = "GMPTE"/>
						<xsd:enumeration value = "Gwynedd"/>
						<xsd:enumeration value = "Halton"/>
						<xsd:enumeration value = "Hampshire"/>
						<xsd:enumeration value = "Hartlepool"/>
						<xsd:enumeration value = "Havering"/>
						<xsd:enumeration value = "Herefordshire"/>
						<xsd:enumeration value = "Hertfordshire"/>
						<xsd:enumeration value = "Highland"/>
						<xsd:enumeration value = "Inverclyde"/>
						<xsd:enumeration value = "Isle of Anglesey"/>
						<xsd:enumeration value = "Isle of Man"/>
						<xsd:enumeration value = "Isle of Wight"/>
						<xsd:enumeration value = "Isles of Scilly"/>
						<xsd:enumeration value = "Kent"/>
						<xsd:enumeration value = "Kingston upon Hull"/>
						<xsd:enumeration value = "Lancashire"/>
						<xsd:enumeration value = "Leicester"/>
						<xsd:enumeration value = "Leicestershire"/>
						<xsd:enumeration value = "Lincolnshire"/>
						<xsd:enumeration value = "London"/>
						<xsd:enumeration value = "Luton"/>
						<xsd:enumeration value = "Medway"/>
						<xsd:enumeration value = "Merseytravel"/>
						<xsd:enumeration value = "Merthyr Tydfil"/>
						<xsd:enumeration value = "Metro"/>
						<xsd:enumeration value = "Middlesbrough"/>
						<xsd:enumeration value = "Midlothian"/>
						<xsd:enumeration value = "Milton Keynes"/>
						<xsd:enumeration value = "Monmouthshire"/>
						<xsd:enumeration value = "Moray"/>
						<xsd:enumeration value = "Neath Port Talbot"/>
						<xsd:enumeration value = "Newbury"/>
						<xsd:enumeration value = "Newport"/>
						<xsd:enumeration value = "Nexus"/>
						<xsd:enumeration value = "Norfolk"/>
						<xsd:enumeration value = "North Ayrshire"/>
						<xsd:enumeration value = "North East Lincolnshire"/>
						<xsd:enumeration value = "North Lanarkshire"/>
						<xsd:enumeration value = "North Lincolnshire"/>
						<xsd:enumeration value = "North Somerset"/>
						<xsd:enumeration value = "North Yorkshire"/>
						<xsd:enumeration value = "Northamptonshire"/>
						<xsd:enumeration value = "Northumberland"/>
						<xsd:enumeration value = "Nottingham"/>
						<xsd:enumeration value = "Nottinghamshire"/>
						<xsd:enumeration value = "Orkney Islands"/>
						<xsd:enumeration value = "Oxfordshire"/>
						<xsd:enumeration value = "Pembrokeshire"/>
						<xsd:enumeration value = "Perth and Kinross"/>
						<xsd:enumeration value = "Peterborough"/>
						<xsd:enumeration value = "Plymouth"/>
						<xsd:enumeration value = "Poole"/>
						<xsd:enumeration value = "Portsmouth"/>
						<xsd:enumeration value = "Powys"/>
						<xsd:enumeration value = "Reading"/>
						<xsd:enumeration value = "Redcar and Cleveland"/>
						<xsd:enumeration value = "Renfrewshire"/>
						<xsd:enumeration value = "Rhondda Cynon Taff"/>
						<xsd:enumeration value = "Rutland"/>
						<xsd:enumeration value = "Scottish Borders"/>
						<xsd:enumeration value = "Shetland Islands"/>
						<xsd:enumeration value = "Shropshire"/>
						<xsd:enumeration value = "Slough"/>
						<xsd:enumeration value = "Somerset"/>
						<xsd:enumeration value = "South Ayrshire"/>
						<xsd:enumeration value = "South Gloucestershire"/>
						<xsd:enumeration value = "South Lanarkshire"/>
						<xsd:enumeration value = "South Yorkshire PTE"/>
						<xsd:enumeration value = "Southampton"/>
						<xsd:enumeration value = "Southend-on-Sea"/>
						<xsd:enumeration value = "Staffordshire"/>
						<xsd:enumeration value = "Stirling"/>
						<xsd:enumeration value = "Stockton-on-Tees"/>
						<xsd:enumeration value = "Stoke-on-Trent"/>
						<xsd:enumeration value = "Strathclyde PTE"/>
						<xsd:enumeration value = "Suffolk"/>
						<xsd:enumeration value = "Surrey"/>
						<xsd:enumeration value = "Swansea"/>
						<xsd:enumeration value = "Swindon"/>
						<xsd:enumeration value = "Telford and Wrekin"/>
						<xsd:enumeration value = "Thurrock"/>
						<xsd:enumeration value = "Torbay"/>
						<xsd:enumeration value = "Torfaen"/>
						<xsd:enumeration value = "Translink"/>
						<xsd:enumeration value = "Vale of Glamorgan"/>
						<xsd:enumeration value = "Warrington"/>
						<xsd:enumeration value = "Warwickshire"/>
						<xsd:enumeration value = "West Dunbartonshire"/>
						<xsd:enumeration value = "West Lothian"/>
						<xsd:enumeration value = "West Sussex"/>
						<xsd:enumeration value = "Wiltshire"/>
						<xsd:enumeration value = "Windsor and Maidenhead"/>
						<xsd:enumeration value = "Wokingham"/>
						<xsd:enumeration value = "Worcestershire"/>
						<xsd:enumeration value = "Wrexham"/>
						<xsd:enumeration value = "York"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "CirculatedAuthorities">
		<xsd:annotation>
			<xsd:documentation>Collection of Authorities circulated with record</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "CirculatedAuthority" maxOccurs = "unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "NoSubsidy">
		<xsd:annotation>
			<xsd:documentation>Completed if the service is not subsidised</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>
	<xsd:element name = "SubsidisingAuthority" type = "xsd:string">
		<xsd:annotation>
			<xsd:documentation>Name of the authority (to be) subsidising the service</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name = "Subsidy">
		<xsd:annotation>
			<xsd:documentation>Contains a classification of the subsidy (SubsidyType attribute) and details of ALL the authorities providing a subsidy</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "SubsidisingAuthority" maxOccurs = "unbounded"/>
			</xsd:sequence>
			<xsd:attribute name = "SubsidyType" use = "required">
				<xsd:annotation>
					<xsd:documentation>Identification of level of subsidy relating to service. </xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:enumeration value = "Partial"/>
						<xsd:enumeration value = "Full"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "SubsidyDetails">
		<xsd:annotation>
			<xsd:documentation>Contains sub-elements which identify whether a service is subsidised, the classification of subsidy and the subsidising authorities</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:choice>
				<xsd:element ref = "NoSubsidy"/>
				<xsd:element ref = "Subsidy"/>
			</xsd:choice>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "SupportingDocument">
		<xsd:annotation>
			<xsd:documentation>Reference to document submitted as part of a service Registration. Note that where such documentation is not available but is expected, then a supporting document should be supplied which lists the outstanding supporting documentation to be supplied</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name = "DocumentID" use = "required" type = "xsd:anyURI">
				<xsd:annotation>
					<xsd:documentation>URI to locate SupportingDocument submitted with Registration. Generally to be provided as a filename only (to provide relative access to supporting documents supplied with a registration submission)</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "AvailableToPublic">
		<xsd:annotation>
			<xsd:documentation>Identifies where a service is to be available to the general public (applies only to short notice registrations)</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>
	<xsd:element name = "NotAvailableToPublic">
		<xsd:annotation>
			<xsd:documentation>Identifies where a service is to NOT be available to the general public (applies only to short notice registrations). Note this requires an explanation (i.e. details of the purpose/aim of the service e.g schools and works services) to be given in the attribute NonAvailabilityDescription</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name = "NonAvailabilityDescription" use = "required" type = "xsd:string">
				<xsd:annotation>
					<xsd:documentation>Where a service is not to be available to the public, the explanation for the non-availability should be included here. This should include a description of the aims/purpose of the service (applies only to short notice registrations)</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "PublicAvailability">
		<xsd:annotation>
			<xsd:documentation>Determines whether a service is to be available to the public (applies only to short notice registrations). The availability or otherwise of the service is denoted by the choice of sub-element (AvailabletoPublic or NotAvailableToPublic)</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:choice>
				<xsd:element ref = "AvailableToPublic"/>
				<xsd:element ref = "NotAvailableToPublic"/>
			</xsd:choice>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "ChangeExceedsLimit">
		<xsd:annotation>
			<xsd:documentation>Identifies where a change exceeds the limit (applies only to short notice registrations)</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>
	<xsd:element name = "ChangeDoesNotExceedLimit">
		<xsd:annotation>
			<xsd:documentation>Identifies where a change does not exceed the limit (applies only to short notice registrations). Note this requires an explanation/description of what the change is to be given in the attribute MinorChangeDescription</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name = "MinorChangeDescription" use = "required" type = "xsd:string">
				<xsd:annotation>
					<xsd:documentation>Explanation/description of the change</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "ChangeImpact">
		<xsd:annotation>
			<xsd:documentation>Determines whether a change to a service does or does not exceed the limit and is thus considered to be major/minor (applies only to short notice registrations). The exceeding or otherwise of the limit is denoted by the choice of sub-element (ChangeExceedsLimit or ChangeDoesNotExceedLimit)</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:choice>
				<xsd:element ref = "ChangeExceedsLimit"/>
				<xsd:element ref = "ChangeDoesNotExceedLimit"/>
			</xsd:choice>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "ChangeToConnectAlteredService">
		<xsd:annotation>
			<xsd:documentation>Identification of a change to an altered connected service, such that the alteration justifies the ShortNoticeRegistration</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name = "AlteredServiceRequiringConnection" use = "required" type = "xsd:string">
				<xsd:annotation>
					<xsd:documentation>Identification of a service requiring connection (in the form of the ServiceID), such that an alteration justifies the ShortNoticeRegistration.</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "ReplaceDiscontinuedService">
		<xsd:annotation>
			<xsd:documentation>Where a ShortNoticeRegistration is a replacement for a discontinued service</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name = "DiscontinuedServiceOperator" use = "required" type = "xsd:string">
				<xsd:annotation>
					<xsd:documentation>Name of Operator of the discontinued service whose discontinuation justifies the ShortNoticeRegistration.</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name = "DiscontinuedServicePublicID" use = "required">
				<xsd:annotation>
					<xsd:documentation>Public identifier of the discontinued service whose discontinuation justifies the ShortNoticeRegistration.</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:maxLength value = "48"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "LocalHolidayChange">
		<xsd:annotation>
			<xsd:documentation>Where a ShortNoticeRegistration caters for a local holiday and involves a change of no more than 14 days</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name = "LocalHolidayNote" use = "required" type = "xsd:string">
				<xsd:annotation>
					<xsd:documentation>Description of local holiday justifying short notice registration submission.</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "SpecialOccasion">
		<xsd:annotation>
			<xsd:documentation> Where a ShortNoticeRegistration is  to accommodate a special occasion</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name = "SpecialOccasionName" use = "required" type = "xsd:string">
				<xsd:annotation>
					<xsd:documentation>Name of special occasion associated with ShortNoticeRegistration submission. </xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "RegulationOrderCompliance">
		<xsd:annotation>
			<xsd:documentation>Where ShortNoticeRegistration results from a requirement to comply either with traffic regulation conditions or a road traffic order made by a local authority. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name = "TrafficOrderNote" use = "required" type = "xsd:string">
				<xsd:annotation>
					<xsd:documentation>Description of road traffic order justifying short notice registration submission.</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "ChangeRequestedByExternalAuthority">
		<xsd:annotation>
			<xsd:documentation>Identifies where a change has been requested by an external authority such as the Police (applies only to short notice registrations). Note this requires an explanation/corroboration of why this change is required to be given in the attribute ChangeRequestDescription</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name = "ChangeRequestDescription" use = "required" type = "xsd:string">
				<xsd:annotation>
					<xsd:documentation>Explanation/corroboration of why the change (which results from a request made by an external authority such as the Police) is required</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "ShortNoticeRegistration">
		<xsd:annotation>
			<xsd:documentation>Registration with less than the statutory period of notice</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType mixed = "true">
			<xsd:sequence>
				<xsd:element ref = "PublicAvailability"/>
				<xsd:element ref = "ChangeImpact"/>
				<xsd:element ref = "ChangeToConnectAlteredService" minOccurs = "0"/>
				<xsd:element ref = "ReplaceDiscontinuedService" minOccurs = "0"/>
				<xsd:element ref = "LocalHolidayChange" minOccurs = "0"/>
				<xsd:element ref = "SpecialOccasion" minOccurs = "0"/>
				<xsd:element ref = "RegulationOrderCompliance" minOccurs = "0"/>
				<xsd:element ref = "ChangeRequestedByExternalAuthority" minOccurs = "0"/>
			</xsd:sequence>
			<xsd:attribute name = "MiscJustification" use = "optional" type = "xsd:string">
				<xsd:annotation>
					<xsd:documentation>Description of reasons justifying short notice registration submission where no other &lt;ShortNoticeRegistration> attributes are applicable</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name = "BankHolidayChange" use = "required" type = "xsd:boolean">
				<xsd:annotation>
					<xsd:documentation>Identification of whether ShortNoticeRegistration aims to address a bank holiday requirement</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "Registration">
		<xsd:annotation>
			<xsd:documentation>Registration of a service with a regulator for authorisation to provide a service. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexType mixed = "true">
			<xsd:sequence>
				<xsd:element ref = "SubmissionAuthor"/>
				<xsd:element ref = "TrafficAreas"/>
				<xsd:element ref = "CirculatedAuthorities"/>
				<xsd:element ref = "SubsidyDetails" minOccurs = "0"/>
				<xsd:element ref = "SupportingDocument" minOccurs = "0" maxOccurs = "unbounded"/>
				<xsd:element ref = "ShortNoticeRegistration" minOccurs = "0"/>
			</xsd:sequence>
			<xsd:attribute name = "SubmissionDate" use = "required" type = "xsd:date">
				<xsd:annotation>
					<xsd:documentation>Date of Registration submission</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name = "RegistrationNumber" use = "required">
				<xsd:annotation>
					<xsd:documentation>Reference number for registration (allocated by TAN)</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:maxLength value = "12"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "ApplicationType" use = "required">
				<xsd:annotation>
					<xsd:documentation>Identification of whether the registration should be considered to be new, a chargeable modification of an existing registration, a non-chargeable modification of an existing registration or a cancellation of a registration</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:enumeration value = "New"/>
						<xsd:enumeration value = "Chargeable_Change"/>
						<xsd:enumeration value = "Non_Chargeable_Change"/>
						<xsd:enumeration value = "Cancel"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "VariationNumber" use = "required">
				<xsd:annotation>
					<xsd:documentation>Variation number of the Registration</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:integer">
						<xsd:maxInclusive value = "9999"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*    *****               Registered Operator                *****    *
**********************************************************************
-->
	
	<xsd:element name = "AddressLine" type = "xsd:string">
		<xsd:annotation>
			<xsd:documentation>Address line entry</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name = "PostCode" type = "xsd:string">
		<xsd:annotation>
			<xsd:documentation>Postal code of Operator's Address</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name = "Country" type = "xsd:string">
		<xsd:annotation>
			<xsd:documentation>Country of Operator's Address</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name = "RegisteredOperator">
		<xsd:annotation>
			<xsd:documentation>Registered Operator of Service  - i.e. with responsibility for the service</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "Operator"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*    *****               Associated Operator                *****    *
**********************************************************************
-->
	
	<xsd:element name = "AssociatedOperator">
		<xsd:annotation>
			<xsd:documentation>Operator associated with the Service who is NOT the Registered Operator</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "Operator"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*    *****               Stop Requirements                  *****    *
**********************************************************************
-->
	
	<xsd:element name = "NoNewStopsRequired">
		<xsd:annotation>
			<xsd:documentation>Identifies where no new stops are required as part of a service</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>
	<xsd:element name = "StopRequired" type = "xsd:string">
		<xsd:annotation>
			<xsd:documentation>Description of a new stop required as part of a service</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name = "NewStopsRequired">
		<xsd:annotation>
			<xsd:documentation>Identifies where one or more new stops are required as part of a service. Individual stops required are described in the individual StopRequired sub-elements</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "StopRequired" maxOccurs = "unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "StopRequirements">
		<xsd:annotation>
			<xsd:documentation>Determines whether a service does or does require any new stops. This is denoted by the choice of sub-element (NewStopsRequired or NoNewStopsRequired)</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:choice>
				<xsd:element ref = "NoNewStopsRequired"/>
				<xsd:element ref = "NewStopsRequired"/>
			</xsd:choice>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*    *****             Special Operation Profile            *****    *
**********************************************************************
-->
	
	<xsd:element name = "CalendarDay">
		<xsd:annotation>
			<xsd:documentation>Specific date</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base = "xsd:string">
					<xsd:attribute name = "Date" use = "required" type = "xsd:date">
						<xsd:annotation>
							<xsd:documentation>Specific date of CalendarDay</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "SpecialDaysOfOperation">
		<xsd:annotation>
			<xsd:documentation>Special days where the Vehicle Journey or Service will operate</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "DayCollection"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "SpecialDaysOfNonOperation">
		<xsd:annotation>
			<xsd:documentation>Special days where the Vehicle Journey or Service will not operate</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "DayCollection"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "SpecialDaysOfIndeterminateOperation">
		<xsd:annotation>
			<xsd:documentation>Special days where it is yet to be determined whether the Vehicle Journey or Service will operate</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "DayCollection"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "SpecialDaysOp">
		<xsd:annotation>
			<xsd:documentation>Classification of the Operation or Non-Opertion of Vehicle Journey in respect of special days. Note that these supersede all other DayType and BankHoliday definitions (but does not supercede Suspensions) for the VehicleJourney or Service</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "SpecialDaysOfOperation" minOccurs = "0"/>
				<xsd:element ref = "SpecialDaysOfNonOperation" minOccurs = "0"/>
				<xsd:element ref = "SpecialDaysOfIndeterminateOperation" minOccurs = "0"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "SuspensionPeriod">
		<xsd:annotation>
			<xsd:documentation>Definition of a period when a Service or VehicleJourney  is suspended</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base = "xsd:string">
					<xsd:attribute name = "LastDateOfOperation" use = "required" type = "xsd:date">
						<xsd:annotation>
							<xsd:documentation>Last date of service prior to the period of suspension</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name = "FirstDateOfOperation" use = "required" type = "xsd:date">
						<xsd:annotation>
							<xsd:documentation>Date of restart of service following the period of suspension</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "Suspensions">
		<xsd:annotation>
			<xsd:documentation>Collection of periods when a Service or VehicleJourney is suspended</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "SuspensionPeriod" maxOccurs = "unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "NewYearsDay">
		<xsd:annotation>
			<xsd:documentation>Identifies whether the Vehicle Journey or Service operates on New Years Day (determined by the value of the Operates attribute)</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "BankHolidayType"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "Jan2ndScotland">
		<xsd:annotation>
			<xsd:documentation>Identifies whether the Vehicle Journey or Service operates on 2nd of January (determined by the value of the Operates attribute). NB this  is generally a public holiday only in Scotland</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "BankHolidayType"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "GoodFriday">
		<xsd:annotation>
			<xsd:documentation>Identifies whether the Vehicle Journey or Service operates on Good Friday (determined by the value of the Operates attribute)</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "BankHolidayType"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "EasterMonday">
		<xsd:annotation>
			<xsd:documentation>Identifies whether the Vehicle Journey or Service operates on Easter Monday (determined by the value of the Operates attribute)</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "BankHolidayType"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "MayDay">
		<xsd:annotation>
			<xsd:documentation>Identifies whether the Vehicle Journey or Service operates on May Day (determined by the value of the Operates attribute)</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "BankHolidayType"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "SpringBank">
		<xsd:annotation>
			<xsd:documentation>Identifies whether the Vehicle Journey or Service operates on Spring Bank Holiday (determined by the value of the Operates attribute)</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "BankHolidayType"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "AugustBankHolidayScotland">
		<xsd:annotation>
			<xsd:documentation>Identifies whether the Vehicle Journey or Service operates on the Scottish August Bank Holiday (determined by the value of the Operates attribute). Note that this holiday is usually distinguished from what is commonly termed August Bank Holiday outside of Scotland (In this schema this is denoted by the LateSummerBankHolidayNotScotland element)</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "BankHolidayType"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "LateSummerBankHolidayNotScotland">
		<xsd:annotation>
			<xsd:documentation>Identifies whether the Vehicle Journey or Service operates on the Late Summer Bank Holiday Outside of Scotland (determined by the value of the Operates attribute). Note that this holiday is commonly referred to as August Bank Holiday outside of Scotland</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "BankHolidayType"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "ChristmasDay">
		<xsd:annotation>
			<xsd:documentation>Identifies whether the Vehicle Journey or Service operates on Christmas Day (determined by the value of the Operates attribute)</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "BankHolidayType"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "BoxingDay">
		<xsd:annotation>
			<xsd:documentation>Identifies whether the Vehicle Journey or Service or Service operates on Boxing Day (determined by the value of the Operates attribute)</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "BankHolidayType"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "OtherBankOrPublicHolidays">
		<xsd:annotation>
			<xsd:documentation>Identifies whether the Vehicle Journey or Service operates on Public or Bank Holidays other than those denoted by the other sub-elements of the element BankHolidayOp (determined by the value of the Operates attribute). The text content of this element should descibe the Public or Bank Holiday in question </xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base = "xsd:string">
					<xsd:attribute ref = "Operates" use = "required"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "BankHolidayOp">
		<xsd:annotation>
			<xsd:documentation>Classification of the Operation or Non-Operation of Service or Vehicle Journey in respect of Public or Bank Holidays. Note that where Suspensions or SpecialDaysOp are defined these supersede the definition within BankHolidayOp</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "NewYearsDay" minOccurs = "0"/>
				<xsd:element ref = "Jan2ndScotland" minOccurs = "0"/>
				<xsd:element ref = "GoodFriday" minOccurs = "0"/>
				<xsd:element ref = "EasterMonday" minOccurs = "0"/>
				<xsd:element ref = "MayDay" minOccurs = "0"/>
				<xsd:element ref = "SpringBank" minOccurs = "0"/>
				<xsd:element ref = "AugustBankHolidayScotland" minOccurs = "0"/>
				<xsd:element ref = "LateSummerBankHolidayNotScotland" minOccurs = "0"/>
				<xsd:element ref = "ChristmasDay" minOccurs = "0"/>
				<xsd:element ref = "BoxingDay" minOccurs = "0"/>
				<xsd:element ref = "OtherBankOrPublicHolidays" minOccurs = "0"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "SpecialOperationProfile">
		<xsd:annotation>
			<xsd:documentation>Collection of service and journey operation durations which modify those defined by the element DayType</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "SpecialDaysOp" minOccurs = "0"/>
				<xsd:element ref = "Suspensions" minOccurs = "0"/>
				<xsd:element ref = "BankHolidayOp" minOccurs = "0"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*    *****                      Note                        *****    *
**********************************************************************
-->
	
	<xsd:element name = "Note">
		<xsd:annotation>
			<xsd:documentation>Note normally rendered with a timetable and associated with either a service or an individual VehicleJourney</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name = "NoteCode" use = "required">
				<xsd:annotation>
					<xsd:documentation>Reference code for Note</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:maxLength value = "5"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "NoteText" use = "required">
				<xsd:annotation>
					<xsd:documentation>Text for use within a Note</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:maxLength value = "68"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*    *****               To Be Marketed With                *****    *
**********************************************************************
-->
	
	<xsd:element name = "RelatedService">
		<xsd:annotation>
			<xsd:documentation>Service related to the parent service for marketing purposes</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base = "xsd:string">
					<xsd:attribute name = "RelatedServiceID" use = "required" type = "xsd:string">
						<xsd:annotation>
							<xsd:documentation>Service ID of related service (normally marketed with parent service)</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "ToBeMarketedWith">
		<xsd:annotation>
			<xsd:documentation>Collection of services normally marketed with this service</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType mixed = "true">
			<xsd:choice>
				<xsd:element ref = "RelatedService" maxOccurs = "unbounded"/>
			</xsd:choice>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*    *****            Overall Service Description           *****    *
**********************************************************************
-->
	
	<xsd:element name = "OverallServiceDescription">
		<xsd:annotation>
			<xsd:documentation>Classification and description of the bus service. This does not idenitify the individual bus journeys (defined as part of VehicleJourney)</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "ServiceType" minOccurs = "0"/>
				<xsd:element ref = "JourneyPattern" maxOccurs = "unbounded"/>
				<xsd:element ref = "JourneyPatternInterchange" minOccurs = "0" maxOccurs = "unbounded"/>
				<xsd:element ref = "Registration" minOccurs = "0"/>
				<xsd:element ref = "RegisteredOperator"/>
				<xsd:element ref = "AssociatedOperator" minOccurs = "0" maxOccurs = "unbounded"/>
				<xsd:element ref = "StopRequirements" minOccurs = "0"/>
				<xsd:element ref = "SpecialOperationProfile" minOccurs = "0"/>
				<xsd:element ref = "Note" minOccurs = "0" maxOccurs = "unbounded"/>
				<xsd:element ref = "ToBeMarketedWith" minOccurs = "0"/>
			</xsd:sequence>
			<xsd:attribute name = "ServiceStartPoint" use = "required" type = "xsd:string">
				<xsd:annotation>
					<xsd:documentation>Public name of place where the Service Starts</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name = "ServiceEndPoint" use = "required" type = "xsd:string">
				<xsd:annotation>
					<xsd:documentation>Public name of place where the Service Ends</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name = "ServiceID" use = "required" type = "xsd:string">
				<xsd:annotation>
					<xsd:documentation>Identifier for Service</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name = "PublicID" use = "required">
				<xsd:annotation>
					<xsd:documentation>Public identifier of the service</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:maxLength value = "48"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "RouteRef" use = "required">
				<xsd:annotation>
					<xsd:documentation>Identifier of Route associated with Service. Note that the first 4 characters of RouteID should be identical to the OperatorCode, the remaining 6 digits represent a Route identifier which is unique to the Operator</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:maxLength value = "10"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "UseAllStops" use = "required" type = "xsd:boolean">
				<xsd:annotation>
					<xsd:documentation>Service to be registered will / will not use all stops along its Route</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name = "ServiceHasMirror" use = "required" type = "xsd:boolean">
				<xsd:annotation>
					<xsd:documentation>Identification of whether a Service is part of a pair (i.e. is comprised of an inbound and an outbound journey)</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute ref = "StartDate" use = "required"/>
			<xsd:attribute ref = "EndDate" default = "9999-09-09"/>
			<xsd:attribute ref = "Modification" use = "required"/>
			<xsd:attribute ref = "RevisionNumber" use = "required"/>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*                                                                    *
*    *****             Vehicle Journey Components           *****    *
*                                                                    *
**********************************************************************
-->
	
	
	<!--
**********************************************************************
*    *****                   Vehicle Type                   *****    *
**********************************************************************
-->
	
	<xsd:element name = "VehicleType">
		<xsd:annotation>
			<xsd:documentation>Classification of type of vehicle for journey</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base = "xsd:string">
					<xsd:attribute name = "VehicleTypeCode" use = "required">
						<xsd:annotation>
							<xsd:documentation>VehicleType classification code</xsd:documentation>
						</xsd:annotation>
						<xsd:simpleType>
							<xsd:restriction base = "xsd:string">
								<xsd:maxLength value = "8"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:attribute>
					<xsd:attribute name = "VehicleTypeDescription" use = "required">
						<xsd:annotation>
							<xsd:documentation>VehicleType short description</xsd:documentation>
						</xsd:annotation>
						<xsd:simpleType>
							<xsd:restriction base = "xsd:string">
								<xsd:maxLength value = "24"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:attribute>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*    *****            Vehicle Journey Timing Link           *****    *
**********************************************************************
-->
	
	<xsd:element name = "VehicleJourneyStopPointRef">
		<xsd:annotation>
			<xsd:documentation>Reference to a StopPoint element as part of a VehicleJourneyTimingLink</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "StopPointRefType">
					<xsd:attribute name = "JourneyPatternWaitTime" use = "optional" type = "xsd:integer">
						<xsd:annotation>
							<xsd:documentation>Time (minutes) to wait at the referenced StopPoint within a specific JourneyPattern which supersedes the DefaultWaitTime of the StopPoint. NB. this time is the TOTAL wait time at the stop and thus is duplicated by wait time associated with the stop point of the preceeding/following link</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name = "VehicleJourneyWaitTime" use = "optional" type = "xsd:integer">
						<xsd:annotation>
							<xsd:documentation>Time (minutes) to wait at a referenced StopPoint within a specific VehicleJourney which supersedes the associated DefaultWaitTime and JourneyPatternWaitTime. NB. this time is the TOTAL wait time at the stop and thus is duplicated by wait time associated with the stop point of the preceeding/following link</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name = "ActivityFlag" use = "required">
						<xsd:annotation>
							<xsd:documentation>Activity undertaken by vehicle at Stop Point. Note that the values 'Hail_And_Ride_Start' and 'Hail_And_Ride_End' will be associated with 'virtual' bus stops in the National Bus Stop Database - In this schema the BusStopSubType attribute for the relevant StopPoint should be set to 'Hail_And_Ride_Boundary'</xsd:documentation>
						</xsd:annotation>
						<xsd:simpleType>
							<xsd:restriction base = "xsd:string">
								<xsd:enumeration value = "Pick_Up"/>
								<xsd:enumeration value = "Set_Down"/>
								<xsd:enumeration value = "Pick_Up_And_Set_Down"/>
								<xsd:enumeration value = "Hail_And_Ride_Start"/>
								<xsd:enumeration value = "Hail_And_Ride_End"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:attribute>
					<xsd:attribute name = "DynamicDestinationDisplay" use = "optional">
						<xsd:annotation>
							<xsd:documentation>Journey destination applicable to vehicle at referenced StopPoint</xsd:documentation>
						</xsd:annotation>
						<xsd:simpleType>
							<xsd:restriction base = "xsd:string">
								<xsd:maxLength value = "48"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:attribute>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "VehicleJourneyTimingLink">
		<xsd:annotation>
			<xsd:documentation>Subset of VehicleJourney defined by 2 Stop Points which denote the start and end of the VehicleJourneyTimingLink.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "TimingLink">
					<xsd:sequence>
						<xsd:element ref = "VehicleJourneyStopPointRef" minOccurs = "2" maxOccurs = "2"/>
					</xsd:sequence>
					<xsd:attribute name = "VehicleJourneyRunTime" use = "optional" type = "xsd:integer">
						<xsd:annotation>
							<xsd:documentation>Time (minutes) to traverse a TimingLink along a specific VehicleJourney which supersedes the associated DefaultRunTime and JourneyPatternRunTime</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*    *****            Vehicle Journey Interchange           *****    *
**********************************************************************
-->
	
	<xsd:element name = "VehicleJourneyInterchange">
		<xsd:annotation>
			<xsd:documentation>Interchange between Vehicle Journeys</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "InterchangeType">
					<xsd:attribute name = "VehicleJourney1" use = "required">
						<xsd:annotation>
							<xsd:documentation>First VehicleJourney (i.e. incoming) of an Interchange</xsd:documentation>
						</xsd:annotation>
						<xsd:simpleType>
							<xsd:restriction base = "xsd:string">
								<xsd:maxLength value = "6"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:attribute>
					<xsd:attribute name = "VehicleJourney2" use = "required">
						<xsd:annotation>
							<xsd:documentation>Second VehicleJourney (i.e. outgoing) of an Interchange</xsd:documentation>
						</xsd:annotation>
						<xsd:simpleType>
							<xsd:restriction base = "xsd:string">
								<xsd:maxLength value = "6"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:attribute>
					<xsd:attribute name = "VehicleJourneyAssociationType" use = "optional">
						<xsd:annotation>
							<xsd:documentation>Relationship between incoming and outgoing VehicleJourneys of an Interchange</xsd:documentation>
						</xsd:annotation>
						<xsd:simpleType>
							<xsd:restriction base = "xsd:string">
								<xsd:enumeration value = "Join"/>
								<xsd:enumeration value = "Split"/>
								<xsd:enumeration value = "Cross_Border"/>
								<xsd:enumeration value = "Guaranteed_Connection"/>
								<xsd:enumeration value = "Vehicles_Change_Route_Number"/>
								<xsd:enumeration value = "Through"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:attribute>
				</xsd:extension>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*    *****                   Layover Point                  *****    *
**********************************************************************
-->
	
	<xsd:element name = "LayoverPoint">
		<xsd:annotation>
			<xsd:documentation>Point at which vehicle wait time is taken between the end of a completed journey and the start of the next journey</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base = "xsd:string">
					<xsd:attribute name = "Duration" use = "required" type = "xsd:integer">
						<xsd:annotation>
							<xsd:documentation>Time duration (minutes) of vehicle at Layover Point</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute name = "LayoverPointName" use = "required" type = "xsd:string">
						<xsd:annotation>
							<xsd:documentation>Name of Layover Point</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
					<xsd:attribute ref = "XCoord" use = "required"/>
					<xsd:attribute ref = "YCoord" use = "required"/>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*    *****                    Time Demand                   *****    *
**********************************************************************
-->
	
	<xsd:element name = "TimeDemand">
		<xsd:annotation>
			<xsd:documentation>Time/type of day affecting running/waiting times</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name = "TimeDemandClassification" use = "required">
				<xsd:annotation>
					<xsd:documentation>Identification of TimeDemand classification</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:enumeration value = "Early_Morning"/>
						<xsd:enumeration value = "Peak_Morning"/>
						<xsd:enumeration value = "Off_Peak"/>
						<xsd:enumeration value = "Peak_Afternoon"/>
						<xsd:enumeration value = "Evening"/>
						<xsd:enumeration value = "Late_Evening"/>
						<xsd:enumeration value = "Sat_Morning"/>
						<xsd:enumeration value = "Sat_Daytime"/>
						<xsd:enumeration value = "Sat_Evening"/>
						<xsd:enumeration value = "Sun"/>
						<xsd:enumeration value = "Bank_Holiday"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*    *****                Frequent Service                  *****    *
**********************************************************************
-->
	
	<xsd:element name = "FrequentOpStart">
		<xsd:annotation>
			<xsd:documentation>Identifies the start of a Frequent Service Period</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name = "ApproxFrequency" use = "required" type = "xsd:string">
				<xsd:annotation>
					<xsd:documentation>Description of the frequency of the service, for example 'every 5 minutes'</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "FrequentOpEnd">
		<xsd:annotation>
			<xsd:documentation>Identifies the end of a Frequent Service Period</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>
	<xsd:element name = "FrequentService">
		<xsd:annotation>
			<xsd:documentation>Identifies where a VehicleJourney is classified as denoting the start, end or part of a frequent service period. A Frequent Service is a service where stops are served at a frequency of 10 minutes or less for the whole or part of the day</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:choice>
				<xsd:element ref = "FrequentOpStart"/>
				<xsd:element ref = "PartOfFrequentService"/>
				<xsd:element ref = "FrequentOpEnd"/>
			</xsd:choice>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*    *****                     Day Type                     *****    *
**********************************************************************
-->
	
	<xsd:element name = "GeneralOpClassification">
		<xsd:annotation>
			<xsd:documentation>General classification of when the Vehicle Journey will Operate. Note that where SchoolOp, Periodic and SpecialOperationProfile are defined these extend/supersede the definition within GeneralOpClassification</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name = "GeneralOpDays" use = "required">
				<xsd:annotation>
					<xsd:documentation>Options for the value of GeneralOpClassification element</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:enumeration value = "MondayToFriday"/>
						<xsd:enumeration value = "MondayToSaturday"/>
						<xsd:enumeration value = "MondayToSunday"/>
						<xsd:enumeration value = "Monday"/>
						<xsd:enumeration value = "Tuesday"/>
						<xsd:enumeration value = "Wednesday"/>
						<xsd:enumeration value = "Thursday"/>
						<xsd:enumeration value = "Friday"/>
						<xsd:enumeration value = "Saturday"/>
						<xsd:enumeration value = "Sunday"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "WeekOfMonth">
		<xsd:annotation>
			<xsd:documentation>Description of week within a calendar month i.e. is the week the 1st, 2nd, 3rd, 4th or 5th week of the calendar month</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:simpleContent>
				<xsd:extension base = "xsd:string">
					<xsd:attribute name = "WeekNumber" use = "required">
						<xsd:annotation>
							<xsd:documentation>Identification of week within calendar month (i.e. whether the week is the 1st, 2nd, 3rd, 4th, 5th or last within the calendar month)</xsd:documentation>
						</xsd:annotation>
						<xsd:simpleType>
							<xsd:restriction base = "xsd:string">
								<xsd:enumeration value = "First"/>
								<xsd:enumeration value = "Second"/>
								<xsd:enumeration value = "Third"/>
								<xsd:enumeration value = "Fourth"/>
								<xsd:enumeration value = "Fifth"/>
								<xsd:enumeration value = "Last"/>
							</xsd:restriction>
						</xsd:simpleType>
					</xsd:attribute>
				</xsd:extension>
			</xsd:simpleContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "Periodic">
		<xsd:annotation>
			<xsd:documentation>Collection of weeks within a calendar month on which a VehicleJourney operates (or does not operate), this extends the DayType definition given by GeneralOpClassification. Note that where SchoolOp and SpecialOperationProfile are defined these extend/supersede the definition within GeneralOpClassification</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "WeekOfMonth" maxOccurs = "4"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "School">
		<xsd:annotation>
			<xsd:documentation>School - identifying information in contained attributes</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:attribute name = "LEAref" use = "required" type = "xsd:integer">
				<xsd:annotation>
					<xsd:documentation>Identifying reference for the Local Education Authority</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name = "SchoolRef" use = "required">
				<xsd:annotation>
					<xsd:documentation>Reference of School, by convention this should be the DFE Number. Note by convention where this is set to '0000' this is to be interpreted as meaning "all schools in the LEA's area", also note in this case then dummy text is still required in the SchoolName attribute</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:integer">
						<xsd:maxInclusive value = "9999"/>
						<xsd:minInclusive value = "0000"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "SchoolName" use = "required" type = "xsd:string">
				<xsd:annotation>
					<xsd:documentation>Name of School. Note where the attribute SchoolRef is set to '0000' this requires that dummy text is needed within the SchoolName attribute</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "SchoolDays">
		<xsd:annotation>
			<xsd:documentation>Classification of the Operation or Non-Operation of Vehicle Journey in respect of school days. Note that where  BankHolidays and SpecialOperationProfile are defined these supersede the definition within SchoolDays</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "SchoolProfile"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "SchoolOp">
		<xsd:annotation>
			<xsd:documentation>Classification of the Operation or Non-Operation of Vehicle Journey in respect of school days and school holidays, this extends the DayType definition given by GeneralOpClassification and Periodic. Note that where SpecialOperationProfile is defined this supersedes the definition within SchoolOp</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "SchoolDays" minOccurs = "0" maxOccurs = "unbounded"/>
				<xsd:element ref = "SchoolHolidays" minOccurs = "0" maxOccurs = "unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "SchoolHolidays">
		<xsd:annotation>
			<xsd:documentation>Classification of the Operation or Non-Operation of Vehicle Journey in respect of school holidays. Note that where  BankHolidays and SpecialOperationProfile are defined these supersede the definition within SchoolHolidays</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "SchoolProfile"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "DayType">
		<xsd:annotation>
			<xsd:documentation>Categories of day on which service operates</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType mixed = "true">
			<xsd:sequence>
				<xsd:element ref = "GeneralOpClassification"/>
				<xsd:element ref = "Periodic" minOccurs = "0"/>
				<xsd:element ref = "SchoolOp" minOccurs = "0"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*                                                                    *
*    *****                Vehicle Journeys                  *****    *
*                                                                    *
**********************************************************************
-->
	
	<xsd:element name = "VehicleJourney">
		<xsd:annotation>
			<xsd:documentation>Specific journey of a vehicle following a Journey Pattern. The order of &lt;VehicleJourneyTimingLink>s in the &lt;VehicleJourney> should represent the order in which they appear in the physical Vehicle Journey</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType mixed = "true">
			<xsd:sequence>
				<xsd:element ref = "VehicleType" minOccurs = "0"/>
				<xsd:element ref = "VehicleJourneyTimingLink" minOccurs = "0" maxOccurs = "unbounded"/>
				<xsd:element ref = "VehicleJourneyInterchange" minOccurs = "0" maxOccurs = "unbounded"/>
				<xsd:element ref = "LayoverPoint" minOccurs = "0" maxOccurs = "unbounded"/>
				<xsd:element ref = "TimeDemand" minOccurs = "0"/>
				<xsd:element ref = "FrequentService" minOccurs = "0"/>
				<xsd:element ref = "DayType"/>
				<xsd:element ref = "SpecialOperationProfile" minOccurs = "0"/>
				<xsd:element ref = "Note" minOccurs = "0" maxOccurs = "unbounded"/>
			</xsd:sequence>
			<xsd:attribute name = "VehicleJourneyID" use = "required">
				<xsd:annotation>
					<xsd:documentation>Journey identifier</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:maxLength value = "6"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "DepartureTime" use = "required" type = "xsd:time">
				<xsd:annotation>
					<xsd:documentation>Time of departure from origin stop for a specific Vehicle Journey</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name = "TrackID" use = "optional" type = "xsd:string">
				<xsd:annotation>
					<xsd:documentation>Identification of Track associated with VehicleJourney</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute ref = "Modification" use = "required"/>
			<xsd:attribute ref = "RevisionNumber" use = "required"/>
			<xsd:attribute name = "DestinationDisplay" use = "required">
				<xsd:annotation>
					<xsd:documentation>Journey destination, as displayed on vehicle</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:maxLength value = "48"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "RunningBoard" use = "optional">
				<xsd:annotation>
					<xsd:documentation>Reference to collection of Vehicle Journeys operated by vehicle</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:maxLength value = "6"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "OperatorCodeRef" use = "optional">
				<xsd:annotation>
					<xsd:documentation>Refers to the Operator for the Vehicle Journey. Same format as the OperatorCode attribute</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:maxLength value = "4"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "JourneyPatternRef" use = "required">
				<xsd:annotation>
					<xsd:documentation>Reference to JourneyPattern associated with VehicleJourney</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:maxLength value = "6"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "JourneyDirection" use = "required">
				<xsd:annotation>
					<xsd:documentation>Direction of VehicleJourney</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:enumeration value = "Inbound"/>
						<xsd:enumeration value = "Outbound"/>
						<xsd:enumeration value = "Circular"/>
						<xsd:enumeration value = "Clockwise"/>
						<xsd:enumeration value = "Anti-Clockwise"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
			<xsd:attribute name = "VehicleJourneyRef">
				<xsd:annotation>
					<xsd:documentation>Reference to a different Vehicle Journey. This attribute is intended to allow 'reuse' of the collection of VehicleJourneyTimingLink elements of the referenced VehicleJourney (by the VehicleJourney containing the VehicleJourneyRef attribute), this allows a dramatic reduction in file sizes</xsd:documentation>
				</xsd:annotation>
				<xsd:simpleType>
					<xsd:restriction base = "xsd:string">
						<xsd:maxLength value = "6"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	
	<!--
**********************************************************************
*                                                                    *
*    *****                TransXChange Root                 *****    *
*                                                                    *
**********************************************************************
-->
	
	<xsd:element name = "TransXChange">
		<xsd:annotation>
			<xsd:documentation>Root element of record, i.e. provides the envelope to contain all other information.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "Route" minOccurs = "0" maxOccurs = "unbounded"/>
				<xsd:element ref = "StopPoint" minOccurs = "0" maxOccurs = "unbounded"/>
				<xsd:element ref = "OverallServiceDescription" minOccurs = "0" maxOccurs = "unbounded"/>
				<xsd:element ref = "VehicleJourney" minOccurs = "0" maxOccurs = "unbounded"/>
				<xsd:element ref = "SupportingDocument" minOccurs = "0" maxOccurs = "unbounded"/>
			</xsd:sequence>
			<xsd:attribute name = "FileCreationDate" use = "required" type = "xsd:date">
				<xsd:annotation>
					<xsd:documentation>Record of the date of creation of the TransXChange file</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
			<xsd:attribute name = "FileCreationTime" use = "required" type = "xsd:time">
				<xsd:annotation>
					<xsd:documentation>Record of the time of creation of the TransXChange file</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name = "Address">
		<xsd:sequence>
			<xsd:element ref = "AddressLine" minOccurs = "2" maxOccurs = "unbounded"/>
			<xsd:element ref = "PostCode"/>
			<xsd:element ref = "Country" minOccurs = "0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name = "CorrespondenceAddress">
		<xsd:annotation>
			<xsd:documentation>Address of Operator to be used for correpondence (NB. this is NOT the enquiry address for public usage)</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "Address"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "MiscellaneousAddress">
		<xsd:annotation>
			<xsd:documentation>Address of Operator (NB. this is NOT the correspondence address)</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base = "Address"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "OperatorAddresses">
		<xsd:annotation>
			<xsd:documentation>Collection of addresses for the Operator (as a minimum this must include the correspondence address)</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref = "CorrespondenceAddress"/>
				<xsd:element ref = "MiscellaneousAddress" minOccurs = "0" maxOccurs = "unbounded"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name = "PartOfFrequentService">
		<xsd:annotation>
			<xsd:documentation>Denotes that VehicleJourney is within a period of Frequent Service, but does not represents the start or end of the period of frequency</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType/>
	</xsd:element>
</xsd:schema>