<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema targetNamespace="http://www.transxchange.org.uk/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:txc="http://www.transxchange.org.uk/" xmlns="http://www.transxchange.org.uk/" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.0c" id="TransXChange">
	<xsd:annotation>
		<xsd:appinfo xmlns:gms="http://www.govtalk.gov.uk/CM/gms">
			<Metadata xmlns="http://www.govtalk.gov.uk/CM/gms-xs">
				<Aggregation>main schema</Aggregation>
				<Audience>e-service developers</Audience>
				<Contributor>Revised for version 2.0 Kizoom Limited, by Tom White, Nicholas Knowles. mailto:schemer@kizoom.com</Contributor>
				<Contributor>Roger Slevin [Roger.Slevin@dft.gsi.gov.uk]</Contributor>
				<Contributor>Paul Robinson [Paul.Robinson@carlbro.com]</Contributor>
				<Contributor>Richard Mejia [Richard.Mejia@carlbro.com]</Contributor>
				<Coverage>United Kingdom</Coverage>
				<Creator>Created as W3C .xsd schema by CGEY as 1.1 XML schema, Ross Dixon, Kieran Holmes mailto:ross.dixon@cgey.com</Creator>
				<Date>
					<Created>2001-05-20</Created>
				</Date>
				<Date>
					<Modified>2003-09-11</Modified>
				</Date>
				<Date>
					<Modified>2004-02-01</Modified>
				</Date>
				<Date>
					<Modified>2004-03-08</Modified>
				</Date>
				<Description>
					<p>The TransXChange is a UK nationwide system for exchanging bus schedules. It is used both for the electronic registration of bus routes with the Traffic Area Networks (TAN), and for the exchange of bus routes with other systems such as journey planners and real-time tracking systems.</p>
					<p>There are two closely related but distinct TransXChange XML schemas:</p>
					<ul>
						<li>A <b>Registration</b> schema for registering a bus timetable. Includes mandatory elements.</li>
						<li>A <b>General</b> schema for exchanging bus timetable data between systems of all sorts.</li>
					</ul>
					<p>This document is the registration schema.</p>
				</Description>
				<Format>
					<MediaType>text/xml</MediaType>
					<Syntax>http://www.w3.org/2001/XMLSchema</Syntax>
					<Description>XML schema, W3C Recommendation 2001</Description>
				</Format>
				<Identifier>http://www.transxchange.org.uk/schemas/2.0c/TransXChange_registration.xsd</Identifier>
				<Language>[ISO 639-2/B] ENG</Language>
				<Publisher>Department for Transport, Great Minster House, 76 Marsham Street, London SW1P 4DR</Publisher>
				<Relation>
					<Requires>http://www.transxchange.org.uk/schemas/2.0c/TransXChange_common.xsd</Requires>
				</Relation>
				<Relation>
					<HasPart>http://www.transxchange.org.uk/schemas/2.0c/TransXChange_common.xsd</HasPart>
				</Relation>
				<Rights>Unclassified
                            <Copyright>Crown Copyright 2000-2004</Copyright>
				</Rights>
				<Source>
					<ul>
						<li>Originally developed as Version 1.0  in 2000 By Ross Dixon and Kieran Holmes of CGEY.</li>
						<li>Revised as Version 1.1, 2001 by Ross Dixon</li>
						<li>Revised as Version 1.2, 2002 by Ross Dixon</li>
					</ul>
				</Source>
				<Status>Version 2.0 Draft for approval</Status>
				<Subject>
					<Category>Arts, recreation and travel, Tourism, Travel (tourism), Transport,
Public transport, Bus services, Coach services, Bus stops and stations
Rail transport, Infrastructure (railways), Train services,
Roads and road transport</Category>
					<Project>Transport Direct</Project>
				</Subject>
				<Title>TransXChange Registration Schema, an XML format for registering bus timetables.</Title>
				<Type>Standard</Type>
			</Metadata>
		</xsd:appinfo>
	</xsd:annotation>
	<xsd:include schemaLocation="TransXChange_common.xsd"/>
	<!-- ======================================================================= -->
	<!-- TransXChange Root -->
	<xsd:element name="TransXChange">
		<xsd:annotation>
			<xsd:documentation>Schema for exchanging a bus schedule for registration with a Traffic Area Network.
