railML 2.2 Schema Documentation

Table of Contents

top

Schema Document Properties

Target Namespace http://www.railml.org/schemas/2013
Version 2.2
Element and Attribute Namespaces
  • Global element and attribute declarations belong to this schema's target namespace.
  • By default, local element declarations belong to this schema's target namespace.
  • By default, local attribute declarations have no namespace.
Schema Composition
Documentation Copyright (c) railML.org; All Rights Reserved.

This work is licensed under a Creative Commons Attribution 2.0 License. http://www.railml.org/index.php/license.html

For further information see: http://www.railml.org/

Content of this file: XML Schema for railML(R) 2.2 Definition of root element "railml", refers to elements of all sub schemas from "xs:include" paths

Declared Namespaces

Prefix Namespace
xml http://www.w3.org/XML/1998/namespace
dc http://purl.org/dc/elements/1.1/
xs http://www.w3.org/2001/XMLSchema
rail http://www.railml.org/schemas/2013
Schema Component Representation
<xs:schema targetNamespace="http://www.railml.org/schemas/2013" elementFormDefault="qualified" version="2.2">
<xs:include schemaLocation="infrastructure.xsd"/>
<xs:include schemaLocation="rollingstock.xsd"/>
<xs:include schemaLocation="timetable.xsd"/>
...
</xs:schema>
top

Global Declarations

Element: railml

