<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v4.3 U (http://www.xmlspy.com) by WS Atkins (WS Atkins) -->
<!--W3C Schema generated by XML Spy v4.3 U (http://www.xmlspy.com)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="JourneyWeb_V2.1.0">
	<xs:element name="JourneyWeb">
		<xs:annotation>
			<xs:documentation>@Version
Only responses valid 
for the requested 
version of the schema 
will be returned.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:choice>
				<xs:element name="Request">
					<xs:annotation>
						<xs:documentation>@Language (optional)
@SuppressNames (optional)</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="PointsRequest" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>@RequestID
Used to request the points for a remote locality or X,Y.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:choice>
										<xs:element name="LocalityID" type="LocalityIDType">
											<xs:annotation>
												<xs:documentation>The locality for which points are being requested.</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Geocode" type="GeocodeType">
											<xs:annotation>
												<xs:documentation>@Precision (optional)
A co-ordinate for which nearby points should be returned. The range of the search is undefined.</xs:documentation>
											</xs:annotation>
										</xs:element>
									</xs:choice>
									<xs:attribute name="RequestID" type="xs:string" use="required"/>
								</xs:complexType>
							</xs:element>
							<xs:element name="JourneysRequest" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>@RequestID
Used to request a journey between A and B</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Origin" type="OriginDestinationRequestType">
											<xs:annotation>
												<xs:documentation>The places used for the origin</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:choice>
											<xs:element name="Via" minOccurs="0">
												<xs:annotation>
													<xs:documentation>Via place for passing only (no stopover times)</xs:documentation>
												</xs:annotation>
												<xs:complexType>
													<xs:sequence>
														<xs:element name="Place" maxOccurs="unbounded">
															<xs:annotation>
																<xs:documentation>The via only has to go via one of these places e.g. if this defined all the bays in a bus station the journey only has to go via one of the bays.</xs:documentation>
															</xs:annotation>
															<xs:complexType>
																<xs:sequence>
																	<xs:element name="ID" type="PlaceIDRequestType"/>
																</xs:sequence>
															</xs:complexType>
														</xs:element>
														<xs:element name="GivenName" type="xs:string" minOccurs="0">
															<xs:annotation>
																<xs:documentation>The name of the via to be used in the results. Allows results to be given using the name that the user has selected instead of a name select from NaPTAN (particularly useful with multi-lingual places). Must be  given when a geocode is used as the via. </xs:documentation>
															</xs:annotation>
														</xs:element>
													</xs:sequence>
												</xs:complexType>
											</xs:element>
											<xs:element name="NotVia" minOccurs="0" maxOccurs="unbounded">
												<xs:annotation>
													<xs:documentation>Not via places to avoid.</xs:documentation>
												</xs:annotation>
												<xs:complexType>
													<xs:sequence>
														<xs:element name="Place" maxOccurs="unbounded">
															<xs:annotation>
																<xs:documentation>The resulting journey must not stop at any of these points.</xs:documentation>
															</xs:annotation>
															<xs:complexType>
																<xs:sequence>
																	<xs:element name="ID" type="PlaceIDRequestType"/>
																</xs:sequence>
															</xs:complexType>
														</xs:element>
														<xs:element name="GivenName" type="xs:string" minOccurs="0">
															<xs:annotation>
																<xs:documentation>The name of the not-via to be used in the results. Allows results to be given using the name that the user has selected instead of a name select from NaPTAN (particularly useful with multi-lingual places). Must be  given when a geocode is used as the not via. </xs:documentation>
															</xs:annotation>
														</xs:element>
													</xs:sequence>
												</xs:complexType>
											</xs:element>
										</xs:choice>
										<xs:element name="Destination" type="OriginDestinationRequestType">
											<xs:annotation>
												<xs:documentation>The places used for the destination</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="ArrDep" type="ArriveDepartType">
											<xs:annotation>
												<xs:documentation>Is the request an arrive-before or depart-after request.</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Range">
											<xs:annotation>
												<xs:documentation>The number and extent of journeys to return.</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:complexContent>
													<xs:extension base="RangeType">
														<xs:choice minOccurs="0">
															<xs:element name="EachOrigin" type="xs:boolean"/>
															<xs:element name="EachDestination" type="xs:boolean"/>
														</xs:choice>
													</xs:extension>
												</xs:complexContent>
											</xs:complexType>
										</xs:element>
										<xs:element name="Algorithm" type="AlgorithmType" default="default" minOccurs="0">
											<xs:annotation>
												<xs:documentation>Type of search algorithm (default default)</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="WalkSpeed" type="SpeedType" default="normal" minOccurs="0">
											<xs:annotation>
												<xs:documentation>Prefered walk speed (default normal)</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="MaxWalkDistance" type="xs:int" minOccurs="0"/>
										<xs:element name="InterchangeSpeed" type="SpeedType" default="normal" minOccurs="0">
											<xs:annotation>
												<xs:documentation>Prefered interchange speed (default normal)</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="IncludeIntermediateStops" type="IntermediateStopsRequestType" default="none" minOccurs="0">
											<xs:annotation>
												<xs:documentation>Which intermediate stops be returned (default none)</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="RealTime" type="xs:boolean" default="false" minOccurs="0">
											<xs:annotation>
												<xs:documentation>Should real time information be returned (default false)</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Modes" minOccurs="0">
											<xs:annotation>
												<xs:documentation>@Exclude (optional)
The modes to include/exclude from 
the calculation. If omitted then all 
modes are used.</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Mode" maxOccurs="unbounded">
														<xs:annotation>
															<xs:documentation>@Mode</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:attributeGroup ref="AllModes"/>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
												<xs:attribute name="Exclude" type="xs:boolean" use="optional" default="false"/>
											</xs:complexType>
										</xs:element>
										<xs:element name="Operators" minOccurs="0">
											<xs:annotation>
												<xs:documentation>@Exclude (optional)
The operators to include/exclude 
from the calculation. If omitted then 
all operators are possible.</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:sequence>
													<xs:element name="OperatorCode" type="OperatorCodeType" maxOccurs="unbounded">
														<xs:annotation>
															<xs:documentation>The unique operator code when available.</xs:documentation>
														</xs:annotation>
													</xs:element>
												</xs:sequence>
												<xs:attribute name="Exclude" type="xs:boolean" use="optional" default="false"/>
											</xs:complexType>
										</xs:element>
										<xs:element name="Services" minOccurs="0">
											<xs:annotation>
												<xs:documentation>@Exclude (optional)
The services to include/exclude 
from the calculation. If omitted all 
services are possible</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Service" maxOccurs="unbounded">
														<xs:complexType>
															<xs:sequence>
																<xs:group ref="ServiceGroup"/>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
												<xs:attribute name="Exclude" type="xs:boolean" use="optional" default="false"/>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
									<xs:attribute name="RequestID" type="xs:string" use="required"/>
								</xs:complexType>
							</xs:element>
							<xs:element name="StopTimetableRequest" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>@RequestID
Used to request a composite timetable of all direct services from A to B</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Origin">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Place" type="PlaceIDRequestType" maxOccurs="unbounded">
														<xs:annotation>
															<xs:documentation>A choice of places for the origin.</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="GivenName" type="xs:string" minOccurs="0">
														<xs:annotation>
															<xs:documentation>The name of the origin to be in the timetable description. Allows results to be given using the name that the user has selected instead of a name select from NaPTAN (particularly useful with multi-lingual places). Must be  given when a geocode is used as the origin. </xs:documentation>
														</xs:annotation>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
										<xs:element name="Destination">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Place" type="PlaceIDRequestType" maxOccurs="unbounded">
														<xs:annotation>
															<xs:documentation>A choice of places for the destination.</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="GivenName" type="xs:string" minOccurs="0">
														<xs:annotation>
															<xs:documentation>The name of the destination to be in the timetable description. Allows results to be given using the name that the user has selected instead of a name select from NaPTAN (particularly useful with multi-lingual places). Must be  given when a geocode is used as the destination. </xs:documentation>
														</xs:annotation>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
										<xs:group ref="TimetableRequestParameters"/>
										<xs:element name="Modes" minOccurs="0">
											<xs:annotation>
												<xs:documentation>@Exclude (optional)
The modes to include/exclude from 
the calculation. If omitted then all 
modes are used.</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Mode" maxOccurs="unbounded">
														<xs:annotation>
															<xs:documentation>@Mode</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:attributeGroup ref="AllModes"/>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
												<xs:attribute name="Exclude" type="xs:boolean" use="optional" default="false"/>
											</xs:complexType>
										</xs:element>
										<xs:element name="Operators" minOccurs="0">
											<xs:annotation>
												<xs:documentation>@Exclude (optional)
The operators to include/exclude 
from the calculation. If omitted then 
all operators are possible.</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:sequence>
													<xs:element name="OperatorCode" type="OperatorCodeType" maxOccurs="unbounded">
														<xs:annotation>
															<xs:documentation>The unique operator code when available.</xs:documentation>
														</xs:annotation>
													</xs:element>
												</xs:sequence>
												<xs:attribute name="Exclude" type="xs:boolean" use="optional" default="false"/>
											</xs:complexType>
										</xs:element>
										<xs:element name="Services" minOccurs="0">
											<xs:annotation>
												<xs:documentation>@Exclude (optional)
The services to include/exclude 
from the calculation. If omitted all 
services are possible</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Service" maxOccurs="unbounded">
														<xs:complexType>
															<xs:sequence>
																<xs:group ref="ServiceGroup"/>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
												<xs:attribute name="Exclude" type="xs:boolean" use="optional" default="false"/>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
									<xs:attribute name="RequestID" type="xs:string" use="required"/>
								</xs:complexType>
							</xs:element>
							<xs:element name="ServiceTimetableRequest" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>@RequestID
Used to request service specific timetables (can be composite)</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="TimetableDescriptor" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>The unique description of each service that should be output in the composite timetable.</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:choice>
													<xs:group ref="UniqueServiceGroup"/>
													<xs:sequence>
														<xs:element name="PrivateID" type="xs:string">
															<xs:annotation>
																<xs:documentation>A private service ID that only has meaning to the remote server.</xs:documentation>
															</xs:annotation>
														</xs:element>
														<xs:element name="Direction" type="DirectionType" minOccurs="0">
															<xs:annotation>
																<xs:documentation>Only needed when PrivateID does not give a unique service.</xs:documentation>
															</xs:annotation>
														</xs:element>
													</xs:sequence>
												</xs:choice>
											</xs:complexType>
										</xs:element>
										<xs:group ref="TimetableRequestParameters"/>
									</xs:sequence>
									<xs:attribute name="RequestID" type="xs:string" use="required"/>
								</xs:complexType>
							</xs:element>
							<xs:element name="StopEventsRequest" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>@RequestID
Used to reqeust events at a stop of group of stops.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="NaPTANID" type="NaPTANIDType" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>The stops that events are requested for.</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="StartTime" type="xs:dateTime" minOccurs="0">
											<xs:annotation>
												<xs:documentation>Time and date of first event (default now)</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="ArrDep" type="EventArriveDepartType" minOccurs="0">
											<xs:annotation>
												<xs:documentation>Retrurn arrival, departures or all (default all)</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Range" type="RangeType" minOccurs="0">
											<xs:annotation>
												<xs:documentation>The number and extent of events to return. default 24 hours</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="FirstServiceEventOnly" type="xs:boolean" default="false" minOccurs="0">
											<xs:annotation>
												<xs:documentation>Return only the first event of each service</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="IncludeIntermediateStops" type="IntermediateStopsRequestType" minOccurs="0">
											<xs:annotation>
												<xs:documentation>Which intermediate stops be returned (default none)</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="RealTime" type="xs:boolean" minOccurs="0">
											<xs:annotation>
												<xs:documentation>Should real time information be returned (default false)</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Modes" minOccurs="0">
											<xs:annotation>
												<xs:documentation>@Exclude (optional)
The modes to include/exclude from 
the calculation. If omitted then all 
modes are used.</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Mode" maxOccurs="unbounded">
														<xs:annotation>
															<xs:documentation>@Mode</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:attributeGroup ref="AllModes"/>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
												<xs:attribute name="Exclude" type="xs:boolean" use="optional" default="false"/>
											</xs:complexType>
										</xs:element>
										<xs:element name="Filter" minOccurs="0">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Operators" minOccurs="0">
														<xs:annotation>
															<xs:documentation>@Exclude (optional)
The operators to include/exclude 
from the calculation. </xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:sequence>
																<xs:element name="OperatorCode" type="OperatorCodeType" maxOccurs="unbounded"/>
															</xs:sequence>
															<xs:attribute name="Exclude" type="xs:boolean" use="optional" default="false"/>
														</xs:complexType>
													</xs:element>
													<xs:element name="Origin" minOccurs="0" maxOccurs="unbounded">
														<xs:annotation>
															<xs:documentation>@Actual (optional)
Only return services that have previously passed one to these points (doesn't have to be the service origin unless actual = true).</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:sequence>
																<xs:element name="NaPTANID" type="NaPTANIDType"/>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
													<xs:element name="Destination" minOccurs="0" maxOccurs="unbounded">
														<xs:annotation>
															<xs:documentation>@Actual (optional)
Only return services that will go on to pass one to these points (doesn't have to be the service destination unless actual = true).</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:sequence>
																<xs:element name="NaPTANID" type="NaPTANIDType"/>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
													<xs:element name="Services" minOccurs="0">
														<xs:annotation>
															<xs:documentation>@Exclude (optional)
The services to include/exclude 
from the calculation. If omitted all</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:sequence>
																<xs:element name="Service" maxOccurs="unbounded">
																	<xs:complexType>
																		<xs:group ref="ServiceGroup"/>
																	</xs:complexType>
																</xs:element>
															</xs:sequence>
															<xs:attribute name="Exclude" type="xs:boolean" use="optional" default="false"/>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
									<xs:attribute name="RequestID" type="xs:string" use="required"/>
									<xs:attribute name="IncludeIntermediateStops" type="IntermediateStopsRequestType" use="optional" default="none"/>
								</xs:complexType>
							</xs:element>
							<xs:element name="ServicesRequest" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>@RequestID
Used to search for services and timetable details</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="OperatorCode" type="OperatorCodeType" minOccurs="0"/>
										<xs:element name="ServiceNumber" minOccurs="0">
											<xs:annotation>
												<xs:documentation>@BeginWith (optional)</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:simpleContent>
													<xs:extension base="ServiceNumberType">
														<xs:attribute name="BeginWith" type="xs:boolean" use="optional" default="false"/>
													</xs:extension>
												</xs:simpleContent>
											</xs:complexType>
										</xs:element>
										<xs:element name="Direction" type="DirectionType" minOccurs="0"/>
										<xs:element name="Modes" minOccurs="0">
											<xs:annotation>
												<xs:documentation>@Exclude (optional)
The modes to include/exclude from 
the calculation. If omitted then all 
modes are used.</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Mode" maxOccurs="unbounded">
														<xs:annotation>
															<xs:documentation>@Mode</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:attributeGroup ref="AllModes"/>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
												<xs:attribute name="Exclude" type="xs:boolean" use="optional" default="false"/>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
									<xs:attribute name="RequestID" type="xs:string" use="required"/>
								</xs:complexType>
							</xs:element>
							<xs:element name="OperatorsRequest" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>@RequestID
Used to get a list of supported operators</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Modes" minOccurs="0">
											<xs:annotation>
												<xs:documentation>@Exclude (optional)
The modes to include/exclude from 
the calculation. If omitted then all 
modes are used.</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Mode" maxOccurs="unbounded">
														<xs:annotation>
															<xs:documentation>@Mode</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:attributeGroup ref="AllModes"/>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
												<xs:attribute name="Exclude" type="xs:boolean" use="optional" default="false"/>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
									<xs:attribute name="RequestID" type="xs:string" use="required"/>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
						<xs:attribute name="Language" type="LanguageType" use="optional" default="EN"/>
						<xs:attribute name="SuppressNames" type="xs:boolean" use="optional" default="false"/>
					</xs:complexType>
				</xs:element>
				<xs:element name="Response">
					<xs:annotation>
						<xs:documentation>@DataDate
@DataName (optional)</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="Message" type="MessageType" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>@Class   
@Subclass (optional)
Used to give error messages when no results are given. e.g. Request unknown</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="PointsResponse" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>@RequestID
Contains the points for the
specified RequestID.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Message" type="MessageType" minOccurs="0" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>@Class  
@Subclass (optional)
Information about the points returned. e.g. Error - ID unknown</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Points" minOccurs="0">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Point" maxOccurs="unbounded">
														<xs:annotation>
															<xs:documentation>@TimingInformationPoint (optional)
@LocalityCentre (optional)</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:complexContent>
																<xs:extension base="ReturnedPlaceType">
																	<xs:sequence>
																		<xs:element name="Distance" type="xs:int" minOccurs="0">
																			<xs:annotation>
																				<xs:documentation>If the reqeust was being made using a coordinate and  the distance to the stop has been calculated using a better method than crow-flies then this is the calculated distance to the point.</xs:documentation>
																			</xs:annotation>
																		</xs:element>
																	</xs:sequence>
																	<xs:attribute name="LocalityCentre" type="xs:boolean" use="optional"/>
																</xs:extension>
															</xs:complexContent>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
									<xs:attribute name="RequestID" type="xs:string" use="required"/>
								</xs:complexType>
							</xs:element>
							<xs:element name="JourneysResponse" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>@RequestID
Contains the journeys for the specified request ID.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Message" type="MessageType" minOccurs="0" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>@Class   
@Subclass (optional)
Information about the journeys returned. e.g. OK - no journeys found</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Journeys" minOccurs="0">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Journey" maxOccurs="unbounded">
														<xs:complexType>
															<xs:sequence>
																<xs:element name="Leg" maxOccurs="unbounded">
																	<xs:annotation>
																		<xs:documentation>The legs that make up the complete journey</xs:documentation>
																	</xs:annotation>
																	<xs:complexType>
																		<xs:choice>
																			<xs:element name="TimedLeg">
																				<xs:annotation>
																					<xs:documentation>@Mode
A leg that runs to a timetabled time.</xs:documentation>
																				</xs:annotation>
																				<xs:complexType>
																					<xs:complexContent>
																						<xs:extension base="TimedLegType"/>
																					</xs:complexContent>
																				</xs:complexType>
																			</xs:element>
																			<xs:element name="FrequencyLeg">
																				<xs:annotation>
																					<xs:documentation>@Mode
A leg that runs to a given frequency.</xs:documentation>
																				</xs:annotation>
																				<xs:complexType>
																					<xs:complexContent>
																						<xs:extension base="FrequencyLegType">
																							<xs:attributeGroup ref="VehicleModes"/>
																						</xs:extension>
																					</xs:complexContent>
																				</xs:complexType>
																			</xs:element>
																			<xs:element name="ContinuousLeg">
																				<xs:annotation>
																					<xs:documentation>@Mode
A leg that doesn't run to any type of schedule e.g. walking, cycling</xs:documentation>
																				</xs:annotation>
																				<xs:complexType>
																					<xs:complexContent>
																						<xs:extension base="ContinuousLegType"/>
																					</xs:complexContent>
																				</xs:complexType>
																			</xs:element>
																		</xs:choice>
																	</xs:complexType>
																</xs:element>
																<xs:element name="Fares" minOccurs="0">
																	<xs:annotation>
																		<xs:documentation>Place holder for future development of fares. Defined at the journey level to accommodate fares that cover more than one leg of the journey.</xs:documentation>
																	</xs:annotation>
																	<xs:complexType>
																		<xs:sequence>
																			<xs:any minOccurs="0" maxOccurs="unbounded"/>
																		</xs:sequence>
																	</xs:complexType>
																</xs:element>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
									<xs:attribute name="RequestID" type="xs:string" use="required">
										<xs:annotation>
											<xs:documentation>dfgdfgdfg</xs:documentation>
										</xs:annotation>
									</xs:attribute>
								</xs:complexType>
							</xs:element>
							<xs:element name="TimetableResponse" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>@RequestID
Contains the timetable for the specified RequestID.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Message" type="MessageType" minOccurs="0" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>@Class   
@Subclass (optional)
Information about the timetable returned. </xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Timetable" minOccurs="0">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Description" type="xs:string">
														<xs:annotation>
															<xs:documentation>The title to use for the timetable. For stop to stop timetables it should include the stop names e.g. London to Edinburgh</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="FirstDate" type="xs:date">
														<xs:annotation>
															<xs:documentation>The first date this timetable has been generated for</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="Days" type="DaysOfOperationType">
														<xs:annotation>
															<xs:documentation>The days that this timetable has been generated for.</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:choice>
														<xs:element name="LastDate" type="xs:date">
															<xs:annotation>
																<xs:documentation>The last date this timetable has been generated for.</xs:documentation>
															</xs:annotation>
														</xs:element>
														<xs:element name="OpenEnded" type="xs:boolean">
															<xs:annotation>
																<xs:documentation>Should only be used for pre-generated timetables, timetables generated on the fly should have a LastDate.</xs:documentation>
															</xs:annotation>
														</xs:element>
													</xs:choice>
													<xs:element name="StopColumn">
														<xs:annotation>
															<xs:documentation>The stops that are shown in the first column of the timetable. The size of this list defines the number of rows. The stops must be in the order that they are to be displayed in. The same stop can be repeated (circular routes, and  composite timetables with different stopping patterns).</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:sequence>
																<xs:element name="Stop" maxOccurs="unbounded">
																	<xs:annotation>
																		<xs:documentation>@Activity
@StopType</xs:documentation>
																	</xs:annotation>
																	<xs:complexType>
																		<xs:complexContent>
																			<xs:extension base="ReturnedPlaceType">
																				<xs:attribute name="Activity" type="RowActivityType" use="optional" default="mixed"/>
																				<xs:attribute name="StopType" type="StopTypeType" use="optional" default="intermediate"/>
																			</xs:extension>
																		</xs:complexContent>
																	</xs:complexType>
																</xs:element>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
													<xs:element name="TimeColumn" maxOccurs="unbounded">
														<xs:annotation>
															<xs:documentation>@Num
The columns on the timetable. The must be in the order they are to be displayed.</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:sequence>
																<xs:element name="Header">
																	<xs:annotation>
																		<xs:documentation>
Contains all details of the column. Service details are included her to support composite timetables e.g. stop to stop timetables</xs:documentation>
																	</xs:annotation>
																	<xs:complexType>
																		<xs:sequence>
																			<xs:element name="ServiceRef" type="xs:int">
																				<xs:annotation>
																					<xs:documentation>Reference to service details for this column</xs:documentation>
																				</xs:annotation>
																			</xs:element>
																			<xs:element name="DaysOfOperation" type="DaysOfOperationType" minOccurs="0">
																				<xs:annotation>
																					<xs:documentation>Days of operation if different to those specified in the service details.</xs:documentation>
																				</xs:annotation>
																			</xs:element>
																			<xs:choice>
																				<xs:element name="NoteAbbreviation" type="xs:string" minOccurs="0" maxOccurs="unbounded">
																					<xs:annotation>
																						<xs:documentation>The abbreviation of a note which is defined later in the schema.</xs:documentation>
																					</xs:annotation>
																				</xs:element>
																				<xs:element name="Note" type="xs:string" minOccurs="0" maxOccurs="unbounded">
																					<xs:annotation>
																						<xs:documentation>Notes if abbreviations are not being used.</xs:documentation>
																					</xs:annotation>
																				</xs:element>
																			</xs:choice>
																		</xs:sequence>
																	</xs:complexType>
																</xs:element>
																<xs:choice>
																	<xs:choice maxOccurs="unbounded">
																		<xs:element name="Time">
																			<xs:annotation>
																				<xs:documentation>@TimingInformationPoint (optional)
@Activity (optional)
Used for a column of times.  Must be one for each stop.
Activity only needed if row Activity is Mixed.</xs:documentation>
																			</xs:annotation>
																			<xs:complexType>
																				<xs:simpleContent>
																					<xs:extension base="xs:time">
																						<xs:attribute name="TimingInformationPoint" type="xs:boolean" use="optional"/>
																						<xs:attribute name="Activity" type="StopActivityType" use="optional" default="pickUpAndSetDown"/>
																					</xs:extension>
																				</xs:simpleContent>
																			</xs:complexType>
																		</xs:element>
																		<xs:element name="NoTime" type="xs:string"/>
																	</xs:choice>
																	<xs:element name="Label" type="xs:string" maxOccurs="unbounded">
																		<xs:annotation>
																			<xs:documentation>Used for a column that includes text only e.g. frequency column. Must be a label for every stop.</xs:documentation>
																		</xs:annotation>
																	</xs:element>
																</xs:choice>
															</xs:sequence>
															<xs:attribute name="Num" type="xs:int" use="required"/>
														</xs:complexType>
													</xs:element>
													<xs:element name="Service" maxOccurs="unbounded">
														<xs:annotation>
															<xs:documentation>@Ref
@Mode
Details for the service references used in the columns</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:group ref="ServiceResponseGroup"/>
															<xs:attribute name="Ref" type="xs:int" use="required"/>
															<xs:attributeGroup ref="VehicleModes"/>
														</xs:complexType>
													</xs:element>
													<xs:element name="Notes" minOccurs="0" maxOccurs="unbounded">
														<xs:annotation>
															<xs:documentation>General timetable notes or the notes to go with abbreviations used in the columns.</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:sequence>
																<xs:element name="Abbreviation" minOccurs="0">
																	<xs:annotation>
																		<xs:documentation>If left blank then the note represents a general timetable note.</xs:documentation>
																	</xs:annotation>
																</xs:element>
																<xs:element name="Note">
																	<xs:annotation>
																		<xs:documentation>The note that goes with the abbreviation.</xs:documentation>
																	</xs:annotation>
																</xs:element>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
									<xs:attribute name="RequestID" type="xs:string" use="required"/>
								</xs:complexType>
							</xs:element>
							<xs:element name="StopEventsResponse" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>@RequestID
Contains the stop events for the specified RequestID</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Message" type="MessageType" minOccurs="0" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>@Class   
@Subclass (optional)
Information about the events returned. </xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Events" minOccurs="0">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Event" maxOccurs="unbounded">
														<xs:complexType>
															<xs:sequence>
																<xs:element name="Origin" minOccurs="0">
																	<xs:annotation>
																		<xs:documentation>@TimingInformationPoint
The origin of this vehicle. Only omitted if the event occurs at the origin.</xs:documentation>
																	</xs:annotation>
																	<xs:complexType>
																		<xs:complexContent>
																			<xs:extension base="ReturnedPlaceType">
																				<xs:sequence>
																					<xs:element name="TimetabledDepartureTime" type="xs:dateTime" minOccurs="0">
																						<xs:annotation>
																							<xs:documentation>The timetabled departure time from the origin. If frequency based service then leave out - frequency is defined in stop below.</xs:documentation>
																						</xs:annotation>
																					</xs:element>
																					<xs:group ref="RTDepartureTimeGroup"/>
																				</xs:sequence>
																			</xs:extension>
																		</xs:complexContent>
																	</xs:complexType>
																</xs:element>
																<xs:element name="PreviousIntermediate" minOccurs="0" maxOccurs="unbounded">
																	<xs:annotation>
																		<xs:documentation>@TimingInformationPoint
The stops between the origin and the requested stop. Only returned if requested.</xs:documentation>
																	</xs:annotation>
																	<xs:complexType>
																		<xs:complexContent>
																			<xs:extension base="ReturnedPlaceType">
																				<xs:sequence>
																					<xs:group ref="IntermediateTimeGroup"/>
																				</xs:sequence>
																			</xs:extension>
																		</xs:complexContent>
																	</xs:complexType>
																</xs:element>
																<xs:element name="Stop">
																	<xs:annotation>
																		<xs:documentation>@TimingInformationPoint
The stop where the event occurs.</xs:documentation>
																	</xs:annotation>
																	<xs:complexType>
																		<xs:complexContent>
																			<xs:extension base="ReturnedPlaceType">
																				<xs:sequence>
																					<xs:group ref="EventTimeGroup"/>
																				</xs:sequence>
																			</xs:extension>
																		</xs:complexContent>
																	</xs:complexType>
																</xs:element>
																<xs:element name="OnwardIntermediate" minOccurs="0" maxOccurs="unbounded">
																	<xs:annotation>
																		<xs:documentation>@TimingInformationPoint
The stops between the requested stop and the destination. Only returned if requested.</xs:documentation>
																	</xs:annotation>
																	<xs:complexType>
																		<xs:complexContent>
																			<xs:extension base="ReturnedPlaceType">
																				<xs:sequence>
																					<xs:group ref="IntermediateTimeGroup"/>
																				</xs:sequence>
																			</xs:extension>
																		</xs:complexContent>
																	</xs:complexType>
																</xs:element>
																<xs:element name="Destination" minOccurs="0">
																	<xs:annotation>
																		<xs:documentation>@TimingInformationPoint
The destination of this vehcile. Only omitted if the event occurs at the destination.</xs:documentation>
																	</xs:annotation>
																	<xs:complexType>
																		<xs:complexContent>
																			<xs:extension base="ReturnedPlaceType">
																				<xs:sequence>
																					<xs:element name="TimetabledArrivalTime" type="xs:dateTime" minOccurs="0">
																						<xs:annotation>
																							<xs:documentation>The timetabled arrival time at the destination.</xs:documentation>
																						</xs:annotation>
																					</xs:element>
																					<xs:group ref="RTArrivalTimeGroup"/>
																				</xs:sequence>
																			</xs:extension>
																		</xs:complexContent>
																	</xs:complexType>
																</xs:element>
																<xs:element name="ServiceRef" type="xs:int">
																	<xs:annotation>
																		<xs:documentation>Reference to service details for this event</xs:documentation>
																	</xs:annotation>
																</xs:element>
															</xs:sequence>
														</xs:complexType>
													</xs:element>
													<xs:element name="Service" maxOccurs="unbounded">
														<xs:annotation>
															<xs:documentation>@Ref
@Mode</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:group ref="ServiceResponseGroup"/>
															<xs:attributeGroup ref="VehicleModes"/>
															<xs:attribute name="Ref" type="xs:int" use="required"/>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
									<xs:attribute name="RequestID" type="xs:string" use="required"/>
								</xs:complexType>
							</xs:element>
							<xs:element name="ServicesResponse" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>@RequestID
Contains the services for the specified RequestID.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Message" type="MessageType" minOccurs="0" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>@Class  
@Subclass (optional)
Information about the points returned. e.g. Error - ID unknown</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Services" minOccurs="0">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Service" maxOccurs="unbounded">
														<xs:annotation>
															<xs:documentation>@Mode</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:sequence>
																<xs:group ref="ServiceResponseGroup"/>
															</xs:sequence>
															<xs:attributeGroup ref="VehicleModes"/>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
									<xs:attribute name="RequestID" type="xs:string" use="required"/>
								</xs:complexType>
							</xs:element>
							<xs:element name="OperatorsResponse" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>@RequestID
Contains the operators for the specified RequestID.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Message" type="MessageType" minOccurs="0" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>@Class  
@Subclass (optional)
Information about the operators returned.</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Operators" minOccurs="0">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Operator" maxOccurs="unbounded">
														<xs:annotation>
															<xs:documentation>@Mode</xs:documentation>
														</xs:annotation>
														<xs:complexType>
															<xs:sequence>
																<xs:element name="Code" type="OperatorCodeType"/>
																<xs:element name="Name" type="xs:string">
																	<xs:annotation>
																		<xs:documentation>The customer facing name of the operator.</xs:documentation>
																	</xs:annotation>
																</xs:element>
															</xs:sequence>
															<xs:attributeGroup ref="VehicleModes"/>
														</xs:complexType>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
									<xs:attribute name="RequestID" type="xs:string" use="required"/>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
						<xs:attribute name="DataDate" type="xs:date" use="required">
							<xs:annotation>
								<xs:documentation>Date of when the source database was last updated</xs:documentation>
							</xs:annotation>
						</xs:attribute>
						<xs:attribute name="DataName" type="xs:string" use="optional">
							<xs:annotation>
								<xs:documentation>Optional name of the source database</xs:documentation>
							</xs:annotation>
						</xs:attribute>
					</xs:complexType>
				</xs:element>
			</xs:choice>
			<xs:attribute name="Version" type="xs:string" use="required"/>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="GeocodeType">
		<xs:annotation>
			<xs:documentation>Co-ordinate type that supports easting and northing</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Easting" type="xs:int"/>
			<xs:element name="Northing" type="xs:int"/>
		</xs:sequence>
		<xs:attribute name="Precision" type="PrecisionType" use="optional" default="1km"/>
	</xs:complexType>
	<xs:complexType name="ReturnedPlaceType">
		<xs:annotation>
			<xs:documentation>@TimingInformationPoint (optional)
Represents a place in a response.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Name" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>A meaningful name for the place that will be given to the end user. 
If a GivenName was input in the request it should be returned here.
This will usually contain more than the NaPTAN name e.g. Locality and NaPTAN name - Epsom: High Street</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:choice>
				<xs:sequence>
					<xs:element name="NaPTANID" type="NaPTANIDType">
						<xs:annotation>
							<xs:documentation>ID of a NaPTAN node</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="Geocode" type="GeocodeType" minOccurs="0">
						<xs:annotation>
							<xs:documentation>@Precision (optional)
The coordinate of the NaPTAN stop - can be used for redimentary map displays.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
				<xs:element name="Geocode" type="GeocodeType">
					<xs:annotation>
						<xs:documentation>@Precision (optional)</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:choice>
			<xs:element name="Bay" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Additional bay information that is not implied by a NaPTAN ID e.g. rail platform.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="TimingInformationPoint" type="xs:boolean" use="optional"/>
	</xs:complexType>
	<xs:complexType name="MessageType">
		<xs:annotation>
			<xs:documentation>@Class
@Subclass (optional)
A message. Represents warnings as well as errors</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:extension base="xs:string">
				<xs:attribute name="Class" type="xs:int" use="required"/>
				<xs:attribute name="Subclass" type="xs:int" use="optional" default="0"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:attributeGroup name="TimeAttributes">
		<xs:attribute name="TimingInformationPoint" type="xs:boolean" use="optional"/>
	</xs:attributeGroup>
	<xs:complexType name="DaysOfOperationType">
		<xs:sequence>
			<xs:choice>
				<xs:sequence>
					<xs:element name="Monday" type="xs:boolean" minOccurs="0"/>
					<xs:element name="Tuesday" type="xs:boolean" minOccurs="0"/>
					<xs:element name="Wednesday" type="xs:boolean" minOccurs="0"/>
					<xs:element name="Thursday" type="xs:boolean" minOccurs="0"/>
					<xs:element name="Friday" type="xs:boolean" minOccurs="0"/>
					<xs:element name="Saturday" type="xs:boolean" minOccurs="0"/>
				</xs:sequence>
				<xs:sequence>
					<xs:element name="MondayToFriday" type="xs:boolean" minOccurs="0"/>
				</xs:sequence>
				<xs:element name="MondayToSaturday" type="xs:boolean" minOccurs="0"/>
			</xs:choice>
			<xs:element name="Sunday" type="xs:boolean" minOccurs="0"/>
			<xs:choice>
				<xs:element name="BankHoliday" type="xs:boolean" minOccurs="0"/>
				<xs:element name="NotBankHoliday" type="xs:boolean" minOccurs="0"/>
			</xs:choice>
			<xs:choice>
				<xs:element name="SchoolHoliday" type="xs:boolean" minOccurs="0"/>
				<xs:element name="NotSchoolHoliday" type="xs:boolean" minOccurs="0"/>
			</xs:choice>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="RangeType">
		<xs:choice>
			<xs:element name="Sequence" type="xs:int">
				<xs:annotation>
					<xs:documentation>The number of journeys to return after the departure time or before the arrival time.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Interval" type="xs:time">
				<xs:annotation>
					<xs:documentation>An interval after a departure time or before an arrival time for which journeys should be returned  (00:00:00 represents 24 hours)</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="LimitedInterval">
				<xs:annotation>
					<xs:documentation>Used to limit the number of journeys returned for an interval. e.g. Get the first 3 journeys in the next 6 hours. An example use of this is to get the first 3 journeys during an off-peak period i.e. stop the search before the peak period starts.
</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Max" type="xs:int">
							<xs:annotation>
								<xs:documentation>Maximum number of journeys</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="Interval" type="xs:time">
							<xs:annotation>
								<xs:documentation>An interval after a departure time or before an arrival time for which journeys should be returned (00:00:00 represents 24 hours)</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="Min" minOccurs="0">
							<xs:annotation>
								<xs:documentation>Minimum number of journeys to return. If specified this will extend the interval if not enough journeys have been found.</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="MaxInterval" minOccurs="0">
							<xs:annotation>
								<xs:documentation>The maximum interval to search when extending the interval to find a minimum number of journeys to returns (default 24 hours)</xs:documentation>
							</xs:annotation>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="OriginDestinationRequestType">
		<xs:sequence>
			<xs:element name="Place" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>The individual places that make up the origin or destination. In most cases these are a choice of start or end places (see Range).</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:sequence>
						<xs:element name="ID" type="PlaceIDRequestType"/>
						<xs:element name="JourneyTime" type="xs:dateTime" minOccurs="0">
							<xs:annotation>
								<xs:documentation>The arrive or depart time and date for this place</xs:documentation>
							</xs:annotation>
						</xs:element>
						<xs:element name="Seed" minOccurs="0">
							<xs:annotation>
								<xs:documentation>Details of the calculation so far from the origin or destination. 
Can be used to implement the maxChanges algorithm, to allow the journey to continue on the same vehicle, etc.</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:sequence>
									<xs:element name="StartTime" type="xs:dateTime" minOccurs="0">
										<xs:annotation>
											<xs:documentation>For depart after requests this is the departure time at the origin. 
For arrive by requests this is the arrival time at the destination.</xs:documentation>
										</xs:annotation>
									</xs:element>
									<xs:element name="NumChanges" type="xs:int" minOccurs="0"/>
									<xs:element name="Service" minOccurs="0">
										<xs:annotation>
											<xs:documentation>The last service used in the calculation. Used in conjunction with JourneyTime to allow the same vehicle to be used.</xs:documentation>
										</xs:annotation>
										<xs:complexType>
											<xs:group ref="UniqueServiceGroup"/>
										</xs:complexType>
									</xs:element>
									<xs:element name="WalkDistance" type="xs:int" minOccurs="0">
										<xs:annotation>
											<xs:documentation>The walk distance so far in metres.</xs:documentation>
										</xs:annotation>
									</xs:element>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="GivenName" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>The name of the origin/destination to be used in the results. Allows results to be given using the name that the user has selected instead of a name select from NaPTAN (particularly useful with multi-lingual places). Must be  given when a geocode is used as the origin/destination. </xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:attributeGroup name="VehicleModes">
		<xs:attribute name="Mode" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="air"/>
					<xs:enumeration value="bus"/>
					<xs:enumeration value="coach"/>
					<xs:enumeration value="ferry"/>
					<xs:enumeration value="metro"/>
					<xs:enumeration value="rail"/>
					<xs:enumeration value="tram"/>
					<xs:enumeration value="underground"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:simpleType name="SpeedType">
		<xs:restriction base="xs:NMTOKEN">
			<xs:enumeration value="slower3"/>
			<xs:enumeration value="slower2"/>
			<xs:enumeration value="slower1"/>
			<xs:enumeration value="normal"/>
			<xs:enumeration value="faster1"/>
			<xs:enumeration value="faster2"/>
			<xs:enumeration value="faster3"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="OperatorCodeType">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	<xs:simpleType name="ServiceNumberType">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	<xs:simpleType name="RegionType">
		<xs:annotation>
			<xs:documentation>Short code for region e.g. S (Scotland) SE (South East)</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:maxLength value="2"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="TimedLegType" abstract="true">
		<xs:annotation>
			<xs:documentation>@mode</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="ServiceOrigin" minOccurs="0">
				<xs:annotation>
					<xs:documentation>@TimingInformationPoint (optional)
The origin place.
Only omitted if the board place is the origin.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="ReturnedPlaceType">
							<xs:group ref="OriginTimeGroup"/>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="IntermediateA" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>@TimingInformationPoint (optional)
Returned if IncludeIntermediateStops is set to 'all'</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="ReturnedPlaceType">
							<xs:group ref="IntermediateTimeGroup"/>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="LegBoard">
				<xs:annotation>
					<xs:documentation>@TimingInformationPoint (optional)</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="ReturnedPlaceType">
							<xs:sequence>
								<xs:element name="Pass" type="xs:boolean" minOccurs="0">
									<xs:annotation>
										<xs:documentation>true if this is the requested via point</xs:documentation>
									</xs:annotation>
								</xs:element>
								<xs:element name="InterchangeTime" type="xs:time" minOccurs="0"/>
								<xs:group ref="BoardTimeGroup"/>
							</xs:sequence>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="IntermediateB" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>@TimingInformationPoint (optional)
Returned if IncludeIntermediateStops is set to 'all' or 'leg', or this is the via point i.e. pass = true</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="ReturnedPlaceType">
							<xs:sequence>
								<xs:element name="Pass" type="xs:boolean" minOccurs="0">
									<xs:annotation>
										<xs:documentation>true if this is the requested via point</xs:documentation>
									</xs:annotation>
								</xs:element>
								<xs:group ref="IntermediateTimeGroup"/>
							</xs:sequence>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="LegAlight">
				<xs:annotation>
					<xs:documentation>@TimingInformationPoint (optional)
</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="ReturnedPlaceType">
							<xs:sequence>
								<xs:element name="Pass" type="xs:boolean" minOccurs="0">
									<xs:annotation>
										<xs:documentation>true if this is the requested via point</xs:documentation>
									</xs:annotation>
								</xs:element>
								<xs:element name="InterchangeTime" type="xs:time" minOccurs="0"/>
								<xs:group ref="AlightTimeGroup"/>
							</xs:sequence>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="IntermediateC" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>@TimingInformationPoint (optional) Returned if IncludeIntermediateStops is set to 'all'</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="ReturnedPlaceType">
							<xs:group ref="IntermediateTimeGroup"/>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="ServiceDestination" minOccurs="0">
				<xs:annotation>
					<xs:documentation>@TimingInformationPoint (optional)
The destination place
Only omitted if the alight place is the destination.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="ReturnedPlaceType">
							<xs:group ref="DestinationTimeGroup"/>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="Notes" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Any notes about the vehicle or walk.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:group ref="ServiceResponseGroup"/>
		</xs:sequence>
		<xs:attributeGroup ref="VehicleModes"/>
	</xs:complexType>
	<xs:complexType name="FrequencyLegType">
		<xs:sequence>
			<xs:element name="ServiceOrigin" minOccurs="0">
				<xs:annotation>
					<xs:documentation>@TimingInformationPoint (optional)
The origin place.
Only omitted if the board place is the origin.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="ReturnedPlaceType">
							<xs:sequence>
								<xs:group ref="RTDepartureTimeGroup"/>
							</xs:sequence>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="IntermediateA" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>@TimingInformationPoint (optional) Returned if IncludeIntermediateStops is set to 'all'</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="ReturnedPlaceType">
							<xs:sequence>
								<xs:group ref="RTArrivalTimeGroup"/>
								<xs:group ref="RTDepartureTimeGroup"/>
							</xs:sequence>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="LegBoard">
				<xs:annotation>
					<xs:documentation>@TimingInformationPoint (optional)
</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="ReturnedPlaceType">
							<xs:sequence>
								<xs:element name="Pass" type="xs:boolean" minOccurs="0">
									<xs:annotation>
										<xs:documentation>true if this is the requested via point</xs:documentation>
									</xs:annotation>
								</xs:element>
								<xs:group ref="RTArrivalTimeGroup"/>
								<xs:group ref="RTDepartureTimeGroup"/>
							</xs:sequence>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="IntermediateB" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>@TimingInformationPoint (optional) Returned if IncludeIntermediateStops is set to 'all' or 'leg', or this is the via point i.e. pass = true</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="ReturnedPlaceType">
							<xs:sequence>
								<xs:element name="Pass" type="xs:boolean" minOccurs="0">
									<xs:annotation>
										<xs:documentation>true if this is the requested via point</xs:documentation>
									</xs:annotation>
								</xs:element>
								<xs:group ref="RTArrivalTimeGroup"/>
								<xs:group ref="RTDepartureTimeGroup"/>
							</xs:sequence>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="LegAlight">
				<xs:annotation>
					<xs:documentation>@TimingInformationPoint (optional)
</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="ReturnedPlaceType">
							<xs:sequence>
								<xs:element name="Pass" type="xs:boolean" minOccurs="0">
									<xs:annotation>
										<xs:documentation>true if this is the requested via point</xs:documentation>
									</xs:annotation>
								</xs:element>
								<xs:group ref="RTArrivalTimeGroup"/>
								<xs:group ref="RTDepartureTimeGroup"/>
							</xs:sequence>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="IntermediateC" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>@TimingInformationPoint (optional) Returned if IncludeIntermediateStops is set to 'all'</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="ReturnedPlaceType">
							<xs:sequence>
								<xs:group ref="RTArrivalTimeGroup"/>
								<xs:group ref="RTDepartureTimeGroup"/>
							</xs:sequence>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="ServiceDestination" minOccurs="0">
				<xs:annotation>
					<xs:documentation>@TimingInformationPoint (optional)
The destination place
Only omitted if the alight place is the destination.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="ReturnedPlaceType">
							<xs:sequence>
								<xs:group ref="RTArrivalTimeGroup"/>
							</xs:sequence>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="Notes" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Any notes about the vehicle or walk.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:group ref="ServiceResponseGroup"/>
			<xs:sequence>
				<xs:element name="OriginDestinationTimes" minOccurs="0">
					<xs:annotation>
						<xs:documentation>Times for the complete trip of the vehicle</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:group ref="FrequencyTimeGroup"/>
					</xs:complexType>
				</xs:element>
				<xs:element name="BoardAlightTimes">
					<xs:annotation>
						<xs:documentation>Times for the part of the journey the traveller will make.</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:group ref="FrequencyTimeGroup"/>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:sequence>
	</xs:complexType>
	<xs:group name="TimeWindowGroup">
		<xs:annotation>
			<xs:documentation>The window of opportunity that the traveller has to perform this leg of the journey.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="WindowStartTime" type="xs:dateTime" minOccurs="0"/>
			<xs:element name="WindowEndTime" type="xs:dateTime" minOccurs="0"/>
		</xs:sequence>
	</xs:group>
	<xs:group name="DurationWindowGroup">
		<xs:sequence>
			<xs:group ref="TimeWindowGroup"/>
			<xs:element name="TypicalDuration" type="xs:duration">
				<xs:annotation>
					<xs:documentation>The typical duration of this leg of the journey.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:group>
	<xs:group name="FrequencyTimeGroup">
		<xs:sequence>
			<xs:group ref="DurationWindowGroup"/>
			<xs:element name="MaxDuration" type="xs:duration">
				<xs:annotation>
					<xs:documentation>The maximum duration for this leg of the journey.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:group ref="FrequencyGroup"/>
		</xs:sequence>
	</xs:group>
	<xs:complexType name="ContinuousLegType">
		<xs:annotation>
			<xs:documentation>LegBoard and LegAlight should be used to describe walk, etc. ServiceOrigin and ServiceDestination should only be used for DRT.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="ServiceOrigin" minOccurs="0">
				<xs:annotation>
					<xs:documentation>@TimingInformationPoint (optional)
The origin place.
Only omitted if the board place is the origin.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="ReturnedPlaceType">
							<xs:sequence>
								<xs:group ref="RTDepartureTimeGroup"/>
							</xs:sequence>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="IntermediateA" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>@TimingInformationPoint (optional) Returned if IncludeIntermediateStops is set to 'all'</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="ReturnedPlaceType">
							<xs:sequence>
								<xs:group ref="RTArrivalTimeGroup"/>
								<xs:group ref="RTDepartureTimeGroup"/>
							</xs:sequence>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="LegBoard">
				<xs:annotation>
					<xs:documentation>@TimingInformationPoint (optional)
</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="ReturnedPlaceType">
							<xs:sequence>
								<xs:element name="Pass" type="xs:boolean" minOccurs="0">
									<xs:annotation>
										<xs:documentation>true if this is the requested via point</xs:documentation>
									</xs:annotation>
								</xs:element>
								<xs:group ref="RTArrivalTimeGroup"/>
								<xs:group ref="RTDepartureTimeGroup"/>
							</xs:sequence>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="IntermediateB" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>@TimingInformationPoint (optional) Returned if IncludeIntermediateStops is set to 'all' or 'leg', or if this is the via point i.e. pass = true.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="ReturnedPlaceType">
							<xs:sequence>
								<xs:element name="Pass" type="xs:boolean" minOccurs="0">
									<xs:annotation>
										<xs:documentation>true if this is the requested via point</xs:documentation>
									</xs:annotation>
								</xs:element>
								<xs:group ref="RTArrivalTimeGroup"/>
								<xs:group ref="RTDepartureTimeGroup"/>
							</xs:sequence>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="LegAlight">
				<xs:annotation>
					<xs:documentation>@TimingInformationPoint (optional)
</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="ReturnedPlaceType">
							<xs:sequence>
								<xs:element name="Pass" type="xs:boolean" minOccurs="0">
									<xs:annotation>
										<xs:documentation>true if this is the requested via point</xs:documentation>
									</xs:annotation>
								</xs:element>
								<xs:group ref="RTArrivalTimeGroup"/>
								<xs:group ref="RTDepartureTimeGroup"/>
							</xs:sequence>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="IntermediateC" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>@TimingInformationPoint (optional) Returned if IncludeIntermediateStops is set to 'all'</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="ReturnedPlaceType">
							<xs:sequence>
								<xs:group ref="RTArrivalTimeGroup"/>
								<xs:group ref="RTDepartureTimeGroup"/>
							</xs:sequence>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="ServiceDestination" minOccurs="0">
				<xs:annotation>
					<xs:documentation>@TimingInformationPoint (optional)
The destination place
Only omitted if the alight place is the destination.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="ReturnedPlaceType">
							<xs:sequence>
								<xs:group ref="RTArrivalTimeGroup"/>
							</xs:sequence>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="Notes" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Any notes about the vehicle or walk.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="OperatorCode" type="OperatorCodeType" minOccurs="0"/>
			<xs:element name="ServiceNumber" type="ServiceNumberType" minOccurs="0"/>
			<xs:element name="Direction" type="DirectionType" minOccurs="0"/>
			<xs:group ref="ServiceResponseExtrasGroup"/>
			<xs:group ref="DurationWindowGroup"/>
		</xs:sequence>
		<xs:attributeGroup ref="ContinuousModes"/>
	</xs:complexType>
	<xs:attributeGroup name="AllModes">
		<xs:attribute name="Mode" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="air"/>
					<xs:enumeration value="bus"/>
					<xs:enumeration value="car"/>
					<xs:enumeration value="coach"/>
					<xs:enumeration value="cycle"/>
					<xs:enumeration value="drt"/>
					<xs:enumeration value="ferry"/>
					<xs:enumeration value="metro"/>
					<xs:enumeration value="rail"/>
					<xs:enumeration value="taxi"/>
					<xs:enumeration value="tram"/>
					<xs:enumeration value="underground"/>
					<xs:enumeration value="walk"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="ContinuousModes">
		<xs:attribute name="Mode" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:NMTOKEN">
					<xs:enumeration value="walk"/>
					<xs:enumeration value="car"/>
					<xs:enumeration value="taxi"/>
					<xs:enumeration value="cycle"/>
					<xs:enumeration value="drt"/>
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:complexType name="PlaceIDRequestType">
		<xs:choice>
			<xs:element name="NaPTANID" type="NaPTANIDType">
				<xs:annotation>
					<xs:documentation>ID of a NaPTAN node</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Geocode" type="GeocodeType">
				<xs:annotation>
					<xs:documentation>@Precision</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="LocalityID" type="LocalityIDType"/>
		</xs:choice>
	</xs:complexType>
	<xs:group name="TimetableRequestParameters">
		<xs:sequence>
			<xs:element name="Date" type="xs:date">
				<xs:annotation>
					<xs:documentation>The date that the timetable is to be generated for.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Generic" type="xs:boolean">
				<xs:annotation>
					<xs:documentation>If true then the timetable that spans the specified date is returned. If false then the timetable for only the specified day is returned.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="TimingInformationPointsOnly" type="xs:boolean" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Only include timing information points in the response.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="EarliestDepartTime" type="xs:time" minOccurs="0">
				<xs:annotation>
					<xs:documentation>The earliest departure time to include in the output</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="LatestDepartTime" type="xs:time" minOccurs="0">
				<xs:annotation>
					<xs:documentation>The latest departure time to include in the output.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="FirstColumn" type="xs:int" minOccurs="0">
				<xs:annotation>
					<xs:documentation>The number of the first column to return.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="MaxColumns" type="xs:int" minOccurs="0">
				<xs:annotation>
					<xs:documentation>The maximum number of columns to return.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:group>
	<xs:complexType name="TimetableLinkType">
		<xs:sequence>
			<xs:element name="URL" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>A URL which can be used to obtain a pre-rendered timetable - PDF, HTML, etc.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="PrivateID" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>A private identifier to unique identify a timetable (may represnt both directions with a single ID - in which case direction will be defined as well).
This can be used ServiceTimetableRequest to obtain the timetable data.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Direction" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Used if the PrivateID doesn't include direction</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="MatrixDataAvailable" type="xs:boolean">
				<xs:annotation>
					<xs:documentation>Indicates if matrix timetable data can be requested for this timetable.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="DirectionType">
		<xs:restriction base="xs:string"/>
	</xs:simpleType>
	<xs:group name="UniqueServiceGroup">
		<xs:sequence>
			<xs:element name="OperatorCode" type="OperatorCodeType"/>
			<xs:element name="ServiceNumber" type="ServiceNumberType">
				<xs:annotation>
					<xs:documentation>The customer facing service number. Define but leave blank where there isn't one e.g. most rail services.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Direction" type="DirectionType" minOccurs="0"/>
		</xs:sequence>
	</xs:group>
	<xs:group name="ServiceGroup">
		<xs:sequence>
			<xs:element name="OperatorCode" type="OperatorCodeType" minOccurs="0"/>
			<xs:element name="ServiceNumber" type="ServiceNumberType"/>
			<xs:element name="Direction" type="DirectionType" minOccurs="0"/>
		</xs:sequence>
	</xs:group>
	<xs:group name="ServiceResponseGroup">
		<xs:sequence>
			<xs:group ref="UniqueServiceGroup"/>
			<xs:group ref="ServiceResponseExtrasGroup"/>
		</xs:sequence>
	</xs:group>
	<xs:attributeGroup name="GeocodeAttributes">
		<xs:attribute name="Easting" type="xs:int" use="optional"/>
		<xs:attribute name="Northing" type="xs:int" use="optional"/>
	</xs:attributeGroup>
	<xs:group name="EventTimeGroup">
		<xs:sequence>
			<xs:group ref="RTArrivalTimeGroup"/>
			<xs:choice>
				<xs:choice>
					<xs:sequence>
						<xs:element name="TimetabledArrivalTime" minOccurs="0">
							<xs:annotation>
								<xs:documentation>The time that the vehicle is timetabled to arrive.</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:simpleContent>
									<xs:extension base="xs:dateTime">
										<xs:attribute name="TimingInformationPoint" type="xs:boolean" use="optional"/>
									</xs:extension>
								</xs:simpleContent>
							</xs:complexType>
						</xs:element>
						<xs:element name="TimetabledDepartureTime" minOccurs="0">
							<xs:annotation>
								<xs:documentation>The time that the vehicle is timetabled to depart.</xs:documentation>
							</xs:annotation>
							<xs:complexType>
								<xs:simpleContent>
									<xs:extension base="xs:dateTime">
										<xs:attribute name="TimingInformationPoint" type="xs:boolean" use="optional"/>
									</xs:extension>
								</xs:simpleContent>
							</xs:complexType>
						</xs:element>
					</xs:sequence>
					<xs:element name="TimetabledTime" type="xs:dateTime">
						<xs:annotation>
							<xs:documentation>Only to be used when arrival and departure time are the same.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:choice>
				<xs:group ref="FrequencyGroup"/>
			</xs:choice>
			<xs:group ref="RTDepartureTimeGroup"/>
		</xs:sequence>
	</xs:group>
	<xs:group name="OriginTimeGroup">
		<xs:sequence>
			<xs:element name="TimetabledDepartureTime"/>
			<xs:group ref="RTDepartureTimeGroup"/>
		</xs:sequence>
	</xs:group>
	<xs:group name="BoardTimeGroup">
		<xs:sequence>
			<xs:group ref="RTArrivalTimeGroup"/>
			<xs:choice>
				<xs:sequence>
					<xs:element name="TimetabledArrivalTime" minOccurs="0"/>
					<xs:element name="TimetabledDepartureTime"/>
				</xs:sequence>
				<xs:element name="TimetabledTime" type="xs:dateTime">
					<xs:annotation>
						<xs:documentation>Only to be used when arrival and departure time are the same.</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:choice>
			<xs:group ref="RTDepartureTimeGroup"/>
		</xs:sequence>
	</xs:group>
	<xs:group name="IntermediateTimeGroup">
		<xs:sequence>
			<xs:group ref="RTArrivalTimeGroup"/>
			<xs:choice>
				<xs:sequence>
					<xs:element name="TimetabledArrivalTime" minOccurs="0"/>
					<xs:element name="TimetabledDepartureTime" minOccurs="0"/>
				</xs:sequence>
				<xs:element name="TimetabledTime" type="xs:dateTime">
					<xs:annotation>
						<xs:documentation>Only to be used when arrival and departure time are the same.</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:choice>
			<xs:group ref="RTDepartureTimeGroup"/>
		</xs:sequence>
	</xs:group>
	<xs:group name="AlightTimeGroup">
		<xs:sequence>
			<xs:group ref="RTArrivalTimeGroup"/>
			<xs:choice>
				<xs:sequence>
					<xs:element name="TimetabledArrivalTime" type="xs:dateTime"/>
					<xs:element name="TimetabledDepartureTime" minOccurs="0"/>
				</xs:sequence>
				<xs:element name="TimetabledTime" type="xs:dateTime">
					<xs:annotation>
						<xs:documentation>Only to be used when arrival and departure time are the same.</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:choice>
			<xs:group ref="RTDepartureTimeGroup"/>
		</xs:sequence>
	</xs:group>
	<xs:group name="DestinationTimeGroup">
		<xs:sequence>
			<xs:element name="TimetabledArrivalTime" type="xs:dateTime"/>
			<xs:group ref="RTArrivalTimeGroup"/>
		</xs:sequence>
	</xs:group>
	<xs:group name="RTArrivalTimeGroup">
		<xs:choice>
			<xs:element name="RTEstimatedArrivalTime" type="xs:dateTime" minOccurs="0"/>
			<xs:element name="RTRecordedArrivalTime" type="xs:dateTime" minOccurs="0"/>
		</xs:choice>
	</xs:group>
	<xs:group name="RTDepartureTimeGroup">
		<xs:choice>
			<xs:element name="RTEstimatedDepartureTime" type="xs:dateTime" minOccurs="0"/>
			<xs:element name="RTRecordedDepartureTime" type="xs:dateTime" minOccurs="0"/>
		</xs:choice>
	</xs:group>
	<xs:group name="ServiceResponseExtrasGroup">
		<xs:sequence>
			<xs:element name="OperatorName" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>The customer facing name of the operator.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="Description" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>The description of the service.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="FirstDateOfOperation" type="xs:date" minOccurs="0"/>
			<xs:element name="DaysOfOperation" type="DaysOfOperationType" minOccurs="0">
				<xs:annotation>
					<xs:documentation>The days of the week that this 
trip is valid at this time. </xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:choice minOccurs="0">
				<xs:element name="ExpiryDate" type="xs:date">
					<xs:annotation>
						<xs:documentation>The last day that this trips timetable is valid</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="OpenEnded"/>
			</xs:choice>
			<xs:element name="DestinationBoard" type="xs:string" minOccurs="0">
				<xs:annotation>
					<xs:documentation>The name displayed on the front of this vehicle</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="TimetableLink" type="TimetableLinkType" minOccurs="0">
				<xs:annotation>
					<xs:documentation>Link to a timetable for this leg of the journey</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:group>
	<xs:simpleType name="NaPTANIDType">
		<xs:restriction base="xs:string">
			<xs:pattern value="[0-9]{3}0[A-Za-z0-9]{1,8}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="LocalityIDType">
		<xs:restriction base="xs:string">
			<xs:pattern value="[EN][0S][0-9]{6}"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="IntermediateStopsRequestType">
		<xs:restriction base="xs:NMTOKEN">
			<xs:enumeration value="all"/>
			<xs:enumeration value="before"/>
			<xs:enumeration value="beforeAndLeg"/>
			<xs:enumeration value="leg"/>
			<xs:enumeration value="legAndAfter"/>
			<xs:enumeration value="after"/>
			<xs:enumeration value="none"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="ArriveDepartType">
		<xs:restriction base="xs:NMTOKEN">
			<xs:enumeration value="arrive"/>
			<xs:enumeration value="depart"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="AlgorithmType">
		<xs:restriction base="xs:NMTOKEN">
			<xs:enumeration value="default"/>
			<xs:enumeration value="fastest"/>
			<xs:enumeration value="noChanges"/>
			<xs:enumeration value="max1Change"/>
			<xs:enumeration value="max2Changes"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="EventArriveDepartType">
		<xs:restriction base="xs:NMTOKEN">
			<xs:enumeration value="arrive"/>
			<xs:enumeration value="depart"/>
			<xs:enumeration value="all"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="RowActivityType">
		<xs:restriction base="xs:NMTOKEN">
			<xs:enumeration value="arrive"/>
			<xs:enumeration value="depart"/>
			<xs:enumeration value="mixed"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="StopActivityType">
		<xs:restriction base="xs:NMTOKEN">
			<xs:enumeration value="pickUpOnly"/>
			<xs:enumeration value="setDownOnly"/>
			<xs:enumeration value="pickUpAndSetDown"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="StopTypeType">
		<xs:restriction base="xs:NMTOKEN">
			<xs:enumeration value="origin"/>
			<xs:enumeration value="intermediate"/>
			<xs:enumeration value="destination"/>
			<xs:enumeration value="originDestination"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="LanguageType">
		<xs:restriction base="xs:NMTOKEN">
			<xs:enumeration value="EN">
				<xs:annotation>
					<xs:documentation>English</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="CY">
				<xs:annotation>
					<xs:documentation>Welsh</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="GA">
				<xs:annotation>
					<xs:documentation>Irish</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="GD">
				<xs:annotation>
					<xs:documentation>Scots Gaelic</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="PrecisionType">
		<xs:restriction base="xs:NMTOKEN">
			<xs:enumeration value="1km"/>
			<xs:enumeration value="100m"/>
			<xs:enumeration value="10m"/>
			<xs:enumeration value="1m"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:group name="FrequencyGroup">
		<xs:sequence>
			<xs:element name="Frequency">
				<xs:annotation>
					<xs:documentation>The scheduled time gap between departures for a frequency-based service. Minimum and maximum time gaps can be specified as attributes.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:duration">
							<xs:attribute name="min" type="xs:duration" use="optional"/>
							<xs:attribute name="max" type="xs:duration" use="optional"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="MinFrequency" minOccurs="0">
				<xs:annotation>
					<xs:documentation>The minimum amount of time the traveller will have to wait for a service.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="MaxFrequency" minOccurs="0">
				<xs:annotation>
					<xs:documentation>The maximum amount of time the traveller will have to wait for a service.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:group>
</xs:schema>