@xml:lang
@CreationDateTime,
@ModificationDateTime,
@Modification,
@RevisionNumber,
@FileName,
@SchemaVersion,
@MappingSystem,
@LocationSystem.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="ServicedOrganisations" type="ServicedOrganisationsStructure" minOccurs="0">
					<xsd:annotation>
						<xsd:documentation>Definitions of Serviced Organisations and their working and non-working days.</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element name="StopPoints" type="StopPointsStructure" minOccurs="0">
					<xsd:annotation>
						<xsd:documentation>Local Stop definitions for Stops used in services. Normally Stops will be defined simply by referencing their NaPTAN AtcoCode in a StopPointRef. Stops can also be defined locally here.</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element name="StopAreas" type="StopAreasStructure" minOccurs="0">
					<xsd:annotation>
						<xsd:documentation>Local StopArea definitions. Normally StopAreas will be defined as part of their NaPTAN Definition. Areas can be defined locally here. </xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element name="FlexibleZones" type="FlexibleZonesStructure" minOccurs="0">
					<xsd:annotation>
						<xsd:documentation>Definitions of geographical zones of operation, used to describe flexible services.</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element name="RouteSections" type="RouteSectionsStructure" minOccurs="0">
					<xsd:annotation>
						<xsd:documentation>Definitions of the Route Sections, i.e. collections of  of route links, making up all or part of a Route. These are used in Route definitions.</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element name="Routes" type="RoutesStructure">
					<xsd:annotation>
						<xsd:documentation>Definitions of Transport Routes.</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element name="JourneyPatternSections" type="JourneyPatternSectionsStructure">
					<xsd:annotation>
						<xsd:documentation>Definitions of Journey Pattern sections.</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element name="Services" type="RegistrationServicesStructure">
					<xsd:annotation>
						<xsd:documentation>Description of the Services to be registered.</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element name="VehicleJourneys" type="VehicleJourneysStructure" minOccurs="0">
					<xsd:annotation>
						<xsd:documentation>Definitions of Vehicle Journeys, used in one or more Services.</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element name="SupportingDocuments" type="SupportingDocumentsStructure" minOccurs="0">
					<xsd:annotation>
						<xsd:documentation>Additional documents describing the Service.</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
			</xsd:sequence>
			<xsd:attributeGroup ref="DocumentModificationDetailsGroup"/>
			<xsd:attributeGroup ref="DocumentMetadataGroup"/>
			<xsd:attribute name="LocationSystem" type="LocationSystemEnumeration" use="optional" fixed="Grid">
				<xsd:annotation>
					<xsd:documentation>Data system to use for location coordinate references within the document. This is fixed to be Grid for registration documents.</xsd:documentation>
				</xsd:annotation>
			</xsd:attribute>
		</xsd:complexType>
		<xsd:key name="ServicedOrganisationKey">
			<xsd:selector xpath=".//txc:ServicedOrganisations/txc:ServicedOrganisation"/>
			<xsd:field xpath="txc:OrganisationCode"/>
		</xsd:key>
		<xsd:key name="StopPointKey">
			<xsd:selector xpath=".//txc:StopPoints/txc:StopPoint"/>
			<xsd:field xpath="txc:AtcoCode"/>
		</xsd:key>
		<xsd:unique name="StopPointPrivateKey">
			<xsd:selector xpath=".//txc:StopPoints/txc:StopPoint"/>
			<xsd:field xpath="txc:PrivateCode"/>
		</xsd:unique>
		<xsd:key name="StopAreaKey">
			<xsd:selector xpath=".//txc:StopAreas/txc:StopArea"/>
			<xsd:field xpath="txc:StopAreaCode"/>
		</xsd:key>
		<xsd:unique name="StopAreaPrivateKey">
			<xsd:selector xpath=".//txc:StopAreas/txc:StopArea"/>
			<xsd:field xpath="txc:PrivateCode"/>
		</xsd:unique>
		<xsd:keyref name="StopAreaKeyRef" refer="StopAreaKey">
			<xsd:selector xpath=".//txc:StopAreaRef"/>
			<xsd:field xpath="."/>
		</xsd:keyref>
		<xsd:key name="NptgLocalityKey">
			<xsd:selector xpath=".//txc:NtpgLocalities/txc:NptgLocality"/>
			<xsd:field xpath="txc:Code"/>
		</xsd:key>
		<xsd:key name="FlexibleZoneKey">
			<xsd:selector xpath=".//txc:FlexibleZones/txc:FlexibleZone"/>
			<xsd:field xpath="txc:StopPointRef"/>
		</xsd:key>
		<xsd:keyref name="FlexibleZoneKeyRef" refer="FlexibleZoneKey">
			<xsd:selector xpath=".//txc:FlexibleZoneRef"/>
			<xsd:field xpath="."/>
		</xsd:keyref>
		<xsd:unique name="RouteSectionKey">
			<xsd:selector xpath=".//txc:RouteSections/txc:RouteSection"/>
			<xsd:field xpath="@id"/>
		</xsd:unique>
		<xsd:keyref name="RouteSectionKeyRef" refer="RouteSectionKey">
			<xsd:selector xpath=".//txc:RouteSectionRef"/>
			<xsd:field xpath="."/>
		</xsd:keyref>
		<xsd:unique name="RouteLinkKey">
			<xsd:selector xpath=".//txc:RouteSection/txc:RouteLink"/>
			<xsd:field xpath="@id"/>
		</xsd:unique>
		<xsd:unique name="RouteKey">
			<xsd:selector xpath=".//txc:Routes/txc:Route"/>
			<xsd:field xpath="@id"/>
		</xsd:unique>
		<xsd:keyref name="RouteKeyRef" refer="RouteKey">
			<xsd:selector xpath=".//txc:RouteRef"/>
			<xsd:field xpath="."/>
		</xsd:keyref>
		<xsd:unique name="RoutePrivateKey">
			<xsd:selector xpath=".//txc:Routes/txc:Route"/>
			<xsd:field xpath="txc:PrivateCode"/>
		</xsd:unique>
		<xsd:unique name="JourneyPatternSectionKey">
			<xsd:selector xpath=".//txc:JourneyPatternSections/txc:JourneyPatternSection"/>
			<xsd:field xpath="@id"/>
		</xsd:unique>
		<xsd:keyref name="JourneyPatternSectionKeyRef" refer="JourneyPatternSectionKey">
			<xsd:selector xpath=".//txc:JourneyPatternSectionRefs"/>
			<xsd:field xpath="."/>
		</xsd:keyref>
		<xsd:key name="StandardServiceKey">
			<xsd:selector xpath=".//txc:Services/txc:StandardService"/>
			<xsd:field xpath="txc:ServiceCode"/>
		</xsd:key>
		<xsd:keyref name="StandardServiceKeyRef" refer="StandardServiceKey">
			<xsd:selector xpath=".//txc:ServiceRef"/>
			<xsd:field xpath="."/>
		</xsd:keyref>
		<xsd:key name="FlexibleServiceKey">
			<xsd:selector xpath=".//txc:Services/txc:FlexibleService"/>
			<xsd:field xpath="txc:ServiceCode"/>
		</xsd:key>
		<xsd:unique name="LineKey">
			<xsd:selector xpath=".//txc:Lines/txc:Line"/>
			<xsd:field xpath="@id"/>
		</xsd:unique>
		<xsd:keyref name="LineKeyRef" refer="LineKey">
			<xsd:selector xpath=".//txc:LineRef"/>
			<xsd:field xpath="."/>
		</xsd:keyref>
		<xsd:unique name="JourneyPatternKey">
			<xsd:selector xpath=".//txc:StandardService/txc:JourneyPattern"/>
			<xsd:field xpath="@id"/>
		</xsd:unique>
		<xsd:keyref name="JourneyPatternKeyRef" refer="JourneyPatternKey">
			<xsd:selector xpath=".//txc:JourneyPatternRef"/>
			<xsd:field xpath="."/>
		</xsd:keyref>
		<xsd:unique name="JourneyPatternPrivateKey">
			<xsd:selector xpath=".//txc:StandardService/txc:JourneyPattern"/>
			<xsd:field xpath="txc:PrivateCode"/>
		</xsd:unique>
		<xsd:unique name="JourneyPatternTimingLinkStopUsageKey">
			<xsd:selector xpath=".//txc:JourneyPatternTimingLink/*"/>
			<xsd:field xpath="@id"/>
		</xsd:unique>
		<xsd:keyref name="JourneyPatternTimingLinkInboundStopUsageKeyRef" refer="JourneyPatternTimingLinkStopUsageKey">
			<xsd:selector xpath=".//txc:InboundStopUsageRef"/>
			<xsd:field xpath="."/>
		</xsd:keyref>
		<xsd:keyref name="JourneyPatternTimingLinkOutboundStopUsageKeyRef" refer="JourneyPatternTimingLinkStopUsageKey">
			<xsd:selector xpath=".//txc:OutboundStopUsageRef"/>
			<xsd:field xpath="."/>
		</xsd:keyref>
		<xsd:unique name="JourneyPatternInterchangeKey">
			<xsd:selector xpath=".//txc:StandardService/txc:JourneyPatternInterchange"/>
			<xsd:field xpath="@id"/>
		</xsd:unique>
		<xsd:keyref name="JourneyPatternInterchangeKeyRef" refer="JourneyPatternInterchangeKey">
			<xsd:selector xpath=".//txc:JourneyPatternInterchange"/>
			<xsd:field xpath="@id"/>
		</xsd:keyref>
		<xsd:unique name="VehicleJourneyKey">
			<xsd:selector xpath=".//txc:VehicleJourneys/txc:VehicleJourney"/>
			<xsd:field xpath="@id"/>
		</xsd:unique>
		<xsd:keyref name="VehicleJourneyKeyRef" refer="VehicleJourneyKey">
			<xsd:selector xpath=".//txc:VehicleJourneyRef"/>
			<xsd:field xpath="."/>
		</xsd:keyref>
		<xsd:unique name="VehicleJourneyPrivateKey">
			<xsd:selector xpath=".//txc:VehicleJourneys/txc:VehicleJourney"/>
			<xsd:field xpath="txc:PrivateCode"/>
		</xsd:unique>
	</xsd:element>
	<!-- ======================================================================= -->
	<!-- Restriction of Service for the Registration schema -->
	<xsd:complexType name="RegistrationServicesStructure">
		<xsd:annotation>
			<xsd:documentation>A collection of standard and flexible services.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="StandardService" type="RegistrationStandardServiceStructure" minOccurs="0" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>A specific scheduled journey by an individual vehicle making up a regular part of the service.