Name railml
Type Locally-defined complex type
Nillable no
Abstract no
XML Instance Representation
<rail:railml
version="rail:tRailMLVersion [0..1] ?">
<!--
Key Constraint - infrastructureManagerKey
Selector - .//rail:organizationalUnits/rail:infrastructureManager
Field(s) - @id
-->
<!--
Key Reference Constraint - infrastructureManager-ownerKeyref
Selector - .//rail:infraAttributes/rail:owner
Field(s) - @infrastructureManagerRef
Refers to - rail:infrastructureManagerKey
-->
<!--
Key Reference Constraint - infrastructureManager-ownerChangeKeyref
Selector - .//rail:ownerChange
Field(s) - @infrastructureManagerRef
Refers to - rail:infrastructureManagerKey
-->
<!--
Key Reference Constraint - infrastructureManager-lineKeyref
Selector - .//rail:line
Field(s) - @infrastructureManagerRef
Refers to - rail:infrastructureManagerKey
-->
<!--
Key Constraint - vehicleManufacturerKey
Selector - .//rail:organizationalUnits/rail:vehicleManufacturer
Field(s) - @id
-->
<!--
Key Reference Constraint - vehicleManufacturer-manufacturerKeyref
Selector - .//rail:classification/rail:manufacturer
Field(s) - @vehicleManufacturerRef
Refers to - rail:vehicleManufacturerKey
-->
<!--
Key Constraint - vehicleOperatorKey
Selector - .//rail:organizationalUnits/rail:vehicleOperator
Field(s) - @id
-->
<!--
Key Reference Constraint - vehicleOperator-operatorKeyref
Selector - .//rail:classification/rail:operator
Field(s) - @vehicleOperatorRef
Refers to - rail:vehicleOperatorKey
-->
<!--
Key Constraint - customerKey
Selector - .//rail:organizationalUnits/rail:customer
Field(s) - @id
-->
<!--
Key Reference Constraint - customer-customerKeyref
Selector - .//rail:organizationalUnitBinding/rail:customer
Field(s) - @ref
Refers to - rail:customerKey
-->
<!--
Key Constraint - railwayUndertakingKey
Selector - .//rail:organizationalUnits/rail:railwayUndertaking
Field(s) - @id
-->
<!--
Key Reference Constraint - railwayUndertaking-railwayUndertakingKeyref
Selector - .//rail:organizationalUnitBinding/rail:railwayUndertaking
Field(s) - @ref
Refers to - rail:railwayUndertakingKey
-->
<!--
Key Constraint - operationalUndertakingKey
Selector - .//rail:organizationalUnits/rail:operationalUndertaking
Field(s) - @id
-->
<!--
Key Reference Constraint - operationalUndertaking-operationalUndertakingKeyref
Selector - .//rail:organizationalUnitBinding/rail:operationalUndertaking
Field(s) - @ref
Refers to - rail:operationalUndertakingKey
-->
<!--
Key Constraint - concessionaireKey
Selector - .//rail:organizationalUnits/rail:concessionaire
Field(s) - @id
-->
<!--
Key Reference Constraint - concessionaire-concessionaireKeyref
Selector - .//rail:organizationalUnitBinding/rail:concessionaire
Field(s) - @ref
Refers to - rail:concessionaireKey
-->
<!--
Key Constraint - contractorKey
Selector - .//rail:organizationalUnits/rail:contractor
Field(s) - @id
-->
<!--
Key Reference Constraint - contractor-contractorKeyref
Selector - .//rail:organizationalUnitBinding/rail:contractor
Field(s) - @ref
Refers to - rail:contractorKey
-->
<!--
Key Constraint - ocpKey
Selector - .//rail:operationControlPoints/rail:ocp
Field(s) - @id
-->
<!--
Key Reference Constraint - ocp-macroscopicNodeKeyref
Selector - .//rail:macroscopicNode
Field(s) - @ocpRef
Refers to - rail:ocpKey
-->
<!--
Key Reference Constraint - ocp-switchKeyref
Selector - .//rail:switch
Field(s) - @ocpStationRef
Refers to - rail:ocpKey
-->
<!--
Key Reference Constraint - ocp-crossSectionKeyref
Selector - .//rail:crossSections/rail:crossSection
Field(s) - @ocpRef
Refers to - rail:ocpKey
-->
<!--
Key Reference Constraint - ocp-levelCrossingKeyref
Selector - .//rail:levelCrossings/rail:levelCrossing
Field(s) - @ocpStationRef
Refers to - rail:ocpKey
-->
<!--
Key Reference Constraint - ocp-signalKeyref
Selector - .//rail:signals/rail:signal
Field(s) - @ocpStationRef
Refers to - rail:ocpKey
-->
<!--
Key Reference Constraint - ocp-trainDetectorKeyref
Selector - .//rail:trainDetectionElements/rail:trainDetector
Field(s) - @ocpStationRef
Refers to - rail:ocpKey
-->
<!--
Key Reference Constraint - ocp-trackCircuitBorderKeyref
Selector - .//rail:trainDetectionElements/rail:trackCircuitBorder
Field(s) - @ocpStationRef
Refers to - rail:ocpKey
-->
<!--
Key Reference Constraint - ocp-platformEdgeKeyref
Selector - .//rail:platformEdges/rail:platformEdge
Field(s) - @ocpRef
Refers to - rail:ocpKey
-->
<!--
Key Reference Constraint - ocp-serviceSectionKeyref
Selector - .//rail:serviceSections/rail:serviceSection
Field(s) - @ocpRef
Refers to - rail:ocpKey
-->
<!--
Key Reference Constraint - ocp-stopPostKeyref
Selector - .//rail:stopPosts/rail:stopPost
Field(s) - @ocpRef
Refers to - rail:ocpKey
-->
<!--
Key Reference Constraint - ocp-locallyControlledAreaKeyref
Selector - .//rail:trackGroups/rail:locallyControlledArea
Field(s) - @ocpStationRef
Refers to - rail:ocpKey
-->
<!--
Key Reference Constraint - ocp-stateKeyref
Selector - .//rail:states/rail:state/rail:*
Field(s) - @ocpRef
Refers to - rail:ocpKey
-->
<!--
Key Reference Constraint - ocp-signal-signalBoxKeyref
Selector - .//rail:signals/rail:signal
Field(s) - @signalBoxOcpRef
Refers to - rail:ocpKey
-->
<!--
Key Reference Constraint - ocp-signal-stationKeyref
Selector - .//rail:signals/rail:signal
Field(s) - @stationOcpRef
Refers to - rail:ocpKey
-->
<!--
Key Reference Constraint - ocp-locallyControlledArea-shortKeyref
Selector - .//rail:trackGroups/rail:locallyControlledArea
Field(s) - @ocpRef
Refers to - rail:ocpKey
-->
<!--
Key Reference Constraint - ocp-ocpTTKeyref
Selector - .//rail:ocpsTT/rail:ocpTT
Field(s) - @ocpRef
Refers to - rail:ocpKey
-->
<!--
Key Reference Constraint - ocp-connectionKeyref
Selector - .//rail:ocpTT/rail:connections/rail:connection
Field(s) - @ocpRef
Refers to - rail:ocpKey
-->
<!--
Key Reference Constraint - ocp-blockPartStartKeyref
Selector - .//rail:blockParts/rail:blockPart
Field(s) - @startOcpRef
Refers to - rail:ocpKey
-->
<!--
Key Reference Constraint - ocp-blockPartEndKeyref
Selector - .//rail:blockParts/rail:blockPart
Field(s) - @endOcpRef
Refers to - rail:ocpKey
-->
<!--
Key Constraint - trackKey
Selector - .//rail:tracks/rail:track
Field(s) - @id
-->
<!--
Key Reference Constraint - track-lineKeyref
Selector - .//rail:trackGroups/rail:line/rail:trackRef
Field(s) - @ref
Refers to - rail:trackKey
-->
<!--
Key Reference Constraint - track-locallyControlledAreaKeyref
Selector - .//rail:trackGroups/rail:locallyControlledArea/rail:trackRef
Field(s) - @ref
Refers to - rail:trackKey
-->
<!--
Key Reference Constraint - track-ocpKeyref
Selector - .//rail:operationControlPoints/rail:ocp/rail:propEquipment/rail:trackRef
Field(s) - @ref
Refers to - rail:trackKey
-->
<!--
Key Reference Constraint - track-ocpTTKeyref
Selector - .//rail:ocpsTT/rail:ocpTT
Field(s) - @trackRef
Refers to - rail:trackKey
-->
<!--
Key Reference Constraint - track-sectionTTKeyref
Selector - .//rail:ocpTT/rail:sectionTT/rail:trackRef
Field(s) - @ref
Refers to - rail:trackKey
-->
<!--
Key Constraint - lineKey
Selector - .//rail:trackGroups/rail:line
Field(s) - @id
-->
<!--
Key Reference Constraint - line-signalLineKeyref
Selector - .//rail:signal/rail:line
Field(s) - @ref
Refers to - rail:lineKey
-->
<!--
Key Reference Constraint - line-signalMilepostKeyref
Selector - .//rail:signal/rail:milepost
Field(s) - @lineRef
Refers to - rail:lineKey
-->
<!--
Key Reference Constraint - line-sectionTTKeyref
Selector - .//rail:ocpTT/rail:sectionTT
Field(s) - @lineRef
Refers to - rail:lineKey
-->
<!--
Key Constraint - vehicleKey
Selector - .//rail:vehicles/rail:vehicle
Field(s) - @id
-->
<!--
Key Reference Constraint - vehicle-vehicleFamilyKeyref
Selector - .//rail:vehicles/rail:vehicle
Field(s) - @vehicleFamilyRef
Refers to - rail:vehicleKey
-->
<!--
Key Reference Constraint - vehicle-trainOrderKeyref
Selector - .//rail:trainOrder/rail:vehicleRef
Field(s) - @vehicleRef
Refers to - rail:vehicleKey
-->
<!--
Key Reference Constraint - vehicle-bookingKeyref
Selector - .//rail:reservationInfo/rail:booking
Field(s) - @vehicleRef
Refers to - rail:vehicleKey
-->
<!--
Key Reference Constraint - vehicle-rosteringKeyref
Selector - .//rail:rosterings/rail:rostering
Field(s) - @vehicleRef
Refers to - rail:vehicleKey
-->
<!--
Key Reference Constraint - vehicle-blockPartKeyref
Selector - .//rail:blockParts/rail:blockPart
Field(s) - @vehicleRef
Refers to - rail:vehicleKey
-->
<!--
Key Constraint - formationKey
Selector - .//rail:formations/rail:formation
Field(s) - @id
-->
<!--
Key Reference Constraint - formation-formationTTKeyref
Selector - .//rail:trainParts/rail:trainPart/rail:formationTT
Field(s) - @formationRef
Refers to - rail:formationKey
-->
<!--
Key Reference Constraint - formation-rosteringKeyref
Selector - .//rail:rosterings/rail:rostering
Field(s) - @formationRef
Refers to - rail:formationKey
-->
<!--
Key Reference Constraint - formation-blockPartKeyref
Selector - .//rail:blockParts/rail:blockPart
Field(s) - @formationRef
Refers to - rail:formationKey
-->
<!--
Key Constraint - categoryKey
Selector - .//rail:categories/rail:category
Field(s) - @id
-->
<!--
Key Reference Constraint - category-trainPartKeyref
Selector - .//rail:trainParts/rail:trainPart
Field(s) - @categoryRef
Refers to - rail:categoryKey
-->
<!--
Key Reference Constraint - category-trainPartSequenceKeyref
Selector - .//rail:trains/rail:train/rail:trainPartSequence
Field(s) - @categoryRef
Refers to - rail:categoryKey
-->
<!--
Key Reference Constraint - category-formationKeyref
Selector - .//rail:formations/rail:formation/rail:categoryRef
Field(s) - @ref
Refers to - rail:categoryKey
-->
<!--
Key Constraint - speedProfileKey
Selector - .//rail:speedProfiles/rail:speedProfile
Field(s) - @id
-->
<!--
Key Reference Constraint - speedProfile-trainPartSequenceKeyref
Selector - .//rail:trainPartSequence/rail:speedProfileRef
Field(s) - @ref
Refers to - rail:speedProfileKey
-->
<!--
Key Constraint - stopPostKey
Selector - .//rail:stopPosts/rail:stopPost
Field(s) - @id
-->
<!--
Key Reference Constraint - stopPost-stopDescriptionKeyref
Selector - .//rail:ocpsTT/rail:ocpTT/rail:stopDescription
Field(s) - @stopPostRef
Refers to - rail:stopPostKey
-->
<!--
Key Constraint - platformEdgeKey
Selector - .//rail:platformEdges/rail:platformEdge
Field(s) - @id
-->
<!--
Key Reference Constraint - platformEdge-platformEdgeKeyref
Selector - .//rail:platformEdges/rail:platformEdge
Field(s) - @parentPlatformEdgeRef
Refers to - rail:platformEdgeKey
-->
<!--
Key Reference Constraint - platformEdge-stopPostKeyref
Selector - .//rail:stopPosts/rail:stopPost
Field(s) - @platformEdgeRef
Refers to - rail:platformEdgeKey
-->
<!--
Key Reference Constraint - platformEdge-stopDescriptionKeyref
Selector - .//rail:stopDescription/rail:platformEdgeRef
Field(s) - @ref
Refers to - rail:platformEdgeKey
-->
<!--
Key Constraint - serviceSectionKey
Selector - .//rail:serviceSections/rail:serviceSection
Field(s) - @id
-->
<!--
Key Reference Constraint - serviceSection-serviceSectionKeyref
Selector - .//rail:serviceSections/rail:serviceSection
Field(s) - @parentServiceSectionRef
Refers to - rail:serviceSectionKey
-->
<!--
Key Reference Constraint - serviceSection-stopDescriptionKeyref
Selector - .//rail:stopDescription/rail:serviceSectionRef
Field(s) - @ref
Refers to - rail:serviceSectionKey
-->
<!--
Key Constraint - operatingPeriodKey
Selector - .//rail:operatingPeriods/rail:operatingPeriod
Field(s) - @id
-->
<!--
Key Reference Constraint - operatingPeriod-trainPartKeyref
Selector - .//rail:trainParts/rail:trainPart/rail:operatingPeriodRef
Field(s) - @ref
Refers to - rail:operatingPeriodKey
-->
<!--
Key Reference Constraint - operatingPeriod-stopDescriptionKeyref
Selector - .//rail:ocpsTT/rail:ocpTT/rail:stopDescription
Field(s) - @operatingPeriodRef
Refers to - rail:operatingPeriodKey
-->
<!--
Key Reference Constraint - operatingPeriod-blockPartKeyref
Selector - .//rail:blockParts/rail:blockPart
Field(s) - @operatingPeriodRef
Refers to - rail:operatingPeriodKey
-->
<!--
Key Reference Constraint - operatingPeriod-circulationKeyref
Selector - .//rail:circulations/rail:circulation
Field(s) - @operatingPeriodRef
Refers to - rail:operatingPeriodKey
-->
<!--
Key Reference Constraint - operatingPeriod-circulationNextKeyref
Selector - .//rail:circulations/rail:circulation
Field(s) - @nextOperatingPeriodRef
Refers to - rail:operatingPeriodKey
-->
<!--
Key Reference Constraint - operatingPeriod-annotationKeyref
Selector - .//rail:annotationRef
Field(s) - @operatingPeriodRef
Refers to - rail:operatingPeriodKey
-->
<!--
Key Reference Constraint - operatingPeriod-stateKeyref
Selector - .//rail:states/rail:state
Field(s) - @operatingPeriodRef
Refers to - rail:operatingPeriodKey
-->
<!--
Key Reference Constraint - operatingPeriod-speedProfileKeyref
Selector - .//rail:speedProfiles/rail:speedProfile
Field(s) - @operatingPeriodRef
Refers to - rail:operatingPeriodKey
-->

