<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v4.4 U (http://www.xmlspy.com) by Damian Bown (Kizoom) -->
<!-- edited with XMLSpy v2005 sp1 U (http://www.xmlspy.com) by Nick js knowles (Kizoom Ltd.) -->
<!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by nick knowles (kizoom) -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.siri.org.uk/" targetNamespace="http://www.siri.org.uk/" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.1c" id="siri">
	<xsd:annotation>
		<xsd:appinfo xmlns:gms="http://www.govtalk.gov.uk/CM/gms">
			<Metadata xmlns="http://www.govtalk.gov.uk/CM/gms-xs">
				<Aggregation>main schema</Aggregation>
				<Audience>e-service developers</Audience>
				<Contributor> aaa  @org.uk]</Contributor>
				<Coverage>Europe</Coverage>
				<Creator>>Drafted for version 1.0 , by  Cen TC278 WG3 SG7 mailto:schemer@siri.org.uk</Creator>
				<Date>
					<Created>2004-09-29</Created>
				</Date>
				<Date>
					<Modified>2004-10-01</Modified>
				</Date>
				<Description>
					<p>SIRI is a European CEN standard for the exchange of real time information.</p>
					<p>It has five  main services:
                             <ul>
							<li>Connection Protection</li>
							<li>Stop Events: Provides information about stop departures and arrivals </li>
							<li>Vehicle Activity</li>
							<li>Schedule Exchange</li>
							<li>General Message</li>
						</ul>
					</p>
					<p>SIRI supports both direct requests and publish subscribe patterns of interaction.</p>
					<p>SIRIincludes common messages for system status management..</p>
				</Description>
				<Format>
					<MediaType>text/xml</MediaType>
					<Syntax>http://www.w3.org/2001/XMLSchema</Syntax>
					<Description>XML schema, W3C Recommendation 2001</Description>
				</Format>
				<Identifier>{http://www.siri.org.uk/schemas/0.1c}siri.xsd</Identifier>
				<Language>[ISO 639-2/B] ENG</Language>
				<Publisher>CEN - Add POSTAL ADDRESS </Publisher>
				<Relation>
					<Requires>http://www.siri.org.uk/schemas/0.1c/siri_common.xsd</Requires>
					<Requires>http://www.siri.org.uk/schemas/0.1c/siri_guaranteedconnection_service.xsd</Requires>
					<Requires>http://www.siri.org.uk/schemas/0.1c/siri_stopevent_service.xsd</Requires>
					<Requires>http://www.siri.org.uk/schemas/0.1c/siri_vehicleactivity_service.xsd</Requires>
					<Requires>http://www.siri.org.uk/schemas/0.1c/siri_generalmessage_service.xsd</Requires>
					<Requires>http://www.siri.org.uk/schemas/0.1c/siri_discovery.xsd</Requires>
				</Relation>
				<Rights>Unclassified
                            <Copyright>CEN, VDV, RTIG  2004</Copyright>
				</Rights>
				<Source>
					<ul>
						<li>Derived from the VDV, RTIG XML and Trident standards.</li>
					</ul>
				</Source>
				<Status>Version 0.1 Draft for approval</Status>
				<Subject>
					<Category>Arts, recreation and travel, Tourism, Travel (tourism), Transport,
Air transport, Airports,
Ports and maritime transport, Ferries (marine),
Public transport, Bus services, Coach services, Bus stops and stations,
Rail transport, Railway stations and track, Train services, Underground trains,
Business and industry, Transport, Air transport , Ports and maritime transport, Public transport,
Rail transport, Roads and road transport
</Category>
					<Project>Cen TC278 WG3 SG7</Project>
				</Subject>
				<Title>SIRI XML schema. Service Interface for Real Time Information relating to Public Transport Operations. </Title>
				<Type>Standard</Type>
			</Metadata>
		</xsd:appinfo>
	</xsd:annotation>
	<!-- ======================================================================= -->
	<xsd:include schemaLocation="siri_common.xsd"/>
	<xsd:include schemaLocation="siri_connection_service.xsd"/>
	<xsd:include schemaLocation="siri_stopevent_service.xsd"/>
	<xsd:include schemaLocation="siri_stopevent_service.xsd"/>
	<xsd:include schemaLocation="siri_vehicleactivity_service.xsd"/>
	<xsd:include schemaLocation="siri_generalmessage_service.xsd"/>
	<xsd:include schemaLocation="siri_timetable_service.xsd"/>
	<xsd:include schemaLocation="siri_discovery.xsd"/>
	<!-- ======================================================================= -->
	<xsd:element name="Siri">
		<xsd:annotation>
			<xsd:documentation>Service Interface for Real Time Operation.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:choice>
				<xsd:group ref="RequestGroup"/>
				<xsd:group ref="ResponseGroup"/>
			</xsd:choice>
			<xsd:attribute name="version" type="xsd:NMTOKEN" use="required" fixed="0.1c"/>
		</xsd:complexType>
	</xsd:element>
	<!--== Requests ===================================================================== -->
	<xsd:group name="RequestGroup">
		<xsd:annotation>
			<xsd:documentation>SIRI Requests</xsd:documentation>
		</xsd:annotation>
		<xsd:choice>
			<xsd:group ref="ServiceRequestGroup"/>
			<xsd:group ref="DeliveryRequestGroup"/>
			<xsd:group ref="StatusRequestGroup"/>
			<xsd:group ref="DiscoveryRequestGroup"/>
		</xsd:choice>
	</xsd:group>
	<xsd:group name="ServiceRequestGroup">
		<xsd:annotation>
			<xsd:documentation>Requests for service provision.</xsd:documentation>
		</xsd:annotation>
		<xsd:choice>
			<xsd:element name="ServiceRequest">
				<xsd:annotation>
					<xsd:documentation>Request  from Consumer to Producer for immediate delivery of data. Answered with a ServiceDelivery (or a DataReadyRequest)  </xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:complexContent>
						<xsd:extension base="ServiceRequestStructure"/>
					</xsd:complexContent>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="SubscriptionRequest">
				<xsd:annotation>
					<xsd:documentation>Request from Subscriber to Producer for a subscription. Answered with a SubscriptionResponse. 
</xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:complexContent>
						<xsd:extension base="SubscriptionRequestStructure"/>
					</xsd:complexContent>
				</xsd:complexType>
			</xsd:element>
			<xsd:element ref="TerminateSubscriptionRequest"/>
		</xsd:choice>
	</xsd:group>
	<xsd:group name="DeliveryRequestGroup">
		<xsd:annotation>
			<xsd:documentation>Requests for data delivery.</xsd:documentation>
		</xsd:annotation>
		<xsd:choice>
			<xsd:element ref="DataReadyNotification"/>
			<xsd:element ref="DataSupplyRequest"/>
		</xsd:choice>
	</xsd:group>
	<xsd:complexType name="ServiceRequestStructure">
		<xsd:annotation>
			<xsd:documentation>SIRI Service Request.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="ContextualisedRequestStructure">
				<xsd:group ref="SiriServiceRequestGroup"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:group name="SiriServiceRequestGroup">
		<xsd:annotation>
			<xsd:documentation>SIRI Service Concrete Request types.</xsd:documentation>
		</xsd:annotation>
		<xsd:choice>
			<xsd:element ref="RealtimeTimetableRequest"/>
			<xsd:element ref="ProductionTimetableRequest"/>
			<xsd:element ref="StopEventRequest" maxOccurs="unbounded"/>
			<xsd:element ref="VehicleActivityRequest" maxOccurs="unbounded"/>
			<xsd:element ref="ConnectionTimetableRequest"/>
			<xsd:element ref="ConnectionEventRequest" maxOccurs="unbounded"/>
			<xsd:element ref="GeneralMessageRequest" maxOccurs="unbounded"/>
		</xsd:choice>
	</xsd:group>
	<!--===Subscriptions ==================================================================== -->
	<xsd:complexType name="SubscriptionRequestStructure">
		<xsd:annotation>
			<xsd:documentation>SIRI Subscription Request -</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="AbstractSubscriptionRequestStructure">
				<xsd:sequence>
					<xsd:group ref="SiriSubscriptionRequestGroup"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:group name="SiriSubscriptionRequestGroup">
		<xsd:annotation>
			<xsd:documentation>SIRI Service Subscription types. For a given SubscriptionRequest, must all be of the same service type.</xsd:documentation>
		</xsd:annotation>
		<xsd:choice>
			<xsd:element ref="ProductionTimetableSubscriptionRequest" maxOccurs="unbounded"/>
			<xsd:element ref="RealtimeTimetableSubscriptionRequest" maxOccurs="unbounded"/>
			<xsd:element ref="StopEventSubscriptionRequest" maxOccurs="unbounded"/>
			<xsd:element ref="VehicleActivitySubscriptionRequest" maxOccurs="unbounded"/>
			<xsd:element ref="ConnectionTimetableSubscriptionRequest"/>
			<xsd:element ref="ConnectionEventSubscriptionRequest" maxOccurs="unbounded"/>
			<xsd:element ref="GeneralMessageSubscriptionRequest" maxOccurs="unbounded"/>
		</xsd:choice>
	</xsd:group>
	<!-- ===Responses==================================================================== -->
	<xsd:group name="ResponseGroup">
		<xsd:annotation>
			<xsd:documentation>SIRI Service Responses.</xsd:documentation>
		</xsd:annotation>
		<xsd:choice>
			<xsd:group ref="ServiceResponseGroup"/>
			<xsd:group ref="DeliveryResponseGroup"/>
			<xsd:group ref="StatusResponseGroup"/>
			<xsd:group ref="DiscoveryResponseGroup"/>
		</xsd:choice>
	</xsd:group>
	<xsd:group name="ServiceResponseGroup">
		<xsd:annotation>
			<xsd:documentation>Responses to requests other than deliveries and status information.</xsd:documentation>
		</xsd:annotation>
		<xsd:choice>
			<xsd:element ref="SubscriptionResponse"/>
			<xsd:element ref="TerminateSubscriptionResponse"/>
		</xsd:choice>
	</xsd:group>
	<!-- ===Data Delivery ============================================================== -->
	<xsd:group name="DeliveryResponseGroup">
		<xsd:annotation>
			<xsd:documentation>Responses that deliver payload content.</xsd:documentation>
		</xsd:annotation>
		<xsd:choice>
			<xsd:element ref="DataReadyAcknowledgement"/>
			<xsd:element name="ServiceDelivery">
				<xsd:annotation>
					<xsd:documentation>Response from Producer to Consumer to deliver payload data. Either  answers a direct ServiceRequest, or asynchronously satisfies a subscription. May be  sent directly in one step, or fetched  in response to a DataSupply Request.</xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:complexContent>
						<xsd:extension base="ServiceDeliveryStructure">
							<xsd:sequence>
								<xsd:group ref="SiriServiceDeliveryGroup"/>
							</xsd:sequence>
						</xsd:extension>
					</xsd:complexContent>
				</xsd:complexType>
			</xsd:element>
			<xsd:element ref="DataReceivedAcknowledgement"/>
		</xsd:choice>
	</xsd:group>
	<xsd:group name="SiriServiceDeliveryGroup">
		<xsd:annotation>
			<xsd:documentation>SIRI Service Delivery types.</xsd:documentation>
		</xsd:annotation>
		<xsd:choice>
			<xsd:element ref="ProductionTimetableDelivery" maxOccurs="unbounded"/>
			<xsd:element ref="RealtimeTimetableDelivery" maxOccurs="unbounded"/>
			<xsd:element ref="StopEventDelivery" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>Delviery for Stop Event service.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element ref="VehicleActivityDelivery" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>Delviery for Vehicle Activity Service</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element ref="ConnectionFeederEventDelivery" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>Delivery for Connection Protection Fetcher Service.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element ref="ConnectionFetcherEventDelivery" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>Delivery for Connection Protection Fetcher Service.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element ref="GeneralMessageDelivery" maxOccurs="unbounded">
				<xsd:annotation>
					<xsd:documentation>Delivery for general Message service.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:choice>
	</xsd:group>
	<xsd:group name="DiscoveryRequestGroup">
		<xsd:annotation>
			<xsd:documentation>Requests for reference data  for use in service requests.</xsd:documentation>
		</xsd:annotation>
		<xsd:choice>
			<xsd:element name="CapabilitiesRequest" type="CapabilitiesRequestStructure">
				<xsd:annotation>
					<xsd:documentation>Requests a the current capabilities of the server.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:group ref="ReferenceDiscoveryRequestGroup"/>
		</xsd:choice>
	</xsd:group>
	<xsd:complexType name="CapabilitiesRequestStructure">
		<xsd:annotation>
			<xsd:documentation>Requests for capabilities of the current system</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="RequestStructure">
				<xsd:sequence>
					<xsd:choice>
						<xsd:element name="All" type="EmptyType">
							<xsd:annotation>
								<xsd:documentation>Return information for all services</xsd:documentation>
							</xsd:annotation>
						</xsd:element>
						<xsd:element name="SiriService" type="SiriServiceType"/>
					</xsd:choice>
				</xsd:sequence>
				<xsd:attribute name="version" type="VersionString" use="required" fixed="0.1c"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="CapabilitiesResponseStructure">
		<xsd:annotation>
			<xsd:documentation>Defines the capabilities of an implementation. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="ResponseStructure">
				<xsd:sequence>
					<xsd:element name="ServiceCapability" type="CapabilityResponseStructure" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>Description of a Service's  capabilities.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="CapabilityResponseStructure">
		<xsd:annotation>
			<xsd:documentation>Defines the capabilities of an implementation </xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Capabilities">
				<xsd:annotation>
					<xsd:documentation>Capabilities of the service</xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="SiriService" type="SiriServiceType">
							<xsd:annotation>
								<xsd:documentation>Identifier of SIRI concrete service for which information shoudl be return.</xsd:documentation>
							</xsd:annotation>
						</xsd:element>
						<xsd:element name="CapabilityRef" maxOccurs="unbounded">
							<xsd:annotation>
								<xsd:documentation>SIRI Capabilities supported.</xsd:documentation>
							</xsd:annotation>
							<xsd:complexType>
								<xsd:simpleContent>
									<xsd:restriction base="CapabilityRefStructure">
										<xsd:enumeration value="Value2"/>
										<xsd:enumeration value="Value1"/>
									</xsd:restriction>
								</xsd:simpleContent>
							</xsd:complexType>
						</xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="Languages">
				<xsd:annotation>
					<xsd:documentation>National Languages of the service.</xsd:documentation>
				</xsd:annotation>
				<xsd:complexType>
					<xsd:sequence>
						<xsd:element name="Language" type="xsd:language" maxOccurs="unbounded">
							<xsd:annotation>
								<xsd:documentation>National Languages supported.</xsd:documentation>
							</xsd:annotation>
						</xsd:element>
					</xsd:sequence>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="ServiceContext" type="ServiceRequestContextStructure">
				<xsd:annotation>
					<xsd:documentation>Default service context. </xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:any minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Placeholder for user extensions.</xsd:documentation>
				</xsd:annotation>
			</xsd:any>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:group name="DiscoveryResponseGroup">
		<xsd:annotation>
			<xsd:documentation>Responses with reference data for use in service requests.</xsd:documentation>
		</xsd:annotation>
		<xsd:choice>
			<xsd:element name="CapabilitiesResponse" type="CapabilitiesResponseStructure"/>
			<xsd:group ref="DiscoveryReferenceDeliveryGroup"/>
		</xsd:choice>
	</xsd:group>
	<!-- ======================================================================= -->
</xsd:schema>