@CreationDateTime,
@ModificationDateTime,
@Modification,
@RevisionNumber.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="FlexibleService" type="RegistrationFlexibleServiceStructure" minOccurs="0" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>A service meeting the criteria for flexibly routed services, that is with variable stopping points and no fixed timetable in accordance with the regulations.
@CreationDateTime,
@ModificationDateTime,
@Modification,
@RevisionNumber.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="RegistrationAbstractServiceStructure">
		<xsd:annotation>
			<xsd:documentation>Abstract type for elements common to all service types.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="ServiceCode" type="xsd:NMTOKEN">
				<xsd:annotation>
					<xsd:documentation>Code that uniquely identifies the Service.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Lines">
				<xsd:annotation>
					<xsd:documentation>The line or lines that make up the service.</xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="Line" maxOccurs="unbounded">
							<xsd:annotation>
								<xsd:documentation>A Line by which all or part of the service is known.
@id.</xsd:documentation>
							</xsd:annotation>
							<xsd:complexType>
								<xsd:sequence>
									<xsd:element name="LineName" type="PopulatedStringType">
										<xsd:annotation>
											<xsd:documentation>Public identifier of the service. E.g. "N73".</xsd:documentation>
										</xsd:annotation>
									</xsd:element>
								</xsd:sequence>
								<xsd:attribute name="id" type="xsd:NMTOKEN" use="optional"/>
							</xsd:complexType>
						</xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="ServiceHasMirror" type="xsd:boolean">
				<xsd:annotation>
					<xsd:documentation>Whether a Service is part of a pair (i.e. is comprised of an inbound and an outbound journey).</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="OperatingPeriod" type="HalfOpenDateRangeStructure">
				<xsd:annotation>
					<xsd:documentation>Inclusive period within which Service runs.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ServiceClassification" type="ServiceClassificationStructure">
				<xsd:annotation>
					<xsd:documentation>Nature of Service. The ServiceType affects rules of usage of data. Required for Registration Schema, but not General Schema.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="TicketMachineServiceCode" type="TicketMachineServiceCodeType" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>The identifier used by the ticket machine system to refer to the service.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Registration" type="RegistrationRegistrationStructure">
				<xsd:annotation>
					<xsd:documentation>Information needed to register a bus route with a TAN. Required for Registration Schema, but not General Schema.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="RegisteredOperator" type="OperatorStructure">
				<xsd:annotation>
					<xsd:documentation>Registered Operator of Service - i.e. with responsibility for the service.
