<?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_version">
	<xsd:include schemaLocation="netex_vehicleType_version.xsd"/>
	<xsd:include schemaLocation="netex_trainElement_support.xsd"/>
	<xsd:include schemaLocation="netex_deckPlan_support.xsd"/>
	<xsd:include schemaLocation="netex_nm_chargingEquipmentProfile_version.xsd"/>
	<xsd:include schemaLocation="netex_nm_fleetEquipment_version.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>2017-04-27</Modified>1.1 CR0039 Add Width to TRAIN ELEMENT
				</Date>
				<Date><Modified>2019-02-21</Modified>Make ValidityCondition etc visible on TrainElement
				</Date>
				<Date><Modified>2019-03-27</Modified>Fix add missing TrainSize attribute to TrainElement
				</Date>
				<Date><Modified>2019-04-18</Modified>Fix add missing orientation to  TrainComponent
				</Date>
				<Date><Modified>2021-09-01</Modified>NewModes: revise to allow chargingEquipmentProfile
				</Date>
				<Date><Modified>2024-01-17</Modified>DECK PLANS add a defualt DECK PLAN
				</Date>
				<Date><Modified>2024-02-05</Modified>DECK PLANS add a default DECK PLAN and TRAIN COMPONENT COUPLING
				</Date>
				<Date><Modified>2024-02-09</Modified>Rename TRAIN ELEMENT to TRAIN ELEMNT TYPE. DEerecate old element
				</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 TRAIN ELEMENT 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_version.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 TRAIN ELEMENT Types.</Title>
				<Type>Standard</Type>
			</Metadata>
		</xsd:appinfo>
		<xsd:documentation>NeTEx TRAIN ELEMENT specification</xsd:documentation>
	</xsd:annotation>
	<!-- ======================================================================= -->
	<xsd:group name="ServiceRequirementTypeGroup">
		<xsd:annotation>
			<xsd:documentation>SERVICE REQUIREMENTS for SERVICE JOURNEY. These are the normal planned values, not necessarily the ACTUAL VEHICLE EQUIPMENT.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:choice minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Required minimum capacity for service. Note actual capacity is given by vehicle type.</xsd:documentation>
				</xsd:annotation>
				<xsd:element ref="PassengerCarryingRequirementRef"/>
				<xsd:element ref="PassengerCarryingRequirementsView"/>
			</xsd:choice>
			<xsd:element ref="TrainSize" minOccurs="0"/>
			<xsd:element name="equipments" type="vehicleEquipments_RelStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>VEHICLE EQUIPMENT available on service.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:group>
	<!-- ===ENTIITY IN VERSION IN FRAME====(Used in SERVICE FRAME)======================= -->
	<xsd:group name="VehicleTypeInFrameGroup">
		<xsd:annotation>
			<xsd:documentation>Elements for a VEHICLE TYPEs in frame.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="vehicleTypes" type="vehicleTypesInFrame_RelStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>VEHICLE TYPEs in frame.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:group>
	<xsd:complexType name="vehicleTypesInFrame_RelStructure">
		<xsd:annotation>
			<xsd:documentation>Type for containment in frame of VEHICLE TYPEs.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="containmentAggregationStructure">
				<xsd:choice minOccurs="0">
					<xsd:element ref="TransportType_Dummy" maxOccurs="unbounded"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:group name="VehicleTypeProfileInFrameGroup">
		<xsd:annotation>
			<xsd:documentation>Elements for VEHICLE TYPEs, VEHICLE MODELS, etc. in frame.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="vehicleTypes" type="vehicleTypesInFrame_RelStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>VEHICLE TYPEs in frame.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="vehicleModels" type="vehicleModelsInFrame_RelStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>VEHICLE MODELs in frame.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="vehicleEquipmentProfiles" type="vehicleEquipmentProfilesInFrame_RelStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>VEHICLE EQUIPMENT PROFILEs in frame.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="vehicleModelProfiles" type="vehicleModelProfilesInFrame_RelStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>VEHICLE MODEL PROFILEs in frame. +v1.2.2</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:group>
	<xsd:complexType name="vehicleEquipmentProfilesInFrame_RelStructure">
		<xsd:annotation>
			<xsd:documentation>Type for containment in frame of VEHICLE EQUIPMENT PROFILEs.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="containmentAggregationStructure">
				<xsd:choice maxOccurs="unbounded">
					<xsd:element ref="VehicleEquipmentProfile"/>
					<xsd:element ref="RechargingEquipmentProfile">
						<xsd:annotation>
							<xsd:documentation>+v1.2.2</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<!-- =======TRAIN ======================================================= -->
	<xsd:element name="Train_Dummy" type="DataManagedObjectStructure" abstract="true" substitutionGroup="TransportType_Dummy">
		<xsd:annotation>
			<xsd:documentation>Dummy type to work around SG limitations</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:element name="Train" substitutionGroup="Train_Dummy">
		<xsd:annotation>
			<xsd:documentation>A vehicle composed of TRAIN ELEMENTs in a certain order, i.e. of wagons assembled together and propelled by a locomotive or one of the wagons.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:restriction base="Train_VersionStructure">
					<xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="EntityInVersionGroup" minOccurs="0"/>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="DataManagedObjectGroup"/>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="TransportTypeGroup"/>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="VehicleTypeGroup"/>
						</xsd:sequence>
						<xsd:group ref="TrainGroup"/>
					</xsd:sequence>
					<xsd:attribute name="id" type="TrainIdType" use="required"/>
				</xsd:restriction>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="Train_VersionStructure">
		<xsd:annotation>
			<xsd:documentation>Type for TRAIN.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="VehicleType_VersionStructure">
				<xsd:group ref="TrainGroup"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:group name="TrainGroup">
		<xsd:annotation>
			<xsd:documentation>Element for TRAIN.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element ref="TrainSize" minOccurs="0"/>
			<xsd:element name="components" type="trainComponents_RelStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Ordered collection of TRAIN COMPONENTs making up TRAIN.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:group>
	<!-- ====== TRAIN SIZE ====================================================== -->
	<xsd:element name="TrainSize" type="TrainSizeStructure">
		<xsd:annotation>
			<xsd:documentation>Requirements for TRAIN SIZe.</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:complexType name="TrainSizeStructure">
		<xsd:annotation>
			<xsd:documentation>Type for a TRAIN SIZE REQUIREMENT.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="NumberOfCars" type="xsd:nonNegativeInteger" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Number of cars needed in TRAIN.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="TrainSizeType" type="TrainSizeEnumeration" default="normal" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Nature of Train Size., Short, long, normal. Default is normal.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<!-- ====== COMPOUND TRAIN ==================================================== -->
	<xsd:element name="CompoundTrain" substitutionGroup="TransportType_Dummy">
		<xsd:annotation>
			<xsd:documentation>A vehicle composed of COMPOUND TRAIN ELEMENTs in a certain order, i.e. of wagons assembled together and propelled by a locomotive or one of the wagons.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:restriction base="CompoundTrain_VersionStructure">
					<xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="EntityInVersionGroup" minOccurs="0"/>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="DataManagedObjectGroup"/>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="TransportTypeGroup"/>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="VehicleTypeGroup"/>
						</xsd:sequence>
						<xsd:group ref="CompoundTrainGroup"/>
					</xsd:sequence>
					<xsd:attribute name="id" type="CompoundTrainIdType" use="required"/>
				</xsd:restriction>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="CompoundTrain_VersionStructure">
		<xsd:annotation>
			<xsd:documentation>Type for COMPOUND TRAIN.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="VehicleType_VersionStructure">
				<xsd:group ref="CompoundTrainGroup"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:group name="CompoundTrainGroup">
		<xsd:annotation>
			<xsd:documentation>Element for COMPOUND TRAIN.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="components" type="trainsInCompoundTrain_RelStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Ordered collection of TRAIN in COMPOUND TRAINs making up COMPOUND TRAIN. Each references a TRAIN.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:group>
	<!-- ====== TRAIN ELEMENT =================================================== -->
	<xsd:element name="TrainElementType_Dummy" substitutionGroup="DataManagedObject">
		<xsd:annotation>
			<xsd:documentation> Dummy Tpe for Train Element substitution</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:restriction base="DataManagedObjectStructure">
					<xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="EntityInVersionGroup" minOccurs="0"/>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="DataManagedObjectGroup"/>
						</xsd:sequence>
					</xsd:sequence>
					<xsd:attribute name="id" type="TrainElementTypeIdType" use="required">
						<xsd:annotation>
							<xsd:documentation>Identifier of ENTITY.</xsd:documentation>
						</xsd:annotation>
					</xsd:attribute>
				</xsd:restriction>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="TrainElement" substitutionGroup="DataManagedObject">
		<xsd:annotation>
			<xsd:documentation> According to Transmodel 6.2 This shoud really be called TRAIN ELEMENT TYPE and be abstract . Use as concrete element DEPRECATED - use more specific TRAILING ELEMENT TYPE or TRACTIVE ELEMENT TYPE subtypes, Shoul dbe renmaed and removed in V3.0</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:restriction base="TrainElementType_VersionStructure">
					<xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="EntityInVersionGroup" minOccurs="0"/>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="DataManagedObjectGroup"/>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="TrainElementTypeGroup"/>
						</xsd:sequence>
					</xsd:sequence>
					<xsd:attribute name="id" type="TrainElementTypeIdType" use="required"/>
				</xsd:restriction>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="TrainElementType_VersionStructure">
		<xsd:annotation>
			<xsd:documentation>Type for a TRAIN ELEMENT TYPE.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="DataManagedObjectStructure">
				<xsd:sequence>
					<xsd:group ref="TrainElementTypeGroup"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:group name="TrainElementTypeGroup">
		<xsd:annotation>
			<xsd:documentation>Elements for a TRAIN ELEMENT TYPE.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Name" type="MultilingualString" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Name of TRAIN ELEMENT TYPE.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Description" type="MultilingualString" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Description of TRAIN ELEMENT TYPE.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="TrainElementType" type="TrainElementTypeTypeEnumeration" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Type of TRAIN ELEMENT TYPE. NB There is a name class with the supertype. Fix in v2.0</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element ref="FareClasses" minOccurs="0"/>
			<xsd:element name="PassengerCapacity" type="PassengerCapacityStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Total Number of passengers that TRAIN ELEMENT TYPE. can carry.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:group ref="VehicleTypePropertiesGroup"/>
			<xsd:element name="facilities" type="serviceFacilitySets_RelStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Facilities in TRAIN ELEMENT TYPE.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="equipments" type="equipments_RelStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Actual EQUIPMENT on element.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element ref="DeckPlanRef" minOccurs="0"/>
		</xsd:sequence>
	</xsd:group>
	<xsd:group name="TrainDimensionsGroup">
		<xsd:annotation>
			<xsd:documentation>Dimension Elements for a TRAIN ELEMENT TYPE.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Length" type="LengthType" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>The length of an ELEMENT.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Width" type="LengthType" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>The width of an ELEMENT.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Height" type="LengthType" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>The width of an ELEMENT. +V2.0</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:group>
	<!-- ======================================================================= -->
	<xsd:group name="TrainElementTypeViewGroup">
		<xsd:annotation>
			<xsd:documentation>Elements for a TRAIN ELEMENT TYPE VIEW.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:choice>
				<xsd:annotation>
					<xsd:documentation>Open values to classify TRAIN ELEMENT TYPE</xsd:documentation>
				</xsd:annotation>
				<xsd:element ref="TrainElementTypeRef"/>
				<xsd:element ref="TrainElementRef" minOccurs="0">
					<xsd:annotation>
						<xsd:documentation>Reference to a TRAIN ELEMENT.</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
			</xsd:choice>
			<xsd:element ref="FareClasses" minOccurs="0"/>
			<xsd:choice>
				<xsd:annotation>
					<xsd:documentation>Enumerated values to classify TRAIN ELEMENT TYPE</xsd:documentation>
				</xsd:annotation>
				<xsd:element name="TrainElementTypeType" type="TrainElementTypeTypeEnumeration" minOccurs="0">
					<xsd:annotation>
						<xsd:documentation>Type of TRAIN ELEMENT TYPE. V2.0.</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element name="TrainElementType" type="TrainElementTypeTypeEnumeration" minOccurs="0">
					<xsd:annotation>
						<xsd:documentation>Type of TRAIN ELEMENT. DEPRECATED 2.0 Renamed to TYPE OF TRAIN ELEMENG TYPE</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
			</xsd:choice>
		</xsd:sequence>
	</xsd:group>
	<!-- ====== TRAIN COMPONENTs================================================= -->
	<xsd:complexType name="trainComponents_RelStructure">
		<xsd:annotation>
			<xsd:documentation>Type for a list of TRAIN COMPONENTs.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="containmentAggregationStructure">
				<xsd:choice maxOccurs="unbounded">
					<xsd:element ref="TrainComponentRef"/>
					<xsd:element ref="TrainComponent">
						<xsd:annotation>
							<xsd:documentation>An area within a Site. May be connected to Quays by PATH LINKs.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:element name="TrainComponent" substitutionGroup="DataManagedObject">
		<xsd:annotation>
			<xsd:documentation>A specification of the order of TRAIN ELEMENTs in a TRAIN.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:restriction base="TrainComponent_VersionStructure">
					<xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="EntityInVersionGroup" minOccurs="0"/>
						</xsd:sequence>
						<xsd:sequence>
							<xsd:group ref="DataManagedObjectGroup"/>
						</xsd:sequence>
						<xsd:group ref="TrainComponentGroup"/>
					</xsd:sequence>
					<xsd:attribute name="id" type="TrainComponentIdType" use="required"/>
				</xsd:restriction>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="TrainComponent_VersionStructure">
		<xsd:annotation>
			<xsd:documentation>Type for a TRAIN COMPONENT.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="DataManagedObjectStructure">
				<xsd:group ref="TrainComponentGroup"/>
				<xsd:attribute name="order" type="xsd:positiveInteger" use="optional">
					<xsd:annotation>
						<xsd:documentation>Order of TRAIN COMPONENT within TRAIN. -v2.0</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:group name="TrainComponentGroup">
		<xsd:annotation>
			<xsd:documentation>Elements for a TRAIN COMPONENT.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Label" type="MultilingualString" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Label for TRAIN COMPONENT.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Description" type="MultilingualString" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Description of TRAIN COMPONENT.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element ref="TrainRef" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Reference to a TRAIN.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:choice>
				<xsd:element ref="TrainElementTypeRef"/>
				<xsd:element ref="TrainElementRef"/>
				<xsd:element ref="TrainElement"/>
			</xsd:choice>
			<xsd:element name="OperationalOrientation" type="VehicleOrientationEnumeration" default="forwards" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Orientation of the TRAIN ELEMENT within the TRAIN. +v1.1.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ForwardCoupling" type="TrainComponentCouplingStructure" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>The nature of the coupling between the TRAIN COMPONENT and the TRAIN COMPONENT ahead of it within the TRAIN. +v2.0</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:group>
	<xsd:complexType name="TrainComponentCouplingStructure">
		<xsd:annotation>
			<xsd:documentation>Type for a TRAIN COMPONENT COUPLING.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Splittable" type="xsd:boolean" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Whether the component can be split in normal usage.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ThroughAccess" type="ThroughAccessEnumeration">
				<xsd:annotation>
					<xsd:documentation>Whether passenger can walk through coupling to next carriage.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:complexType>
	<!-- ======= TRAIN IN COMPOUND TRAIN ========================================== -->
	<xsd:complexType name="trainsInCompoundTrain_RelStructure">
		<xsd:annotation>
			<xsd:documentation>Type for a list of TRAIN IN COMPOUND TRAIN.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="strictContainmentAggregationStructure">
				<xsd:sequence>
					<xsd:element name="TrainInCompoundTrain" type="TrainInCompoundTrain_VersionedChildStructure" maxOccurs="unbounded">
						<xsd:annotation>
							<xsd:documentation>An instance of a TRAIN making up a COMPOUND TRAIN.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="TrainInCompoundTrain_VersionedChildStructure">
		<xsd:annotation>
			<xsd:documentation>Type for a TRAIN IN COMPOUND TRAIN.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="VersionedChildStructure">
				<xsd:group ref="TrainInCompoundTrainGroup">
					<xsd:annotation>
						<xsd:documentation>Elements for a TRAIN IN COMPOUND TRAIN.</xsd:documentation>
					</xsd:annotation>
				</xsd:group>
				<xsd:attribute name="order" type="xsd:positiveInteger" use="optional">
					<xsd:annotation>
						<xsd:documentation>Order of TRAIN IN COMPOUND TRAIN within TRAIN. -v2.0</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:group name="TrainInCompoundTrainGroup">
		<xsd:annotation>
			<xsd:documentation>Elements for a TRAIN IN COMPOUND TRAIN.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element name="Description" type="MultilingualString" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Description of TRAIN IN COMPOUND TRAIN.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element ref="CompoundTrainRef" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Reference to a TRAIN ELEMENT.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:choice>
				<xsd:element ref="TrainRef">
					<xsd:annotation>
						<xsd:documentation>Reference to a TRAIN.</xsd:documentation>
					</xsd:annotation>
				</xsd:element>
				<xsd:element ref="Train_Dummy"/>
				<xsd:element ref="TrainElementType_Dummy"/>
			</xsd:choice>
			<xsd:element name="Label" type="MultilingualString" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Label for TRAIN IN COMPOUND TRAIN.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="OperationalOrientation" type="VehicleOrientationEnumeration" default="forwards" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Orientation of the TRAIN IN COMPOUND TRAIN</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="ReversedOrientation" type="xsd:boolean" default="false" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Whether the component order of the TRAIN IN COMPOUND TRAIN is reversed compared to the order in the TRAIN.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
		</xsd:sequence>
	</xsd:group>
	<!-- ======================================================================= -->
	<xsd:element name="TrainComponentView" substitutionGroup="DerivedView">
		<xsd:annotation>
			<xsd:documentation>Simplified view of TRAIN COMPONENT +2.0.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="TrainComponent_DerivedViewStructure"/>
			</xsd:complexContent>
		</xsd:complexType>
	</xsd:element>
	<xsd:complexType name="TrainComponent_DerivedViewStructure">
		<xsd:annotation>
			<xsd:documentation>Type for TRAIN COMPONENT VIEW.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="DerivedViewStructure">
				<xsd:sequence>
					<xsd:group ref="TrainComponentViewGroup"/>
				</xsd:sequence>
				<xsd:attribute name="order" type="xsd:positiveInteger" use="optional">
					<xsd:annotation>
						<xsd:documentation>Order of TRAIN COMPONENT within TRAIN. -v2.0</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:group name="TrainComponentViewGroup">
		<xsd:annotation>
			<xsd:documentation>Elements for a TRAIN COMPONENT VIEW.</xsd:documentation>
		</xsd:annotation>
		<xsd:sequence>
			<xsd:element ref="TrainComponentRef" minOccurs="0"/>
			<xsd:element name="Label" type="MultilingualString" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Label for TRAIN COMPONENT.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:element name="Description" type="MultilingualString" minOccurs="0">
				<xsd:annotation>
					<xsd:documentation>Description of TRAIN COMPONENT.</xsd:documentation>
				</xsd:annotation>
			</xsd:element>
			<xsd:group ref="TrainElementTypeViewGroup">
				<xsd:annotation>
					<xsd:documentation>Elements for a TRAIN ELEMENT derived.</xsd:documentation>
				</xsd:annotation>
			</xsd:group>
		</xsd:sequence>
	</xsd:group>
	<!-- ======================================================================= -->
</xsd:schema>