<rail:metadata> rail:tMetadata </rail:metadata> [0..1] ?
<rail:infrastructure> ... </rail:infrastructure> [0..1] ?
<rail:infrastructureVisualizations> ... </rail:infrastructureVisualizations> [0..1] ?
<rail:rollingstock> ... </rail:rollingstock> [0..1] ?
<rail:timetable> ... </rail:timetable> [0..1] ?
</rail:railml>
Schema Component Representation
<xs:element name="railml">
<xs:complexType>
<xs:sequence>
<xs:element name="metadata" type="rail:tMetadata" minOccurs="0"/>
<xs:element ref="rail:infrastructure" minOccurs="0"/>
<xs:element ref="rail:infrastructureVisualizations" minOccurs="0"/>
<xs:element ref="rail:rollingstock" minOccurs="0"/>
<xs:element ref="rail:timetable" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="version" type="rail:tRailMLVersion"/>
</xs:complexType>
<-- infrastructureManager identity in metadata -->
<xs:key name="infrastructureManagerKey">
<xs:selector xpath=".//rail:organizationalUnits/rail:infrastructureManager"/>
<xs:field xpath="@id"/>
</xs:key>
<-- infrastructureManager reference in infrastructure subschema -->
<xs:keyref name="infrastructureManager-ownerKeyref" refer="rail:infrastructureManagerKey">
<xs:selector xpath=".//rail:infraAttributes/rail:owner"/>
<xs:field xpath="@infrastructureManagerRef"/>
</xs:keyref>
<xs:keyref name="infrastructureManager-ownerChangeKeyref" refer="rail:infrastructureManagerKey">
<xs:selector xpath=".//rail:ownerChange"/>
<xs:field xpath="@infrastructureManagerRef"/>
</xs:keyref>
<xs:keyref name="infrastructureManager-lineKeyref" refer="rail:infrastructureManagerKey">
<xs:selector xpath=".//rail:line"/>
<xs:field xpath="@infrastructureManagerRef"/>
</xs:keyref>
<-- vehicleManufacturer identity in metadata -->
<xs:key name="vehicleManufacturerKey">
<xs:selector xpath=".//rail:organizationalUnits/rail:vehicleManufacturer"/>
<xs:field xpath="@id"/>
</xs:key>
<-- vehicleManufacturer reference in rollingstock subschema -->
<xs:keyref name="vehicleManufacturer-manufacturerKeyref" refer="rail:vehicleManufacturerKey">
<xs:selector xpath=".//rail:classification/rail:manufacturer"/>
<xs:field xpath="@vehicleManufacturerRef"/>
</xs:keyref>
<-- vehicleOperator identity in metadata -->
<xs:key name="vehicleOperatorKey">
<xs:selector xpath=".//rail:organizationalUnits/rail:vehicleOperator"/>
<xs:field xpath="@id"/>
</xs:key>
<-- vehicleOperator reference in rollingstock subschema -->
<xs:keyref name="vehicleOperator-operatorKeyref" refer="rail:vehicleOperatorKey">
<xs:selector xpath=".//rail:classification/rail:operator"/>
<xs:field xpath="@vehicleOperatorRef"/>
</xs:keyref>
<-- customer identity in metadata -->
<xs:key name="customerKey">
<xs:selector xpath=".//rail:organizationalUnits/rail:customer"/>
<xs:field xpath="@id"/>
</xs:key>
<-- customer reference in timetable subschema -->
<xs:keyref name="customer-customerKeyref" refer="rail:customerKey">
<xs:selector xpath=".//rail:organizationalUnitBinding/rail:customer"/>
<xs:field xpath="@ref"/>
</xs:keyref>
<-- railwayUndertaking identity in metadata -->
<xs:key name="railwayUndertakingKey">
<xs:selector xpath=".//rail:organizationalUnits/rail:railwayUndertaking"/>
<xs:field xpath="@id"/>
</xs:key>
<-- railwayUndertaking reference in timetable subschema -->
<xs:keyref name="railwayUndertaking-railwayUndertakingKeyref" refer="rail:railwayUndertakingKey">
<xs:selector xpath=".//rail:organizationalUnitBinding/rail:railwayUndertaking"/>
<xs:field xpath="@ref"/>
</xs:keyref>
<-- operationalUndertaking identity in metadata -->
<xs:key name="operationalUndertakingKey">
<xs:selector xpath=".//rail:organizationalUnits/rail:operationalUndertaking"/>
<xs:field xpath="@id"/>
</xs:key>
<-- operationalUndertaking reference in timetable subschema -->
<xs:keyref name="operationalUndertaking-operationalUndertakingKeyref" refer="rail:operationalUndertakingKey">
<xs:selector xpath=".//rail:organizationalUnitBinding/rail:operationalUndertaking"/>
<xs:field xpath="@ref"/>
</xs:keyref>
<-- concessionaire identity in metadata -->
<xs:key name="concessionaireKey">
<xs:selector xpath=".//rail:organizationalUnits/rail:concessionaire"/>
<xs:field xpath="@id"/>
</xs:key>
<-- concessionaire reference in timetable subschema -->
<xs:keyref name="concessionaire-concessionaireKeyref" refer="rail:concessionaireKey">
<xs:selector xpath=".//rail:organizationalUnitBinding/rail:concessionaire"/>
<xs:field xpath="@ref"/>
</xs:keyref>
<-- contractor identity in metadata -->
<xs:key name="contractorKey">
<xs:selector xpath=".//rail:organizationalUnits/rail:contractor"/>
<xs:field xpath="@id"/>
</xs:key>
<-- contractor reference in timetable subschema -->
<xs:keyref name="contractor-contractorKeyref" refer="rail:contractorKey">
<xs:selector xpath=".//rail:organizationalUnitBinding/rail:contractor"/>
<xs:field xpath="@ref"/>
</xs:keyref>
<-- ocp idendity in infrastructure subschema -->
<xs:key name="ocpKey">
<xs:selector xpath=".//rail:operationControlPoints/rail:ocp"/>
<xs:field xpath="@id"/>
</xs:key>
<-- ocp reference in infrastructure subschema -->
<xs:keyref name="ocp-macroscopicNodeKeyref" refer="rail:ocpKey">
<xs:selector xpath=".//rail:macroscopicNode"/>
<xs:field xpath="@ocpRef"/>
</xs:keyref>
<xs:keyref name="ocp-switchKeyref" refer="rail:ocpKey">
<xs:selector xpath=".//rail:switch"/>
<xs:field xpath="@ocpStationRef"/>
</xs:keyref>
<xs:keyref name="ocp-crossSectionKeyref" refer="rail:ocpKey">
<xs:selector xpath=".//rail:crossSections/rail:crossSection"/>
<xs:field xpath="@ocpRef"/>
</xs:keyref>
<xs:keyref name="ocp-levelCrossingKeyref" refer="rail:ocpKey">
<xs:selector xpath=".//rail:levelCrossings/rail:levelCrossing"/>
<xs:field xpath="@ocpStationRef"/>
</xs:keyref>
<xs:keyref name="ocp-signalKeyref" refer="rail:ocpKey">
<xs:selector xpath=".//rail:signals/rail:signal"/>
<xs:field xpath="@ocpStationRef"/>
</xs:keyref>
<xs:keyref name="ocp-trainDetectorKeyref" refer="rail:ocpKey">
<xs:selector xpath=".//rail:trainDetectionElements/rail:trainDetector"/>
<xs:field xpath="@ocpStationRef"/>
</xs:keyref>
<xs:keyref name="ocp-trackCircuitBorderKeyref" refer="rail:ocpKey">
<xs:selector xpath=".//rail:trainDetectionElements/rail:trackCircuitBorder"/>
<xs:field xpath="@ocpStationRef"/>
</xs:keyref>
<xs:keyref name="ocp-platformEdgeKeyref" refer="rail:ocpKey">
<xs:selector xpath=".//rail:platformEdges/rail:platformEdge"/>
<xs:field xpath="@ocpRef"/>
</xs:keyref>
<xs:keyref name="ocp-serviceSectionKeyref" refer="rail:ocpKey">
<xs:selector xpath=".//rail:serviceSections/rail:serviceSection"/>
<xs:field xpath="@ocpRef"/>
</xs:keyref>
<xs:keyref name="ocp-stopPostKeyref" refer="rail:ocpKey">
<xs:selector xpath=".//rail:stopPosts/rail:stopPost"/>
<xs:field xpath="@ocpRef"/>
</xs:keyref>
<xs:keyref name="ocp-locallyControlledAreaKeyref" refer="rail:ocpKey">
<xs:selector xpath=".//rail:trackGroups/rail:locallyControlledArea"/>
<xs:field xpath="@ocpStationRef"/>
</xs:keyref>
<xs:keyref name="ocp-stateKeyref" refer="rail:ocpKey">
<xs:selector xpath=".//rail:states/rail:state/rail:*"/>
<xs:field xpath="@ocpRef"/>
</xs:keyref>
<xs:keyref name="ocp-signal-signalBoxKeyref" refer="rail:ocpKey">
<xs:selector xpath=".//rail:signals/rail:signal"/>
<xs:field xpath="@signalBoxOcpRef"/>
<-- Deprecated -->
</xs:keyref>
<xs:keyref name="ocp-signal-stationKeyref" refer="rail:ocpKey">
<xs:selector xpath=".//rail:signals/rail:signal"/>
<xs:field xpath="@stationOcpRef"/>
<-- Deprecated -->
</xs:keyref>
<xs:keyref name="ocp-locallyControlledArea-shortKeyref" refer="rail:ocpKey">
<xs:selector xpath=".//rail:trackGroups/rail:locallyControlledArea"/>
<xs:field xpath="@ocpRef"/>
<-- Deprecated -->
</xs:keyref>
<-- ocp reference in timetable subschema -->
<xs:keyref name="ocp-ocpTTKeyref" refer="rail:ocpKey">
<xs:selector xpath=".//rail:ocpsTT/rail:ocpTT"/>
<xs:field xpath="@ocpRef"/>
</xs:keyref>
<xs:keyref name="ocp-connectionKeyref" refer="rail:ocpKey">
<xs:selector xpath=".//rail:ocpTT/rail:connections/rail:connection"/>
<xs:field xpath="@ocpRef"/>
</xs:keyref>
<xs:keyref name="ocp-blockPartStartKeyref" refer="rail:ocpKey">
<xs:selector xpath=".//rail:blockParts/rail:blockPart"/>
<xs:field xpath="@startOcpRef"/>
</xs:keyref>
<xs:keyref name="ocp-blockPartEndKeyref" refer="rail:ocpKey">
<xs:selector xpath=".//rail:blockParts/rail:blockPart"/>
<xs:field xpath="@endOcpRef"/>
</xs:keyref>
<-- track idendity in infrastructure subschema -->
<xs:key name="trackKey">
<xs:selector xpath=".//rail:tracks/rail:track"/>
<xs:field xpath="@id"/>
</xs:key>
<-- track reference in infrastructure subschema -->
<xs:keyref name="track-lineKeyref" refer="rail:trackKey">
<xs:selector xpath=".//rail:trackGroups/rail:line/rail:trackRef"/>
<xs:field xpath="@ref"/>
</xs:keyref>
<xs:keyref name="track-locallyControlledAreaKeyref" refer="rail:trackKey">
<xs:selector xpath=".//rail:trackGroups/rail:locallyControlledArea/rail:trackRef"/>
<xs:field xpath="@ref"/>
</xs:keyref>
<xs:keyref name="track-ocpKeyref" refer="rail:trackKey">
<xs:selector xpath=".//rail:operationControlPoints/rail:ocp/rail:propEquipment/rail:trackRef"/>
<xs:field xpath="@ref"/>
</xs:keyref>
<-- track reference in timetable subschema -->
<xs:keyref name="track-ocpTTKeyref" refer="rail:trackKey">
<xs:selector xpath=".//rail:ocpsTT/rail:ocpTT"/>
<xs:field xpath="@trackRef"/>
</xs:keyref>
<xs:keyref name="track-sectionTTKeyref" refer="rail:trackKey">
<xs:selector xpath=".//rail:ocpTT/rail:sectionTT/rail:trackRef"/>
<xs:field xpath="@ref"/>
</xs:keyref>
<-- line idendity in infrastructure subschema -->
<xs:key name="lineKey">
<xs:selector xpath=".//rail:trackGroups/rail:line"/>
<xs:field xpath="@id"/>
</xs:key>
<-- line reference in infrastructure subschema -->
<xs:keyref name="line-signalLineKeyref" refer="rail:lineKey">
<xs:selector xpath=".//rail:signal/rail:line"/>
<xs:field xpath="@ref"/>
</xs:keyref>
<xs:keyref name="line-signalMilepostKeyref" refer="rail:lineKey">
<xs:selector xpath=".//rail:signal/rail:milepost"/>
<xs:field xpath="@lineRef"/>
</xs:keyref>
<-- line reference in timetable subschema -->
<xs:keyref name="line-sectionTTKeyref" refer="rail:lineKey">
<xs:selector xpath=".//rail:ocpTT/rail:sectionTT"/>
<xs:field xpath="@lineRef"/>
</xs:keyref>
<-- vehicle idendity in rollingstock subschema -->
<xs:key name="vehicleKey">
<xs:selector xpath=".//rail:vehicles/rail:vehicle"/>
<xs:field xpath="@id"/>
</xs:key>
<-- vehicle reference in rollingstock subschema -->
<xs:keyref name="vehicle-vehicleFamilyKeyref" refer="rail:vehicleKey">
<xs:selector xpath=".//rail:vehicles/rail:vehicle"/>
<xs:field xpath="@vehicleFamilyRef"/>
</xs:keyref>
<xs:keyref name="vehicle-trainOrderKeyref" refer="rail:vehicleKey">
<xs:selector xpath=".//rail:trainOrder/rail:vehicleRef"/>
<xs:field xpath="@vehicleRef"/>
</xs:keyref>
<-- vehicle reference in timetable subschema -->
<xs:keyref name="vehicle-bookingKeyref" refer="rail:vehicleKey">
<xs:selector xpath=".//rail:reservationInfo/rail:booking"/>
<xs:field xpath="@vehicleRef"/>
</xs:keyref>
<xs:keyref name="vehicle-rosteringKeyref" refer="rail:vehicleKey">
<xs:selector xpath=".//rail:rosterings/rail:rostering"/>
<xs:field xpath="@vehicleRef"/>
</xs:keyref>
<xs:keyref name="vehicle-blockPartKeyref" refer="rail:vehicleKey">
<xs:selector xpath=".//rail:blockParts/rail:blockPart"/>
<xs:field xpath="@vehicleRef"/>
</xs:keyref>
<-- formation idendity in rollingstock subschema -->
<xs:key name="formationKey">
<xs:selector xpath=".//rail:formations/rail:formation"/>
<xs:field xpath="@id"/>
</xs:key>
<-- formation reference in timetable subschema -->
<xs:keyref name="formation-formationTTKeyref" refer="rail:formationKey">
<xs:selector xpath=".//rail:trainParts/rail:trainPart/rail:formationTT"/>
<xs:field xpath="@formationRef"/>
</xs:keyref>
<xs:keyref name="formation-rosteringKeyref" refer="rail:formationKey">
<xs:selector xpath=".//rail:rosterings/rail:rostering"/>
<xs:field xpath="@formationRef"/>
</xs:keyref>
<xs:keyref name="formation-blockPartKeyref" refer="rail:formationKey">
<xs:selector xpath=".//rail:blockParts/rail:blockPart"/>
<xs:field xpath="@formationRef"/>
</xs:keyref>
<-- category idendity in timetable subschema -->
<xs:key name="categoryKey">
<xs:selector xpath=".//rail:categories/rail:category"/>
<xs:field xpath="@id"/>
</xs:key>
<-- category reference in timetable subschema -->
<xs:keyref name="category-trainPartKeyref" refer="rail:categoryKey">
<xs:selector xpath=".//rail:trainParts/rail:trainPart"/>
<xs:field xpath="@categoryRef"/>
</xs:keyref>
<xs:keyref name="category-trainPartSequenceKeyref" refer="rail:categoryKey">
<xs:selector xpath=".//rail:trains/rail:train/rail:trainPartSequence"/>
<xs:field xpath="@categoryRef"/>
</xs:keyref>
<-- category reference in rollingstock subschema -->
<xs:keyref name="category-formationKeyref" refer="rail:categoryKey">
<xs:selector xpath=".//rail:formations/rail:formation/rail:categoryRef"/>
<xs:field xpath="@ref"/>
</xs:keyref>
<-- speed profile idendity in infrastructure subschema -->
<xs:key name="speedProfileKey">
<xs:selector xpath=".//rail:speedProfiles/rail:speedProfile"/>
<xs:field xpath="@id"/>
</xs:key>
<-- speed profile reference in timetable subschema -->
<xs:keyref name="speedProfile-trainPartSequenceKeyref" refer="rail:speedProfileKey">
<xs:selector xpath=".//rail:trainPartSequence/rail:speedProfileRef"/>
<xs:field xpath="@ref"/>
</xs:keyref>
<-- stop post idendity in infrastructure subschema -->
<xs:key name="stopPostKey">
<xs:selector xpath=".//rail:stopPosts/rail:stopPost"/>
<xs:field xpath="@id"/>
</xs:key>
<-- stop post reference in timetable subschema -->
<xs:keyref name="stopPost-stopDescriptionKeyref" refer="rail:stopPostKey">
<xs:selector xpath=".//rail:ocpsTT/rail:ocpTT/rail:stopDescription"/>
<xs:field xpath="@stopPostRef"/>
</xs:keyref>
<-- platform edge identity in infrastructure subschema -->
<xs:key name="platformEdgeKey">
<xs:selector xpath=".//rail:platformEdges/rail:platformEdge"/>
<xs:field xpath="@id"/>
</xs:key>
<-- platform edge reference in infrastructure subschema -->
<xs:keyref name="platformEdge-platformEdgeKeyref" refer="rail:platformEdgeKey">
<xs:selector xpath=".//rail:platformEdges/rail:platformEdge"/>
<xs:field xpath="@parentPlatformEdgeRef"/>
</xs:keyref>
<xs:keyref name="platformEdge-stopPostKeyref" refer="rail:platformEdgeKey">
<xs:selector xpath=".//rail:stopPosts/rail:stopPost"/>
<xs:field xpath="@platformEdgeRef"/>
</xs:keyref>
<-- platform edge reference in timetable subschema -->
<xs:keyref name="platformEdge-stopDescriptionKeyref" refer="rail:platformEdgeKey">
<xs:selector xpath=".//rail:stopDescription/rail:platformEdgeRef"/>
<xs:field xpath="@ref"/>
</xs:keyref>
<-- service section identity in infrastructure subschema -->
<xs:key name="serviceSectionKey">
<xs:selector xpath=".//rail:serviceSections/rail:serviceSection"/>
<xs:field xpath="@id"/>
</xs:key>
<-- service section reference in infrastructure subschema -->
<xs:keyref name="serviceSection-serviceSectionKeyref" refer="rail:serviceSectionKey">
<xs:selector xpath=".//rail:serviceSections/rail:serviceSection"/>
<xs:field xpath="@parentServiceSectionRef"/>
</xs:keyref>
<-- service section reference in timetable subschema -->
<xs:keyref name="serviceSection-stopDescriptionKeyref" refer="rail:serviceSectionKey">
<xs:selector xpath=".//rail:stopDescription/rail:serviceSectionRef"/>
<xs:field xpath="@ref"/>
</xs:keyref>
<-- operating period identity in timetable subschema -->
<xs:key name="operatingPeriodKey">
<xs:selector xpath=".//rail:operatingPeriods/rail:operatingPeriod"/>
<xs:field xpath="@id"/>
</xs:key>
<-- operating period reference in timetable subschema -->
<xs:keyref name="operatingPeriod-trainPartKeyref" refer="rail:operatingPeriodKey">
<xs:selector xpath=".//rail:trainParts/rail:trainPart/rail:operatingPeriodRef"/>
<xs:field xpath="@ref"/>
</xs:keyref>
<xs:keyref name="operatingPeriod-stopDescriptionKeyref" refer="rail:operatingPeriodKey">
<xs:selector xpath=".//rail:ocpsTT/rail:ocpTT/rail:stopDescription"/>
<xs:field xpath="@operatingPeriodRef"/>
</xs:keyref>
<xs:keyref name="operatingPeriod-blockPartKeyref" refer="rail:operatingPeriodKey">
<xs:selector xpath=".//rail:blockParts/rail:blockPart"/>
<xs:field xpath="@operatingPeriodRef"/>
</xs:keyref>
<xs:keyref name="operatingPeriod-circulationKeyref" refer="rail:operatingPeriodKey">
<xs:selector xpath=".//rail:circulations/rail:circulation"/>
<xs:field xpath="@operatingPeriodRef"/>
</xs:keyref>
<xs:keyref name="operatingPeriod-circulationNextKeyref" refer="rail:operatingPeriodKey">
<xs:selector xpath=".//rail:circulations/rail:circulation"/>
<xs:field xpath="@nextOperatingPeriodRef"/>
</xs:keyref>
<xs:keyref name="operatingPeriod-annotationKeyref" refer="rail:operatingPeriodKey">
<xs:selector xpath=".//rail:annotationRef"/>
<xs:field xpath="@operatingPeriodRef"/>
</xs:keyref>
<-- operating period reference in infrastructure subschema -->
<xs:keyref name="operatingPeriod-stateKeyref" refer="rail:operatingPeriodKey">
<xs:selector xpath=".//rail:states/rail:state"/>
<xs:field xpath="@operatingPeriodRef"/>
</xs:keyref>
<xs:keyref name="operatingPeriod-speedProfileKeyref" refer="rail:operatingPeriodKey">
<xs:selector xpath=".//rail:speedProfiles/rail:speedProfile"/>
<xs:field xpath="@operatingPeriodRef"/>
</xs:keyref>
</xs:element>
top