@CreationDateTime,
@ModificationDateTime,
@Modification,
@RevisionNumber.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="AssociatedOperator" type="OperatorStructure" minOccurs="0" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>Operator associated with the Service who is NOT the Registered Operator.
@CreationDateTime,
@ModificationDateTime,
@Modification,
@RevisionNumber.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="StopRequirements" type="StopRequirementsStructure">
				<xsd:annotation>
					<xsd:documentation>Required for Registration Schema, but not General Schema.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="OperationProfile" type="OperationProfileStructure">
				<xsd:annotation>
					<xsd:documentation>Dates on which the service runs.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="SpecialOperationProfile" type="SpecialOperationProfileStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Special operation days and exclusion periods for the route.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Note" type="NoteStructure" minOccurs="0" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>Descriptive note about the service.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ToBeMarketedWith" type="ToBeMarketedWithStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Information about other services with which the registered service will be jointly marketed.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="RegistrationStandardServiceStructure">
		<xsd:annotation>
			<xsd:documentation>Classification and description of the bus service. Does not identify the individual bus journeys (defined as part of VehicleJourney).</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="RegistrationAbstractServiceStructure">
				<xsd:sequence>
					<xsd:element name="Origin" type="NaturalLanguageStringStructure">
						<xsd:annotation>
							<xsd:documentation>Public name of place where the Service Starts. @lang.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Destination" type="NaturalLanguageStringStructure">
						<xsd:annotation>
							<xsd:documentation>Public name of place where the Service Ends. @lang.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="UseAllStopPoints" type="xsd:boolean">
						<xsd:annotation>
							<xsd:documentation>Whether Service to be registered will use all the stops along its Route.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="JourneyPattern" type="JourneyPatternStructure" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>Pattern of journeys making up the service.
