<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns="http://www.netex.org.uk/netex" xmlns:netex="http://www.netex.org.uk/netex" xmlns:siri="http://www.siri.org.uk/siri" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.netex.org.uk/netex" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.0" id="netex_trainElement_support">
	<xsd:include schemaLocation="netex_vehicleType_support.xsd"/>
	<!-- ======================================================================= -->
	<xsd:annotation>
		<xsd:appinfo>
			<Metadata xmlns="http://www.govtalk.gov.uk/CM/gms-xs">
				<Aggregation>main schema</Aggregation>
				<Audience>e-service developers</Audience>
				<Contributor>V1.0 Christophe Duquesne</Contributor>
				<Contributor>Nicholas Knowles</Contributor>
				<Coverage>Europe</Coverage>
				<Creator>First drafted for NeTEx version 1.0 CEN TC278 WG3 SG9 Editor Nicholas Knowles.</Creator>
				<Date>
					<Created>2010-09-04</Created>
				</Date>
				<Date><Modified>2011-02-05</Modified>Name Space changes 
				</Date>
				<Date><Modified>2024-03-09</Modified>Add TrainComponentCoupling and  ThroughACcessEnumeration
				</Date>
				<Description>
					<p>NeTEx is a European CEN standard for the exchange of Public Transport data including timetables.</p>
					<p>This sub-schema describes the VEHICLE TYPE identifier Types.</p>
				</Description>
				<Format>
					<MediaType>text/xml</MediaType>
					<Syntax>http://www.w3.org/2001/XMLSchema</Syntax>
					<Description>XML schema, W3C Recommendation 2001</Description>
				</Format>
				<Identifier>{http://www.netex.org.uk/schemas/1.0/xsd/netex_framework/netex_reusableComponents}netex_trainElement_support.xsd</Identifier>
				<Language>[ISO 639-2/B] ENG</Language>
				<Publisher>Kizoom Software Ltd, 16 High Holborn, London WC1V 6BX </Publisher>
				<Relation>
					<Requires>http://www.netex.org.uk/schemas/1.0/PATH/netex_prereqfile.xsd</Requires>
				</Relation>
				<Rights>Unclassified
					 <Copyright>CEN, Crown Copyright 2009-2024</Copyright>
				</Rights>
				<Source>
					<ul>
						<li>Derived from the Transmodel, VDV, TransXChange, NEPTUNE, BISON and Trident standards.</li>
					</ul>
				</Source>
				<Status>Version 1.0</Status>
				<Subject>
					<Category>Arts, recreation and travel, Tourism, Travel (tourism), Transport,
Air transport, Airports,
Ports and maritime transport, Ferries (marine),
Public transport, Bus services, Coach services, Bus stops and stations,
Rail transport, Railway stations and track, Train services, Underground trains,
Business and industry, Transport, Air transport , Ports and maritime transport, Public transport,
Rail transport, Roads and Road transport
</Category>
					<Project>CEN TC278 WG3 SG9.</Project>
				</Subject>
				<Title>NeTEx VEHICLE TYPE types.</Title>
				<Type>Standard</Type>
			</Metadata>
		</xsd:appinfo>
		<xsd:documentation>TRAIN Types</xsd:documentation>
	</xsd:annotation>
	<!-- ======= TRAIN ======================================================== -->
	<xsd:simpleType name="TrainIdType">
		<xsd:annotation>
			<xsd:documentation>Type for identifier of a TRAIN.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="VehicleTypeIdType"/>
	</xsd:simpleType>
	<xsd:element name="TrainRef" type="TrainRefStructure" substitutionGroup="VehicleTypeRef">
		<xsd:annotation>
			<xsd:documentation>Reference to a TRAIN.</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:complexType name="TrainRefStructure">
		<xsd:annotation>
			<xsd:documentation>Type for a reference to a TRAIN.</xsd:documentation>
		</xsd:annotation>
		<xsd:simpleContent>
			<xsd:restriction base="VehicleTypeRefStructure">
				<xsd:attribute name="ref" type="TrainIdType" use="required">
					<xsd:annotation>
						<xsd:documentation>Identifier of a TRAIN.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="nameOfRefClass" type="NameOfClassTrainRefStructureType" default="Train">
					<xsd:annotation>
						<xsd:documentation>Automatic reference class for TrainRefStructure</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="modification" type="ModificationEnumeration" use="optional">
					<xsd:annotation>
						<xsd:documentation>Nature of last modification: new, revise, delete, unchanged.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="versionRef" type="VersionIdType" use="optional">
					<xsd:annotation>
						<xsd:documentation>Identifier of version of referenced entity. For use when reference is External and a specific version is required. Mutually exclusive with version</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="uri" type="xsd:anyURI" use="optional">
					<xsd:annotation>
						<xsd:documentation>Location of the external entity. +v2.0</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attributeGroup ref="ReferenceModificationDetailsGroup"/>
			</xsd:restriction>
		</xsd:simpleContent>
	</xsd:complexType>
	<!-- ======= COMPOUND TRAIN   ================================================= -->
	<xsd:simpleType name="CompoundTrainIdType">
		<xsd:annotation>
			<xsd:documentation>Type for identifier of a COMPOUND TRAIN.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="VehicleTypeIdType"/>
	</xsd:simpleType>
	<xsd:element name="CompoundTrainRef" substitutionGroup="VehicleTypeRef">
		<xsd:annotation>
			<xsd:documentation>Reference to a COMPOUND TRAIN.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="CompoundTrainRefStructure"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="CompoundTrainRefStructure">
		<xsd:annotation>
			<xsd:documentation>Type for a reference to a COMPOUND TRAIN.</xsd:documentation>
		</xsd:annotation>
		<xsd:simpleContent>
			<xsd:restriction base="VehicleTypeRefStructure">
				<xsd:attribute name="ref" type="CompoundTrainIdType" use="required">
					<xsd:annotation>
						<xsd:documentation>Identifier of a COMPOUND TRAIN.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="nameOfRefClass" type="NameOfClassCompoundTrainRefStructureType" default="CompoundTrain">
					<xsd:annotation>
						<xsd:documentation>Automatic reference class for CompoundTrainRefStructure</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="modification" type="ModificationEnumeration" use="optional">
					<xsd:annotation>
						<xsd:documentation>Nature of last modification: new, revise, delete, unchanged.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="versionRef" type="VersionIdType" use="optional">
					<xsd:annotation>
						<xsd:documentation>Identifier of version of referenced entity. For use when reference is External and a specific version is required. Mutually exclusive with version</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="uri" type="xsd:anyURI" use="optional">
					<xsd:annotation>
						<xsd:documentation>Location of the external entity. +v2.0</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attributeGroup ref="ReferenceModificationDetailsGroup"/>
			</xsd:restriction>
		</xsd:simpleContent>
	</xsd:complexType>
	<!-- ====== TRAIN IN COMPOUND TRAIN ======================================= -->
	<xsd:simpleType name="TrainInCompoundTrainIdType">
		<xsd:annotation>
			<xsd:documentation>Type for identifier of a TRAIN IN COMPOUND TRAIN.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="ObjectIdType"/>
	</xsd:simpleType>
	<xsd:element name="TrainInCompoundTrainRef" type="TrainInCompoundTrainRefStructure" substitutionGroup="VersionOfObjectRef">
		<xsd:annotation>
			<xsd:documentation>Reference to a TRAIN IN COMPOUND TRAIN.</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:complexType name="TrainInCompoundTrainRefStructure">
		<xsd:annotation>
			<xsd:documentation>Type for a reference to a TRAIN IN COMPOUND TRAIN.</xsd:documentation>
		</xsd:annotation>
		<xsd:simpleContent>
			<xsd:restriction base="VersionOfObjectRefStructure">
				<xsd:attribute name="ref" type="TrainInCompoundTrainIdType" use="required">
					<xsd:annotation>
						<xsd:documentation>Identifier of a TRAIN IN COMPOUND TRAIN.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="nameOfRefClass" type="NameOfClassTrainInCompoundTrainRefStructureType" default="TrainInCompoundTrain">
					<xsd:annotation>
						<xsd:documentation>Automatic reference class for TrainInCompoundTrainRefStructure</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="modification" type="ModificationEnumeration" use="optional">
					<xsd:annotation>
						<xsd:documentation>Nature of last modification: new, revise, delete, unchanged.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="versionRef" type="VersionIdType" use="optional">
					<xsd:annotation>
						<xsd:documentation>Identifier of version of referenced entity. For use when reference is External and a specific version is required. Mutually exclusive with version</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="uri" type="xsd:anyURI" use="optional">
					<xsd:annotation>
						<xsd:documentation>Location of the external entity. +v2.0</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attributeGroup ref="ReferenceModificationDetailsGroup"/>
			</xsd:restriction>
		</xsd:simpleContent>
	</xsd:complexType>
	<!-- ====== TRAIN ELEMENT  =================================================== -->
	<xsd:simpleType name="TrainElementTypeIdType">
		<xsd:annotation>
			<xsd:documentation>Type for identifier of a TRAIN ELEMENT TYPE.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="ObjectIdType"/>
	</xsd:simpleType>
	<xsd:element name="TrainElementTypeRef" type="TrainElementTypeRefStructure" abstract="true" substitutionGroup="VersionOfObjectRef">
		<xsd:annotation>
			<xsd:documentation>Reference to a TRAIN ELEMENT TYPE. v2.0</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="TrainElementRef" type="TrainElementTypeRefStructure" substitutionGroup="VersionOfObjectRef">
		<xsd:annotation>
			<xsd:documentation>DEPRECATED: renamed to TRAIN ELEMENT TYPE. -v2.0</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:complexType name="TrainElementTypeRefStructure">
		<xsd:annotation>
			<xsd:documentation>Type for a reference to a TRAIN ELEMENT TYPE.</xsd:documentation>
		</xsd:annotation>
		<xsd:simpleContent>
			<xsd:restriction base="VersionOfObjectRefStructure">
				<xsd:attribute name="ref" type="TrainElementTypeIdType" use="required">
					<xsd:annotation>
						<xsd:documentation>Identifier of a TRAIN ELEMENT TYPE.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="nameOfRefClass" type="NameOfClassTrainElementTypeRefStructureType" default="TrainElementType">
					<xsd:annotation>
						<xsd:documentation>Automatic reference class for TrainElementTypeRefStructure</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="modification" type="ModificationEnumeration" use="optional">
					<xsd:annotation>
						<xsd:documentation>Nature of last modification: new, revise, delete, unchanged.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="versionRef" type="VersionIdType" use="optional">
					<xsd:annotation>
						<xsd:documentation>Identifier of version of referenced entity. For use when reference is External and a specific version is required. Mutually exclusive with version</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="uri" type="xsd:anyURI" use="optional">
					<xsd:annotation>
						<xsd:documentation>Location of the external entity. +v2.0</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attributeGroup ref="ReferenceModificationDetailsGroup"/>
			</xsd:restriction>
		</xsd:simpleContent>
	</xsd:complexType>
	<xsd:simpleType name="TrainElementTypeTypeEnumeration">
		<xsd:annotation>
			<xsd:documentation>Allowed values for TYPE OF TRAIN ELEMENT TYPE.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:NMTOKEN">
			<xsd:enumeration value="buffetCar"/>
			<xsd:enumeration value="carriage"/>
			<xsd:enumeration value="engine"/>
			<xsd:enumeration value="carTransporter"/>
			<xsd:enumeration value="largeVehicleTransporter">
				<xsd:annotation>
					<xsd:documentation>+v2.0</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="sleeperCarriage"/>
			<xsd:enumeration value="luggageVan"/>
			<xsd:enumeration value="restaurantCarriage"/>
			<xsd:enumeration value="other"/>
		</xsd:restriction>
	</xsd:simpleType>
	<!-- ====== TRAIN COMPONENT ============================================= -->
	<xsd:simpleType name="TrainComponentIdType">
		<xsd:annotation>
			<xsd:documentation>Type for identifier of a TRAIN COMPONENT.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="ObjectIdType"/>
	</xsd:simpleType>
	<xsd:element name="TrainComponentRef" type="TrainComponentRefStructure" substitutionGroup="VersionOfObjectRef">
		<xsd:annotation>
			<xsd:documentation>Reference to a TRAIN COMPONENT.</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:complexType name="TrainComponentRefStructure">
		<xsd:annotation>
			<xsd:documentation>Type for a reference to a TRAIN COMPONENT.</xsd:documentation>
		</xsd:annotation>
		<xsd:simpleContent>
			<xsd:restriction base="OrderedVersionOfObjectRefStructure">
				<xsd:attribute name="ref" type="TrainComponentIdType" use="required">
					<xsd:annotation>
						<xsd:documentation>Identifier of TRAIN COMPONENT.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="nameOfRefClass" type="NameOfClassTrainComponentRefStructureType" default="TrainComponent">
					<xsd:annotation>
						<xsd:documentation>Automatic reference class for TrainComponentRefStructure</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="modification" type="ModificationEnumeration" use="optional">
					<xsd:annotation>
						<xsd:documentation>Nature of last modification: new, revise, delete, unchanged.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="versionRef" type="VersionIdType" use="optional">
					<xsd:annotation>
						<xsd:documentation>Identifier of version of referenced entity. For use when reference is External and a specific version is required. Mutually exclusive with version</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="uri" type="xsd:anyURI" use="optional">
					<xsd:annotation>
						<xsd:documentation>Location of the external entity. +v2.0</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attributeGroup ref="ReferenceModificationDetailsGroup"/>
			</xsd:restriction>
		</xsd:simpleContent>
	</xsd:complexType>
	<!-- ======================================================================= -->
	<xsd:simpleType name="ThroughAccessEnumeration">
		<xsd:annotation>
			<xsd:documentation>The size of a train in relative terms.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:NMTOKEN">
			<xsd:enumeration value="noThroughAccess">
				<xsd:annotation>
					<xsd:documentation>No through access to next carriage</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="openEntrance">
				<xsd:annotation>
					<xsd:documentation>Access to next carriage through open entrance</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="door">
				<xsd:annotation>
					<xsd:documentation>Access to next carriage through door that can be opened.</xsd:documentation>
				</xsd:annotation>
			</xsd:enumeration>
			<xsd:enumeration value="unknown"/>
		</xsd:restriction>
	</xsd:simpleType>
	<!-- ======================================================================= -->
	<xsd:simpleType name="TrainSizeEnumeration">
		<xsd:annotation>
			<xsd:documentation>The size of a train in relative terms.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:NMTOKEN">
			<xsd:enumeration value="normal"/>
			<xsd:enumeration value="short"/>
			<xsd:enumeration value="long"/>
		</xsd:restriction>
	</xsd:simpleType>
	<!-- ======================================================================= -->
</xsd:schema>