@id,
@CreationDateTime,
@ModificationDateTime,
@Modification,
@RevisionNumber.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="JourneyPatternInterchange" minOccurs="0" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>Description of Interchange(s) used to connect two or more journey patterns of a service.
@id,
@JourneyPatternInterchangeId.
@CreationDateTime,
@ModificationDateTime,
@Modification,
@RevisionNumber.</xsd:documentation>
						</xsd:annotation>
						<xsd:complexType>
							<xsd:complexContent>
								<xsd:extension base="JourneyPatternInterchangeStructure">
									<xsd:attributeGroup ref="ModificationDetailsGroup"/>
								</xsd:extension>
							</xsd:complexContent>
						</xsd:complexType>
					</xsd:element>
				</xsd:sequence>
				<xsd:attributeGroup ref="ModificationDetailsGroup"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="RegistrationFlexibleServiceStructure">
		<xsd:annotation>
			<xsd:documentation>Description of a flexible bus service.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="RegistrationAbstractServiceStructure">
				<xsd:sequence>
					<xsd:element name="PickUpPoints" type="FlexibleServicePointsStructure">
						<xsd:annotation>
							<xsd:documentation>Points at which the service will pick up passengers.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SetDownPoints" type="FlexibleServicePointsStructure">
						<xsd:annotation>
							<xsd:documentation>Points at which the service will set down passengers.    </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="FlexibleServiceTimes" type="FlexibleServiceTimesStructure">
						<xsd:annotation>
							<xsd:documentation>Timebands during which the flexible service runs during a day.       </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
				<xsd:attributeGroup ref="ModificationDetailsGroup"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<!-- ======================================================================= -->
	<!-- Restriction of Registration for the Registration schema -->
	<xsd:complexType name="RegistrationRegistrationStructure">
		<xsd:complexContent>
			<xsd:restriction base="RegistrationStructure">
				<xsd:sequence>
					<xsd:element name="SubmissionDate" type="xsd:date">
						<xsd:annotation>
							<xsd:documentation>Date of Registration submission.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="TanRegistrationNumber" type="TanRegistrationNumberStructure">
						<xsd:annotation>
							<xsd:documentation>Reference number for registration (allocated by TAN).</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ApplicationClassification" type="RegistrationApplicationEnumeration">
						<xsd:annotation>
							<xsd:documentation>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. Enumerated value.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="VariationNumber" type="RegistrationVariationNumberType">
						<xsd:annotation>
							<xsd:documentation>Variation number of the Registration.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SubmissionAuthor" type="FullPersonNameStructure">
						<xsd:annotation>
							<xsd:documentation>Signatory of the submission - i.e. upon whose authority the submission is made.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="TrafficAreas" type="TrafficAreasStructure">
						<xsd:annotation>
							<xsd:documentation>Collection of Traffic Areas with full or partial responsibility for the registration of the submission.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="CirculatedAuthorities" type="CirculatedAuthoritiesStructure">
						<xsd:annotation>
							<xsd:documentation>Collection of Authorities circulated with record.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SubsidyDetails" type="SubsidyDetailsStructure">
						<xsd:annotation>
							<xsd:documentation>Information about any subsidy provided for the route. Required for Registration, but not General.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="SupportingDocuments" type="SupportingDocumentsStructure" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>Additional documents that support the registration.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ShortNoticeRegistration" type="ShortNoticeRegistrationStructure" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>Additional information to support a Registration with less than the statutory period of notice.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:restriction>
		</xsd:complexContent>
	</xsd:complexType>
	<!-- ======================================================================= -->
	<!-- Restriction of Operator for the Registration schema -->
	<xsd:complexType name="RegistrationOperatorStructure">
		<xsd:complexContent>
			<xsd:restriction base="OperatorStructure">
				<xsd:sequence>
					<xsd:element name="NationalOperatorCode" type="NationalOperatorCodeType" minOccurs="0"/>
					<xsd:element name="OperatorCode" type="OperatorCodeType" minOccurs="0"/>
					<xsd:element name="OperatorShortName" type="OperatorShortNameType"/>
					<xsd:element name="OperatorNameOnLicence" type="NaturalLanguageStringStructure">
						<xsd:annotation>
							<xsd:documentation>Full name of Operator (i.e. as appears on licence). Required for Registration Schema, but not General Schema. @lang.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="TradingName" type="OperatorTradingNameType" minOccurs="0"/>
					<xsd:element name="EnquiryTelephoneNumber" type="TelephoneContactStructure">
						<xsd:annotation>
							<xsd:documentation>Enquiry telephone number of Operator.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="ContactTelephoneNumber" type="TelephoneContactStructure">
						<xsd:annotation>
							<xsd:documentation>Contact telephone number of Operator.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="LicenceNumber" type="OperatorLicenceNumberType">
						<xsd:annotation>
							<xsd:documentation>Contact telephone number of Operator. Required for Registration Schema, but not General Schema.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="LicenceClassification" type="OperatorLicenceEnumeration">
						<xsd:annotation>
							<xsd:documentation>Required for Registration, but not General. Enumerated value.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="OperatorAddresses" type="OperatorAddressesStructure"/>
					<xsd:element name="EmailAddress" type="EmailAddressType" minOccurs="0">
						<xsd:annotation>
							<xsd:documentation>The email address of the operator. It is up to the operator whether an individual's address, or a generic company e-mail address is used.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element name="Garages" type="GaragesStructure" minOccurs="0"/>
				</xsd:sequence>
			</xsd:restriction>
		</xsd:complexContent>
	</xsd:complexType>
</xsd:schema>

