Schema railML.xsd


schema location ..\schema\railML.xsd
attributeFormDefault
elementFormDefault qualified
targetNamespace https://www.railml.org/schemas/2018
 
Elements 
railml 


schema location ..\schema\infrastructure.xsd
attributeFormDefault
elementFormDefault qualified
targetNamespace https://www.railml.org/schemas/2018
 
Elements  Complex types 
infrastructure  eAttributes 
infrastructureVisualizations  eAxleWeightChanges 
eBalises 
eBorder 
eBridge 
eBridges 
eClearanceGaugeChanges 
eConnections 
eControllers 
eCrossedElements 
eCrossing 
eCrossSections 
eDerailers 
eElectrificationChanges 
eGaugeChanges 
eGeneralInfraAttribute 
eGeneralInfraAttributes 
eGeoMappings 
eGradientChanges 
eInfraAttr 
eInfraAttrGroup 
eInfraAttrGroupRefs 
eInfrastructureVisualization 
eLevelCrossing 
eLevelCrossings 
eLine 
eLineVis 
eLocallyControlledArea 
eLocks 
eMileageChanges 
eOcp 
eOcpPropEquipment 
eOcpPropOperational 
eOcpPropOther 
eOcpVis 
eOcsElements 
eOperationControlPoints 
eOperationModeChanges 
eOwnerChanges 
ePlatformEdges 
ePowerTransmissionChanges 
eRadiusChanges 
eServiceSections 
eSignalGroup 
eSignalGroups 
eSignals 
eSpeedChanges 
eSpeedProfiles 
eSpeeds 
eStopPosts 
eSwitch 
eTrack 
eTrackBegin 
eTrackConditions 
eTrackElements 
eTrackElementVis 
eTrackEnd 
eTrackGroups 
eTrackNode 
eTracks 
eTrackTopology 
eTrackVis 
eTrainDetectionElements 
eTrainProtectionChanges 
eTrainProtectionElements 
eTrainRadioChanges 
eTunnel 
eTunnels 


schema location ..\schema\rollingstock.xsd
attributeFormDefault
elementFormDefault qualified
targetNamespace https://www.railml.org/schemas/2018
 
Elements  Complex types 
rollingstock  eAuxiliarySupply 
eClassification 
eCouplers 
eCurvingLimitation 
eDoors 
eElectricalCoupler 
eEngine 
eETCS 
eFormation 
eFormations 
eFourQuadrantChopper 
eGear 
eGoods 
eLoadLimit 
eLoadLimitMatrix 
eMaintenanceIntervals 
eMechanicalCoupler 
eMonitoring 
eOperator 
ePantograph 
ePassenger 
ePneumaticCoupler 
ePropulsion 
ePulsePattern 
eStorage 
eTractionInverter 
eTractionMotor 
eTrainOrder 
eTrainRadio 
eTransformer 
eVehicle 
eVehicleBrake 
eVehicleBrakes 
eVehicles 
eWagon 


schema location ..\schema\timetable.xsd
attributeFormDefault
elementFormDefault qualified
targetNamespace https://www.railml.org/schemas/2018
 
Elements  Complex types 
timetable  eAnnotation 
eAnnotations 
eArrivalDepartureTimes 
eBlock 
eBlockParts 
eBlockPartSequence 
eBlocks 
eBrakeUsage 
eCategories 
eCategory 
eCirculations 
eConnectionsTT 
eConnectionTT 
eEquipment 
eEquipmentUsage 
eExternalReference 
eFormationTT 
eHolidays 
eOcpsTT 
eOcpTT 
eOperatingDay 
eOperatingPeriod 
eOperatingPeriodRef 
eOperatingPeriods 
eOrganizationalUnitBinding 
ePassengerFacilityTT 
eReplacedTrains 
eReplacementOf 
eReservationInfo 
eRostering 
eRosterings 
eSectionTT 
eStatistic 
eStatistics 
eStopActivities 
eStopDescription 
eTapTsiTransportOperationalIdentifier 
eTimetablePeriod 
eTimetablePeriods 
eTrain 
eTrainGroup 
eTrainGroups 
eTrainPart 
eTrainParts 
eTrainPartSequence 
eTrains 


schema location ..\schema\infrastructureTypes.xsd
attributeFormDefault
elementFormDefault qualified
targetNamespace https://www.railml.org/schemas/2018
 
Complex types  Simple types  Attr. groups 
tAdditionalOcpName  tBaliseCountryID  aAbsPosition 
tAttribute  tBaliseGroupID  aAxleWeight 
tAxleWeight  tBaliseGroupType  aBalise 
tAxleWeightChange  tBaliseLinkingAcc  aConnectionData 
tBalise  tBaliseLinkReaction  aController 
tBaliseGroup  tBorderType  aCrossedElement 
tBaliseRefInGroup  tClearanceManaging  aDelimitedOrientation 
tBasePlacedElement  tConnectionOrientation  aElectrification 
tBaseServiceSection  tControllerTechnologyType  aEpsgCode 
tBorder  tControllerType  aGauge 
tBraking  tCourse  aInfrastructure 
tBridge  tCrossedElementType  aLine 
tBufferStop  tCrossingType  aOcpRef 
tClearanceGaugeChange  tCrossSectionBlockType  aOperationMode 
tCommonSwitchAndCrossingData  tDerailKind  aOrientation 
tConnectionData  tDetectionObject  aOwner 
tController  tDetectorMedium  aPowerTransmission 
tCrossedElement  tElectrificationType  aRadiusChange 
tCrossing  tHorizontalCurveType  aRelPosition 
tCrossSection  tInfluence  aSignal 
tDelimitedOrientedElement  tInfrastructureStatus  aSignalGroup 
tDelimitedOrientedElementWithLength  tInsulatedRailSide  aSpeed 
tDerailer  tLevelCrossingSignalType  aStopPost 
tDesignator  tLineType  aStrictOrientation 
tElectrification  tMaxTrainCurrentType  aTrainProtection 
tElectrificationChange  tMaxTrainCurrentValidFor  aTrainRadioInfrastructure 
tEpsgCode  tMileageChangeDescr 
tGauge  tOcpCenterSide 
tGaugeChange  tOcpManMode 
tGeoCoord  tOcpNameType 
tGradientChange  tOcpOperationalType 
tInfrastructure  tOcpTrafficType 
tInfrastructureVisualization  tPIG 
tLevelCrossing  tPosInTrack 
tLine  tPowerTransmissionType 
tLocallyControlledArea  tSide 
tLocation  tSignalFunction 
tLock  tSignalGroupType 
tMacroscopicNode  tSignalKind 
tMaxTrainCurrent  tSignalType 
tMileageChange  tSwitchType 
tOcpAdditionalName  tTrackConditionType 
tOcpArea  tTrackType 
tOcpPropEquipmentSummary  tTrainMovements 
tOcpPropOperational  tTrainRadioNetworkSelection 
tOcpPropOther  tTrainRadioSystem 
tOcpPropService  tTrainRelation 
tOcpRefInGroup  tTunnelType 
tOcpTsi  tVMax 
tOcpUptime 
tOcpWithIDAndName 
tOpenEnd 
tOperationControlPoint 
tOperationMode 
tOperationModeChange 
tOrientedElement 
tOrientedElementWithLength 
tOwner 
tOwnerChange 
tPath 
tPlacedElement 
tPlacedElementWithLength 
tPlatformEdge 
tPoint 
tPowerTransmission 
tPowerTransmissionChange 
tRadiusChange 
tRuleCodeElement 
tServiceSection 
tSignal 
tSignalBase 
tSignalBraking 
tSignalCatenary 
tSignalEtcs 
tSignalGroup 
tSignalLevelCrossing 
tSignalLine 
tSignalMilepost 
tSignalRefInGroup 
tSignalSpeed 
tSignalTrainRadio 
tSize 
tSpeedChange 
tSpeedInfo 
tSpeedProfile 
tState 
tStates 
tStatesWithLength 
tStateWithLength 
tStopPost 
tStrictOrientedElement 
tStrictOrientedElementWithLength 
tSwitch 
tSwitchConnectionData 
tTrack 
tTrackCircuitBorder 
tTrackCondition 
tTrackNode 
tTrackRefInGroup 
tTrainDetector 
tTrainProtection 
tTrainProtectionChange 
tTrainProtectionElement 
tTrainProtectionElementGroup 
tTrainRadioAttributes 
tTrainRadioChange 
tTunnel 
tValidForMovements 


schema location http://www.w3.org/2001/03/xml.xsd
attributeFormDefault
elementFormDefault
targetNamespace http://www.w3.org/XML/1998/namespace
 
Attributes  Attr. groups 
base  specialAttrs 
lang 
space 


schema location ..\schema\rollingstockTypes.xsd
attributeFormDefault
elementFormDefault qualified
targetNamespace https://www.railml.org/schemas/2018
 
Complex types  Simple types  Attr. groups 
tAuxiliarySupply  tAcousticSignalType  aAssemblyNameNumber 
tAuxiliarySupplySystem  tAxleDriveType  aAuxiliarySupply 
tBasicBrakeOperation  tBearingType  aBasicBrakeOperation 
tCurrentCurve  tCabPositionType  aCurvingLimitation 
tCurrentLimitation  tElectricalCouplerDesignType  aDieselEngine 
tCurve  tEndPositionType  aDoors 
tCurvingLimitationType  tFreightCarType  aDriversCab 
tDecelerationCurve  tGangwayDesignType  aEddyCurrentBrake 
tDieselEngine  tGangwayPosition  aElectricalWagonCoupler 
tDoors  tHeadShapeType  aElectrificationSystem 
tDriversCabType  tLoadSwitch  aEngine 
tEddyCurrentBrake  tMechanicalCouplerDesignType  aFormation 
tEfficiencyCurve  tModulationType  aFourQuadrantChopper 
tEffortCurve  tMotivePowerType  aGangway 
tElectricalWagonCouplerType  tPantographControlType  aGear 
tElectrificationSystem  tPantographPositionType  aGoods 
tEngine  tPneumaticCouplerFunctionType  aLineClassification 
tETCS  tPropulsionControlType  aLoadLimit 
tFormation  tRackSystemType  aLoadLimitMatrix 
tFourQuadrantChopper  tRadioSystem  aMaintenanceInterval 
tGangway  tRelatedPositionType  aManufacturer 
tGear  tSpeedRangeType  aMechanicalWagonCoupler 
tGoods  tSupervisionType  aMonitoringGeneric 
tLineClassification  tTechnicalStopActivityTypes  aMonitoringSystem 
tLink  tTorqueConversionType  aNominalElectrical 
tLoadLimitMatrixType  tTransmission  aOperator 
tLoadLimitType  tVehicleCategoryType  aPantograph 
tLosses  aPassenger 
tMaintenanceInterval  aPassengerFlowSpeed 
tManufacturer  aPneumaticWagonCoupler 
tMechanicalWagonCouplerType  aPropulsion 
tMonitoring  aRackTraction 
tNationalSystem  aRailNetwork 
tOperator  aResistanceFormula 
tOtherEquipment  aRollingstock 
tPantograph  aSpecificTransmissionModule 
tPassenger  aSpeedProfileRefRS 
tPassengerFlowSpeed  aStorage 
tPneumaticWagonCouplerType  aTechnicalStopActivity 
tPropulsion  aTractionInverter 
tRackTractionType  aTractionMotor 
tRailNetwork  aTrainEngine 
tRollingstock  aTrainRadio 
tSpecificTransmissionModule  aTransformer 
tSpeedProfileRefRS  aVehicle 
tStorage  aVehicleBrake 
tTechnicalStopActivity  aVehicleIdentification 
tTractionInverter  aVehicleRef 
tTractionMotor  aWagon 
tTrainEngine  aWinding 
tTrainRadio 
tTrainResistance 
tTransformer 
tValueTable 
tVehicle 
tVehicleIdentification 
tVehicleRef 
tWagon 
tWinding 


schema location ..\schema\timetableTypes.xsd
attributeFormDefault
elementFormDefault qualified
targetNamespace https://www.railml.org/schemas/2018
 
Complex types  Simple types  Attr. groups 
tAnnotation  tBitMask  aAnnotation 
tAnnotationRef  tCompanyCode  aAnnotationRef 
tAnnotationText  tConnOperation  aArrivalDepartureDelay 
tArrivalDepartureTimes  tConnType  aArrivalDepartureTimes 
tBlock  tMission  aBlock 
tBlockPart  tOcpTTType  aBlockPart 
tBlockPartRef  tOnOff  aBlockPartSequence 
tBlockPartSequence  tOperatingCode  aBooking 
tBooking  tPathStatus  aBrakeUsage 
tCategory  tPlaceReservation  aCategory 
tCirculation  tProcessStatus  aCirculation 
tConnectionTT  tRosteringScope  aConnectionTT 
tEquipment  tSpecialServiceType  aEquipment 
tEtcsTT  tStatisticFigure  aFormationTT 
tFormationTT  tStopActivityTypes  aHoliday 
tHoliday  tTapTsiCore  aOcpTT 
tOcpTT  tTapTsiObjectType  aOperatingCode 
tOperatingDay  tTapTsiStartDate  aOperatingDayDeviance 
tOperatingDayDeviance  tTapTsiTimetableYear  aOperatingPeriod 
tOperatingPeriod  tTapTsiVariant  aOperatingPeriodRef 
tOperatingPeriodRef  tTimeScope  aRostering 
tPlacesTT  tTrainGroupType  aRunTimes 
tPlatformEdgeRef  tTrainScope  aSectionTT 
tRostering  tTrainType  aServicePeriod 
tRunTimes  aSpecialService 
tSectionTT  aStatisticAnalyses 
tServiceSectionRef  aStopActivity 
tSpecialService  aStopDescription 
tSpeedProfileRef  aStopTimes 
tStandardDeviationTimes  aTapTsiCompositIdentifierOperationalType 
tStationTrackInfo  aTimesScope 
tStatistic  aTimetable 
tStatisticAnalyses  aTimetablePeriod 
tStatisticTimes  aTrain 
tStopActivity  aTrainGroup 
tStopDescription  aTrainPart 
tStopTimes  aTrainPartRef 
tTapTsiCompositIdentifierOperationalType  aTrainPartSequence 
tTimetable  aUniqueTrainKey 
tTimetablePeriod 
tTopologyReference 
tTrackRef 
tTrain 
tTrainGroup 
tTrainPart 
tTrainPartRef 
tTrainPartSequence 
tUniqueTrainKey 


schema location ..\schema\railwayUnits.xsd
attributeFormDefault
elementFormDefault qualified
targetNamespace https://www.railml.org/schemas/2018
 
Simple types 
tDelimitedDirection 
tEffortNewton 
tEtcsTrainCategory 
tExtendedDirection 
tFlowDirection 
tLaxDirection 
tMeterload 
tMeterloadTonsPerMeter 
tMileageDirection 
tStrictDirection 
tTrainAlignment 
tTrainCategory 


schema location ..\schema\railwayBaseTypes.xsd
attributeFormDefault
elementFormDefault qualified
targetNamespace https://www.railml.org/schemas/2018
 
Complex types  Simple types  Attr. groups 
ePassengerFacility  tAirBrakeApplicationPosition  aAuxiliaryBrakes 
tBasicBrakeType  tBrakePercentage  aBasicBrakeAttributes 
tClearanceGaugeType  tBrakeType  aClearanceGauge 
tConcessionaire  tBrakeUse  aETCS 
tContractor  tHexString  aMinBasicBrakeAttributes 
tCustomer  tInterlockingTypes  aPeriodTimeSpan 
tInfrastructureManager  tLineClassificationType  aPlaces 
tMetadata  tPassengersPerSecond  aService 
tOperationalUndertaking  tPlaceCategory  aTilting 
tOrganizationalUnits  tServiceType  aTimePeriod 
tPlaces  tTiltingActuationType 
tRailwayUndertaking  tTimeZone 
tService  tTrainProtectionMedium 
tTilting  tTrainProtectionMonitoring 
tTimeSpan  tUsageType 
tVehicleManufacturer 
tVehicleOperator 


schema location ..\schema\physicalUnits.xsd
attributeFormDefault
elementFormDefault qualified
targetNamespace https://www.railml.org/schemas/2018
 
Simple types 
tAcceleration 
tAccelerationMeterPerSquareSec 
tAngleDeg 
tAngleDegFullCircle 
tAngleDegQuadrant 
tArea 
tAreaSquareMeter 
tCurrent 
tCurrentAmpere 
tEnergy 
tEnergyKiloWattHours 
tFlux 
tFluxVoltSecond 
tForce 
tForceCoefficentNewton 
tForceNewton 
tFrequency 
tFrequencyHertz 
tGradient 
tGradientPromille 
tInductance 
tInductanceHenry 
tLength 
tLengthKM 
tLengthM 
tLengthMM 
tPower 
tPowerWatt 
tRadiusM 
tResistance 
tResistanceOhm 
tRotationalFrequency 
tRotationalFrequencyRevolutionsPerMinute 
tSpeed 
tSpeedDegreesPerSecond 
tSpeedKmPerHour 
tSpeedMPerSec 
tUnitName 
tVoltage 
tVoltageVolt 
tVolume 
tVolumeCubicMeter 
tVolumeLitre 
tWeight 
tWeightKG 
tWeightTons 


schema location ..\schema\genericRailML.xsd
attributeFormDefault
elementFormDefault qualified
targetNamespace https://www.railml.org/schemas/2018
 
Complex types  Simple types  Attr. groups 
tAdditionalName  tCoordinateList  anyAttribute 
tElementRefInGroup  tCounter 
tElementWithIDAndName  tDigitString 
tElementWithIDAndNameWithoutAny  tDoubleList 
tElementWithReference  tElementDescription 
tGlobalElementWithMetadata  tFiveDigits 
tFiveLetterString 
tFourDigits 
tGenericID 
tGenericName 
tGenericRef 
tOneDigit 
tOneToZero 
tOtherEnumerationValue 
tPositiveCounter 
tRailMLVersion 
tThreeDigits 
tThreeLetterString 
tTwelveDigits 
tTwoDigits 
tVerbalCounter 
tVersionNumber 


schema location http://dublincore.org/schemas/xmls/qdc/2008/02/11/dc.xsd
attributeFormDefault unqualified
elementFormDefault qualified
targetNamespace http://purl.org/dc/elements/1.1/
 
Elements  Groups  Complex types 
any  elementsGroup  elementContainer 
contributor  SimpleLiteral 
coverage 
creator 
date 
description 
format 
identifier 
language 
publisher 
relation 
rights 
source 
subject 
title 
type 


element railml
diagram railML_p1.png
namespace https://www.railml.org/schemas/2018
properties
content complex
children rail:metadata rail:infrastructure rail:infrastructureVisualizations rail:rollingstock rail:timetable
attributes
Name  Type  Use  Default  Fixed  Annotation
version  rail:tRailMLVersion        
documentation
supported railML version should be declared for software compatibility reasons, valid for all subschemas, don't mix railML versions between subschemas in one XML file
identity constraints
  Name  Refer  Selector  Field(s)  Annotation
key  infrastructureManagerKey    .//rail:organizationalUnits/rail:infrastructureManager  @id  
keyref  infrastructureManager-ownerKeyref  rail:infrastructureManagerKey  .//rail:infraAttributes/rail:owner  @infrastructureManagerRef  
keyref  infrastructureManager-ownerChangeKeyref  rail:infrastructureManagerKey  .//rail:ownerChange  @infrastructureManagerRef  
keyref  infrastructureManager-lineKeyref  rail:infrastructureManagerKey  .//rail:line  @infrastructureManagerRef  
key  vehicleManufacturerKey    .//rail:organizationalUnits/rail:vehicleManufacturer  @id  
keyref  vehicleManufacturer-manufacturerKeyref  rail:vehicleManufacturerKey  .//rail:classification/rail:manufacturer  @vehicleManufacturerRef  
key  vehicleOperatorKey    .//rail:organizationalUnits/rail:vehicleOperator  @id  
keyref  vehicleOperator-operatorKeyref  rail:vehicleOperatorKey  .//rail:classification/rail:operator  @vehicleOperatorRef  
key  customerKey    .//rail:organizationalUnits/rail:customer  @id  
keyref  customer-customerKeyref  rail:customerKey  .//rail:organizationalUnitBinding/rail:customer  @ref  
key  railwayUndertakingKey    .//rail:organizationalUnits/rail:railwayUndertaking  @id  
keyref  railwayUndertaking-railwayUndertakingKeyref  rail:railwayUndertakingKey  .//rail:organizationalUnitBinding/rail:railwayUndertaking  @ref  
key  operationalUndertakingKey    .//rail:organizationalUnits/rail:operationalUndertaking  @id  
keyref  operationalUndertaking-operationalUndertakingKeyref  rail:operationalUndertakingKey  .//rail:organizationalUnitBinding/rail:operationalUndertaking  @ref  
key  concessionaireKey    .//rail:organizationalUnits/rail:concessionaire  @id  
keyref  concessionaire-concessionaireKeyref  rail:concessionaireKey  .//rail:organizationalUnitBinding/rail:concessionaire  @ref  
key  contractorKey    .//rail:organizationalUnits/rail:contractor  @id  
keyref  contractor-contractorKeyref  rail:contractorKey  .//rail:organizationalUnitBinding/rail:contractor  @ref  
key  ocpKey    .//rail:operationControlPoints/rail:ocp  @id  
keyref  ocp-macroscopicNodeKeyref  rail:ocpKey  .//rail:macroscopicNode  @ocpRef  
keyref  ocp-switchKeyref  rail:ocpKey  .//rail:switch  @ocpStationRef  
keyref  ocp-crossSectionKeyref  rail:ocpKey  .//rail:crossSections/rail:crossSection  @ocpRef  
keyref  ocp-levelCrossingKeyref  rail:ocpKey  .//rail:levelCrossings/rail:levelCrossing  @ocpStationRef  
keyref  ocp-signalKeyref  rail:ocpKey  .//rail:signals/rail:signal  @ocpStationRef  
keyref  ocp-trainDetectorKeyref  rail:ocpKey  .//rail:trainDetectionElements/rail:trainDetector  @ocpStationRef  
keyref  ocp-trackCircuitBorderKeyref  rail:ocpKey  .//rail:trainDetectionElements/rail:trackCircuitBorder  @ocpStationRef  
keyref  ocp-platformEdgeKeyref  rail:ocpKey  .//rail:platformEdges/rail:platformEdge  @ocpRef  
keyref  ocp-serviceSectionKeyref  rail:ocpKey  .//rail:serviceSections/rail:serviceSection  @ocpRef  
keyref  ocp-stopPostKeyref  rail:ocpKey  .//rail:stopPosts/rail:stopPost  @ocpRef  
keyref  ocp-locallyControlledAreaKeyref  rail:ocpKey  .//rail:trackGroups/rail:locallyControlledArea  @ocpStationRef  
keyref  ocp-stateKeyref  rail:ocpKey  .//rail:states/rail:state/rail:*  @ocpRef  
keyref  ocp-signal-signalBoxKeyref  rail:ocpKey  .//rail:signals/rail:signal  @signalBoxOcpRef  
keyref  ocp-signal-stationKeyref  rail:ocpKey  .//rail:signals/rail:signal  @stationOcpRef  
keyref  ocp-locallyControlledArea-shortKeyref  rail:ocpKey  .//rail:trackGroups/rail:locallyControlledArea  @ocpRef  
keyref  ocp-ocpTTKeyref  rail:ocpKey  .//rail:ocpsTT/rail:ocpTT  @ocpRef  
keyref  ocp-connectionKeyref  rail:ocpKey  .//rail:ocpTT/rail:connections/rail:connection  @ocpRef  
keyref  ocp-blockPartStartKeyref  rail:ocpKey  .//rail:blockParts/rail:blockPart  @startOcpRef  
keyref  ocp-blockPartEndKeyref  rail:ocpKey  .//rail:blockParts/rail:blockPart  @endOcpRef  
key  trackKey    .//rail:tracks/rail:track  @id  
keyref  track-lineKeyref  rail:trackKey  .//rail:trackGroups/rail:line/rail:trackRef  @ref  
keyref  track-locallyControlledAreaKeyref  rail:trackKey  .//rail:trackGroups/rail:locallyControlledArea/rail:trackRef  @ref  
keyref  track-ocpKeyref  rail:trackKey  .//rail:operationControlPoints/rail:ocp/rail:propEquipment/rail:trackRef  @ref  
keyref  track-ocpTTKeyref  rail:trackKey  .//rail:ocpsTT/rail:ocpTT  @trackRef  
keyref  track-sectionTTKeyref  rail:trackKey  .//rail:ocpTT/rail:sectionTT/rail:trackRef  @ref  
key  lineKey    .//rail:trackGroups/rail:line  @id  
keyref  line-signalLineKeyref  rail:lineKey  .//rail:signal/rail:line  @ref  
keyref  line-signalMilepostKeyref  rail:lineKey  .//rail:signal/rail:milepost  @lineRef  
keyref  line-sectionTTKeyref  rail:lineKey  .//rail:ocpTT/rail:sectionTT  @lineRef  
key  vehicleKey    .//rail:vehicles/rail:vehicle  @id  
keyref  vehicle-vehicleFamilyKeyref  rail:vehicleKey  .//rail:vehicles/rail:vehicle  @vehicleFamilyRef  
keyref  vehicle-trainOrderKeyref  rail:vehicleKey  .//rail:trainOrder/rail:vehicleRef  @vehicleRef  
keyref  vehicle-bookingKeyref  rail:vehicleKey  .//rail:reservationInfo/rail:booking  @vehicleRef  
keyref  vehicle-rosteringKeyref  rail:vehicleKey  .//rail:rosterings/rail:rostering  @vehicleRef  
keyref  vehicle-blockPartKeyref  rail:vehicleKey  .//rail:blockParts/rail:blockPart  @vehicleRef  
key  formationKey    .//rail:formations/rail:formation  @id  
keyref  formation-formationTTKeyref  rail:formationKey  .//rail:trainParts/rail:trainPart/rail:formationTT  @formationRef  
keyref  formation-rosteringKeyref  rail:formationKey  .//rail:rosterings/rail:rostering  @formationRef  
keyref  formation-blockPartKeyref  rail:formationKey  .//rail:blockParts/rail:blockPart  @formationRef  
key  categoryKey    .//rail:categories/rail:category  @id  
keyref  category-trainPartKeyref  rail:categoryKey  .//rail:trainParts/rail:trainPart  @categoryRef  
keyref  category-trainPartSequenceKeyref  rail:categoryKey  .//rail:trains/rail:train/rail:trainPartSequence  @categoryRef  
keyref  category-formationKeyref  rail:categoryKey  .//rail:formations/rail:formation/rail:categoryRef  @ref  
key  speedProfileKey    .//rail:speedProfiles/rail:speedProfile  @id  
keyref  speedProfile-trainPartSequenceKeyref  rail:speedProfileKey  .//rail:trainPartSequence/rail:speedProfileRef  @ref  
key  stopPostKey    .//rail:stopPosts/rail:stopPost  @id  
keyref  stopPost-stopDescriptionKeyref  rail:stopPostKey  .//rail:ocpsTT/rail:ocpTT/rail:stopDescription  @stopPostRef  
key  platformEdgeKey    .//rail:platformEdges/rail:platformEdge  @id  
keyref  platformEdge-platformEdgeKeyref  rail:platformEdgeKey  .//rail:platformEdges/rail:platformEdge  @parentPlatformEdgeRef  
keyref  platformEdge-stopPostKeyref  rail:platformEdgeKey  .//rail:stopPosts/rail:stopPost  @platformEdgeRef  
keyref  platformEdge-stopDescriptionKeyref  rail:platformEdgeKey  .//rail:stopDescription/rail:platformEdgeRef  @ref  
key  serviceSectionKey    .//rail:serviceSections/rail:serviceSection  @id  
keyref  serviceSection-serviceSectionKeyref  rail:serviceSectionKey  .//rail:serviceSections/rail:serviceSection  @parentServiceSectionRef  
keyref  serviceSection-stopDescriptionKeyref  rail:serviceSectionKey  .//rail:stopDescription/rail:serviceSectionRef  @ref  
key  operatingPeriodKey    .//rail:operatingPeriods/rail:operatingPeriod  @id  
keyref  operatingPeriod-trainPartKeyref  rail:operatingPeriodKey  .//rail:trainParts/rail:trainPart/rail:operatingPeriodRef  @ref  
keyref  operatingPeriod-stopDescriptionKeyref  rail:operatingPeriodKey  .//rail:ocpsTT/rail:ocpTT/rail:stopDescription  @operatingPeriodRef  
keyref  operatingPeriod-blockPartKeyref  rail:operatingPeriodKey  .//rail:blockParts/rail:blockPart  @operatingPeriodRef  
keyref  operatingPeriod-circulationKeyref  rail:operatingPeriodKey  .//rail:circulations/rail:circulation  @operatingPeriodRef  
keyref  operatingPeriod-circulationNextKeyref  rail:operatingPeriodKey  .//rail:circulations/rail:circulation  @nextOperatingPeriodRef  
keyref  operatingPeriod-annotationKeyref  rail:operatingPeriodKey  .//rail:annotationRef  @operatingPeriodRef  
keyref  operatingPeriod-stateKeyref  rail:operatingPeriodKey  .//rail:states/rail:state  @operatingPeriodRef  
keyref  operatingPeriod-speedProfileKeyref  rail:operatingPeriodKey  .//rail:speedProfiles/rail:speedProfile  @operatingPeriodRef  
source <xs:element name="railml">
 
<xs:complexType>
   
<xs:annotation>
     
<xs:documentation source="http://wiki.railml.org/index.php?title=CO:railml"/>
   
</xs:annotation>
   
<xs:sequence>
     
<xs:element name="metadata" type="rail:tMetadata" minOccurs="0">
       
<xs:annotation>
         
<xs:documentation source="http://wiki.railml.org/index.php?title=CO:metadata"/>
       
</xs:annotation>
     
</xs:element>
     
<xs:element ref="rail:infrastructure" minOccurs="0">
       
<xs:annotation>
         
<xs:documentation>"subschema Infrastructure (IS)" can be outsourced in extra file and imported with xi:include mechanism</xs:documentation>
       
</xs:annotation>
     
</xs:element>
     
<xs:element ref="rail:infrastructureVisualizations" minOccurs="0">
       
<xs:annotation>
         
<xs:documentation>use this branch to model explicit visualizations of infrastructure data</xs:documentation>
       
</xs:annotation>
     
</xs:element>
     
<xs:element ref="rail:rollingstock" minOccurs="0">
       
<xs:annotation>
         
<xs:documentation>"subschema Rollingstock (RS)" can be outsourced in extra file and imported with xi:include mechanism</xs:documentation>
       
</xs:annotation>
     
</xs:element>
     
<xs:element ref="rail:timetable" minOccurs="0">
       
<xs:annotation>
         
<xs:documentation>"subschema Timetable (TT)" can be outsourced in extra file and imported with xi:include mechanism</xs:documentation>
       
</xs:annotation>
     
</xs:element>
   
</xs:sequence>
   
<xs:attribute name="version" type="rail:tRailMLVersion">
     
<xs:annotation>
       
<xs:documentation>supported railML version should be declared for software compatibility reasons, valid for all subschemas, don't mix railML versions between subschemas in one XML file</xs:documentation>
     
</xs:annotation>
   
</xs:attribute>
 
</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>

attribute railml/@version
type rail:tRailMLVersion
facets
Kind Value Annotation
pattern [1-9][0-9]?\.([0-9]|[1-9][0-9])(\.[1-9][0-9]?)?(r[1-9][0-9]?[0-9]?)?
annotation
documentation
supported railML version should be declared for software compatibility reasons, valid for all subschemas, don't mix railML versions between subschemas in one XML file
source <xs:attribute name="version" type="rail:tRailMLVersion">
 
<xs:annotation>
   
<xs:documentation>supported railML version should be declared for software compatibility reasons, valid for all subschemas, don't mix railML versions between subschemas in one XML file</xs:documentation>
 
</xs:annotation>
</xs:attribute>

element railml/metadata
diagram railML_p2.png
namespace https://www.railml.org/schemas/2018
type rail:tMetadata
properties
minOcc 0
maxOcc 1
content complex
children any rail:organizationalUnits
source <xs:element name="metadata" type="rail:tMetadata" minOccurs="0">
 
<xs:annotation>
   
<xs:documentation source="http://wiki.railml.org/index.php?title=CO:metadata"/>
 
</xs:annotation>
</xs:element>

element infrastructure
diagram railML_p3.png
namespace https://www.railml.org/schemas/2018
type extension of rail:tInfrastructure
properties
content complex
children rail:additionalName rail:metadata rail:infraAttrGroups rail:tracks rail:trackGroups rail:operationControlPoints rail:controllers rail:speedProfiles rail:states
used by
element railml
attributes
Name  Type  Use  Default  Fixed  Annotation
id  rail:tGenericID  required      
documentation
XML-file-wide unique identity is required for later referencing that element
code  rail:tGenericName        
documentation
for typical, specific abbreviations, used in different systems with the same understanding
name  rail:tGenericName        
documentation
should be interpreted in its elements' context (e.g. track/name, vehicle/name)
description  rail:tElementDescription        
documentation
should be interpreted in its elements' context, substantiates the name
xml:lang  xs:language        
documentation
natural language identification according to http://www.w3.org/TR/xml/#sec-lang-tag
version  rail:tRailMLVersion        
documentation
only used, if subschema element is outsourced, else use 'version' attribute in root element ('railml')
xml:base  xs:anyURI        
documentation
provide outsourcing of subschema element with xi:include mechanism
timetableRef  rail:tGenericRef        
rollingstockRef  rail:tGenericRef        
identity constraints
  Name  Refer  Selector  Field(s)  Annotation
key  infraAttributesKey    .//rail:infraAttrGroups/rail:infraAttributes  @id  
keyref  infraAttributes-trackKeyref  rail:infraAttributesKey  .//rail:tracks/rail:track  @infraAttrGroupRef  
keyref  infraAttributes-infraAttrGroupRefKeyref  rail:infraAttributesKey  .//rail:infraAttrGroupRefs/rail:infraAttrGroupRef  @ref  
key  connectionKey    .//rail:connection  @id  
keyref  connection-connectionKeyref  rail:connectionKey  .//rail:connection  @ref  
key  speedChangeKey    .//rail:speedChanges/rail:speedChange  @id  
keyref  speedChange-signalSpeedRefKeyref  rail:speedChangeKey  .//rail:signal/rail:speed/rail:speedChangeRef  @ref  
key  levelCrossingKey    .//rail:levelCrossings/rail:levelCrossing  @id  
keyref  levelCrossing-signalLevelCrossingKeyref  rail:levelCrossingKey  .//rail:signal/rail:levelCrossing  @ref  
key  trackConditionKey    .//rail:trackConditions/rail:trackCondition  @id  
keyref  trackCondition-signalTrainRadioKeyref  rail:trackConditionKey  .//rail:signal/rail:trainRadio  @trackConditionRef  
keyref  trackCondition-signalCatenaryKeyref  rail:trackConditionKey  .//rail:signal/rail:catenary  @trackConditionRef  
keyref  trackCondition-signalBrakingKeyref  rail:trackConditionKey  .//rail:signal/rail:braking  @trackConditionRef  
key  mileageChangeKey    .//rail:mileageChanges/rail:mileageChange  @id  
keyref  mileageChange-signalMilepostKeyref  rail:mileageChangeKey  .//rail:signal/rail:milepost  @mileageChangeRef  
key  signalKey    .//rail:signals/rail:signal  @id  
keyref  signal-signalRefKeyref  rail:signalKey  .//rail:stopPost/rail:signalRef  @ref  
keyref  signal-signalGroupKeyref  rail:signalKey  .//rail:signalGroups/rail:signalGroup/rail:signalRef  @ref  
key  baliseKey    .//rail:balises/rail:balise  @id  
keyref  balise-baliseGroupKeyref  rail:baliseKey  .//rail:baliseGroup/rail:baliseRef  @ref  
key  baliseGroupKey    .//rail:balises/rail:baliseGroup  @id  
keyref  baliseGroup-signalKeyref  rail:baliseGroupKey  .//rail:signals/rail:signal/rail:baliseGroupRef  @ref  
key  trainProtectionElementKey    .//rail:trainProtectionElements/rail:trainProtectionElement  @id  
keyref  trainProtectionElement-trainProtectionElementGroupKeyref  rail:trainProtectionElementKey  .//rail:trainProtectionElementGroup/rail:trainProtectionElementRef  @ref  
key  trainProtectionElementGroupKey    .//rail:trainProtectionElements/rail:trainProtectionElementGroup  @id  
keyref  trainProtectionElementGroup-signalKeyref  rail:trainProtectionElementGroupKey  .//rail:signals/rail:signal/rail:trainProtectionElementGroupRef  @ref  
key  controllerKey    .//rail:controllers/rail:controller  @id  
keyref  controller-switchKeyref  rail:controllerKey  .//rail:switch  @controllerRef  
keyref  controller-levelCrossingKeyref  rail:controllerKey  .//rail:levelCrossings/rail:levelCrossing  @controllerRef  
keyref  controller-signalKeyref  rail:controllerKey  .//rail:signals/rail:signal  @controllerRef  
keyref  controller-trainDetectorKeyref  rail:controllerKey  .//rail:trainDetectionElements/rail:trainDetector  @controllerRef  
keyref  controller-trackCircuitBorderKeyref  rail:controllerKey  .//rail:trainDetectionElements/rail:trackCircuitBorder  @controllerRef  
keyref  controller-locallyControlledAreaKeyref  rail:controllerKey  .//rail:trackGroups/rail:locallyControlledArea  @controllerRef  
source <xs:element name="infrastructure">
 
<xs:annotation>
   
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:infrastructure"/>
 
</xs:annotation>
 
<xs:complexType>
   
<xs:complexContent>
     
<xs:extension base="rail:tInfrastructure">
       
<xs:sequence>
         
<xs:element name="infraAttrGroups" type="rail:eInfraAttrGroup" minOccurs="0">
           
<xs:annotation>
             
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:infraAttrGroups"/>
           
</xs:annotation>
         
</xs:element>
         
<xs:element name="tracks" type="rail:eTracks" minOccurs="0">
           
<xs:annotation>
             
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:tracks"/>
           
</xs:annotation>
         
</xs:element>
         
<xs:element name="trackGroups" type="rail:eTrackGroups" minOccurs="0">
           
<xs:annotation>
             
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:trackGroups"/>
           
</xs:annotation>
         
</xs:element>
         
<xs:element name="operationControlPoints" type="rail:eOperationControlPoints" minOccurs="0">
           
<xs:annotation>
             
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:operationControlPoints"/>
           
</xs:annotation>
         
</xs:element>
         
<xs:element name="controllers" type="rail:eControllers" minOccurs="0">
           
<xs:annotation>
             
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:controllers"/>
           
</xs:annotation>
         
</xs:element>
         
<xs:element name="speedProfiles" type="rail:eSpeedProfiles" minOccurs="0">
           
<xs:annotation>
             
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:speedProfiles"/>
           
</xs:annotation>
         
</xs:element>
         
<xs:element name="states" type="rail:tStates" minOccurs="0">
           
<xs:annotation>
             
<xs:documentation>Container to define disabled/enabled status of infrastructure</xs:documentation>
           
</xs:annotation>
         
</xs:element>
       
</xs:sequence>
     
</xs:extension>
   
</xs:complexContent>
 
</xs:complexType>
 
<xs:key name="infraAttributesKey">
   
<xs:selector xpath=".//rail:infraAttrGroups/rail:infraAttributes"/>
   
<xs:field xpath="@id"/>
 
</xs:key>
 
<xs:keyref name="infraAttributes-trackKeyref" refer="rail:infraAttributesKey">
   
<xs:selector xpath=".//rail:tracks/rail:track"/>
   
<xs:field xpath="@infraAttrGroupRef"/>
 
</xs:keyref>
 
<xs:keyref name="infraAttributes-infraAttrGroupRefKeyref" refer="rail:infraAttributesKey">
   
<xs:selector xpath=".//rail:infraAttrGroupRefs/rail:infraAttrGroupRef"/>
   
<xs:field xpath="@ref"/>
 
</xs:keyref>
 
<xs:key name="connectionKey">
   
<xs:selector xpath=".//rail:connection"/>
   
<xs:field xpath="@id"/>
 
</xs:key>
 
<xs:keyref name="connection-connectionKeyref" refer="rail:connectionKey">
   
<xs:selector xpath=".//rail:connection"/>
   
<xs:field xpath="@ref"/>
 
</xs:keyref>
 
<xs:key name="speedChangeKey">
   
<xs:selector xpath=".//rail:speedChanges/rail:speedChange"/>
   
<xs:field xpath="@id"/>
 
</xs:key>
 
<xs:keyref name="speedChange-signalSpeedRefKeyref" refer="rail:speedChangeKey">
   
<xs:selector xpath=".//rail:signal/rail:speed/rail:speedChangeRef"/>
   
<xs:field xpath="@ref"/>
 
</xs:keyref>
 
<xs:key name="levelCrossingKey">
   
<xs:selector xpath=".//rail:levelCrossings/rail:levelCrossing"/>
   
<xs:field xpath="@id"/>
 
</xs:key>
 
<xs:keyref name="levelCrossing-signalLevelCrossingKeyref" refer="rail:levelCrossingKey">
   
<xs:selector xpath=".//rail:signal/rail:levelCrossing"/>
   
<xs:field xpath="@ref"/>
 
</xs:keyref>
 
<xs:key name="trackConditionKey">
   
<xs:selector xpath=".//rail:trackConditions/rail:trackCondition"/>
   
<xs:field xpath="@id"/>
 
</xs:key>
 
<xs:keyref name="trackCondition-signalTrainRadioKeyref" refer="rail:trackConditionKey">
   
<xs:selector xpath=".//rail:signal/rail:trainRadio"/>
   
<xs:field xpath="@trackConditionRef"/>
 
</xs:keyref>
 
<xs:keyref name="trackCondition-signalCatenaryKeyref" refer="rail:trackConditionKey">
   
<xs:selector xpath=".//rail:signal/rail:catenary"/>
   
<xs:field xpath="@trackConditionRef"/>
 
</xs:keyref>
 
<xs:keyref name="trackCondition-signalBrakingKeyref" refer="rail:trackConditionKey">
   
<xs:selector xpath=".//rail:signal/rail:braking"/>
   
<xs:field xpath="@trackConditionRef"/>
 
</xs:keyref>
 
<xs:key name="mileageChangeKey">
   
<xs:selector xpath=".//rail:mileageChanges/rail:mileageChange"/>
   
<xs:field xpath="@id"/>
 
</xs:key>
 
<xs:keyref name="mileageChange-signalMilepostKeyref" refer="rail:mileageChangeKey">
   
<xs:selector xpath=".//rail:signal/rail:milepost"/>
   
<xs:field xpath="@mileageChangeRef"/>
 
</xs:keyref>
 
<xs:key name="signalKey">
   
<xs:selector xpath=".//rail:signals/rail:signal"/>
   
<xs:field xpath="@id"/>
 
</xs:key>
 
<xs:keyref name="signal-signalRefKeyref" refer="rail:signalKey">
   
<xs:selector xpath=".//rail:stopPost/rail:signalRef"/>
   
<xs:field xpath="@ref"/>
 
</xs:keyref>
 
<xs:keyref name="signal-signalGroupKeyref" refer="rail:signalKey">
   
<xs:selector xpath=".//rail:signalGroups/rail:signalGroup/rail:signalRef"/>
   
<xs:field xpath="@ref"/>
 
</xs:keyref>
 
<xs:key name="baliseKey">
   
<xs:selector xpath=".//rail:balises/rail:balise"/>
   
<xs:field xpath="@id"/>
 
</xs:key>
 
<xs:keyref name="balise-baliseGroupKeyref" refer="rail:baliseKey">
   
<xs:selector xpath=".//rail:baliseGroup/rail:baliseRef"/>
   
<xs:field xpath="@ref"/>
 
</xs:keyref>
 
<xs:key name="baliseGroupKey">
   
<xs:selector xpath=".//rail:balises/rail:baliseGroup"/>
   
<xs:field xpath="@id"/>
 
</xs:key>
 
<xs:keyref name="baliseGroup-signalKeyref" refer="rail:baliseGroupKey">
   
<xs:selector xpath=".//rail:signals/rail:signal/rail:baliseGroupRef"/>
   
<xs:field xpath="@ref"/>
 
</xs:keyref>
 
<xs:key name="trainProtectionElementKey">
   
<xs:selector xpath=".//rail:trainProtectionElements/rail:trainProtectionElement"/>
   
<xs:field xpath="@id"/>
 
</xs:key>
 
<xs:keyref name="trainProtectionElement-trainProtectionElementGroupKeyref" refer="rail:trainProtectionElementKey">
   
<xs:selector xpath=".//rail:trainProtectionElementGroup/rail:trainProtectionElementRef"/>
   
<xs:field xpath="@ref"/>
 
</xs:keyref>
 
<xs:key name="trainProtectionElementGroupKey">
   
<xs:selector xpath=".//rail:trainProtectionElements/rail:trainProtectionElementGroup"/>
   
<xs:field xpath="@id"/>
 
</xs:key>
 
<xs:keyref name="trainProtectionElementGroup-signalKeyref" refer="rail:trainProtectionElementGroupKey">
   
<xs:selector xpath=".//rail:signals/rail:signal/rail:trainProtectionElementGroupRef"/>
   
<xs:field xpath="@ref"/>
 
</xs:keyref>
 
<xs:key name="controllerKey">
   
<xs:selector xpath=".//rail:controllers/rail:controller"/>
   
<xs:field xpath="@id"/>
 
</xs:key>
 
<xs:keyref name="controller-switchKeyref" refer="rail:controllerKey">
   
<xs:selector xpath=".//rail:switch"/>
   
<xs:field xpath="@controllerRef"/>
 
</xs:keyref>
 
<xs:keyref name="controller-levelCrossingKeyref" refer="rail:controllerKey">
   
<xs:selector xpath=".//rail:levelCrossings/rail:levelCrossing"/>
   
<xs:field xpath="@controllerRef"/>
 
</xs:keyref>
 
<xs:keyref name="controller-signalKeyref" refer="rail:controllerKey">
   
<xs:selector xpath=".//rail:signals/rail:signal"/>
   
<xs:field xpath="@controllerRef"/>
 
</xs:keyref>
 
<xs:keyref name="controller-trainDetectorKeyref" refer="rail:controllerKey">
   
<xs:selector xpath=".//rail:trainDetectionElements/rail:trainDetector"/>
   
<xs:field xpath="@controllerRef"/>
 
</xs:keyref>
 
<xs:keyref name="controller-trackCircuitBorderKeyref" refer="rail:controllerKey">
   
<xs:selector xpath=".//rail:trainDetectionElements/rail:trackCircuitBorder"/>
   
<xs:field xpath="@controllerRef"/>
 
</xs:keyref>
 
<xs:keyref name="controller-locallyControlledAreaKeyref" refer="rail:controllerKey">
   
<xs:selector xpath=".//rail:trackGroups/rail:locallyControlledArea"/>
   
<xs:field xpath="@controllerRef"/>
 
</xs:keyref>
</xs:element>

element infrastructure/infraAttrGroups
diagram railML_p4.png
namespace https://www.railml.org/schemas/2018
type rail:eInfraAttrGroup
properties
minOcc 0
maxOcc 1
content complex
children rail:infraAttributes
source <xs:element name="infraAttrGroups" type="rail:eInfraAttrGroup" minOccurs="0">
 
<xs:annotation>
   
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:infraAttrGroups"/>
 
</xs:annotation>
</xs:element>

element infrastructure/tracks
diagram railML_p5.png
namespace https://www.railml.org/schemas/2018
type rail:eTracks
properties
minOcc 0
maxOcc 1
content complex
children rail:track
source <xs:element name="tracks" type="rail:eTracks" minOccurs="0">
 
<xs:annotation>
   
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:tracks"/>
 
</xs:annotation>
</xs:element>

element infrastructure/trackGroups
diagram railML_p6.png
namespace https://www.railml.org/schemas/2018
type rail:eTrackGroups
properties
minOcc 0
maxOcc 1
content complex
children rail:line rail:locallyControlledArea
source <xs:element name="trackGroups" type="rail:eTrackGroups" minOccurs="0">
 
<xs:annotation>
   
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:trackGroups"/>
 
</xs:annotation>
</xs:element>

element infrastructure/operationControlPoints
diagram railML_p7.png
namespace https://www.railml.org/schemas/2018
type rail:eOperationControlPoints
properties
minOcc 0
maxOcc 1
content complex
children rail:ocp
source <xs:element name="operationControlPoints" type="rail:eOperationControlPoints" minOccurs="0">
 
<xs:annotation>
   
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:operationControlPoints"/>
 
</xs:annotation>
</xs:element>

element infrastructure/controllers
diagram railML_p8.png
namespace https://www.railml.org/schemas/2018
type rail:eControllers
properties
minOcc 0
maxOcc 1
content complex
children rail:controller
source <xs:element name="controllers" type="rail:eControllers" minOccurs="0">
 
<xs:annotation>
   
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:controllers"/>
 
</xs:annotation>
</xs:element>

element infrastructure/speedProfiles
diagram railML_p9.png
namespace https://www.railml.org/schemas/2018
type rail:eSpeedProfiles
properties
minOcc 0
maxOcc 1
content complex
children rail:speedProfile
source <xs:element name="speedProfiles" type="rail:eSpeedProfiles" minOccurs="0">
 
<xs:annotation>
   
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:speedProfiles"/>
 
</xs:annotation>
</xs:element>

element infrastructure/states
diagram railML_p10.png
namespace https://www.railml.org/schemas/2018
type rail:tStates
properties
minOcc 0
maxOcc 1
content complex
children rail:state
annotation
documentation
Container to define disabled/enabled status of infrastructure
source <xs:element name="states" type="rail:tStates" minOccurs="0">
 
<xs:annotation>
   
<xs:documentation>Container to define disabled/enabled status of infrastructure</xs:documentation>
 
</xs:annotation>
</xs:element>

element infrastructureVisualizations
diagram railML_p11.png
namespace https://www.railml.org/schemas/2018
properties
content complex
children rail:visualization
used by
element railml
attributes
Name  Type  Use  Default  Fixed  Annotation
xml:base  xs:anyURI        
documentation
See http://www.w3.org/TR/xmlbase/ for
                     information about this attribute.
source <xs:element name="infrastructureVisualizations">
 
<xs:complexType>
   
<xs:sequence>
     
<xs:element name="visualization" type="rail:eInfrastructureVisualization" minOccurs="0" maxOccurs="unbounded">
       
<xs:annotation>
         
<xs:documentation>container elements for all infrastructure visualizations</xs:documentation>
       
</xs:annotation>
     
</xs:element>
   
</xs:sequence>
   
<xs:attribute ref="xml:base"/>
 
</xs:complexType>
</xs:element>

element infrastructureVisualizations/visualization
diagram railML_p12.png
namespace https://www.railml.org/schemas/2018
type rail:eInfrastructureVisualization
properties
minOcc 0
maxOcc unbounded
content complex
children rail:lineVis rail:ocpVis
attributes
Name  Type  Use  Default  Fixed  Annotation
version  rail:tRailMLVersion  required      
infrastructureRef  rail:tGenericRef        
id  rail:tGenericID  required      
annotation
documentation
container elements for all infrastructure visualizations
source <xs:element name="visualization" type="rail:eInfrastructureVisualization" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation>container elements for all infrastructure visualizations</xs:documentation>
 
</xs:annotation>
</xs:element>

complexType eAttributes
diagram railML_p13.png
namespace https://www.railml.org/schemas/2018
children rail:attribute
used by
element eGeneralInfraAttribute/attributes
source <xs:complexType name="eAttributes">
 
<xs:sequence>
   
<xs:element name="attribute" type="rail:tAttribute" minOccurs="0" maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:attribute"/>
     
</xs:annotation>
   
</xs:element>
 
</xs:sequence>
</xs:complexType>

element eAttributes/attribute
diagram railML_p14.png
namespace https://www.railml.org/schemas/2018
type rail:tAttribute
properties
minOcc 0
maxOcc unbounded
content complex
attributes
Name  Type  Use  Default  Fixed  Annotation
name  xs:string  required      
value  xs:string  required      
source <xs:element name="attribute" type="rail:tAttribute" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:attribute"/>
 
</xs:annotation>
</xs:element>

complexType eAxleWeightChanges
diagram railML_p15.png
namespace https://www.railml.org/schemas/2018
children rail:axleWeightChange
used by
element eTrackElements/axleWeightChanges
source <xs:complexType name="eAxleWeightChanges">
 
<xs:sequence>
   
<xs:element name="axleWeightChange" type="rail:tAxleWeightChange" minOccurs="0" maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:axleWeightChange"/>
     
</xs:annotation>
   
</xs:element>
 
</xs:sequence>
</xs:complexType>

element eAxleWeightChanges/axleWeightChange
diagram railML_p16.png
namespace https://www.railml.org/schemas/2018
type rail:tAxleWeightChange
properties
minOcc 0
maxOcc unbounded
content complex
children rail:additionalName rail:geoCoord rail:states
attributes
Name  Type  Use  Default  Fixed  Annotation
id  rail:tGenericID  required      
documentation
XML-file-wide unique identity is required for later referencing that element
code  rail:tGenericName        
documentation
for typical, specific abbreviations, used in different systems with the same understanding
name  rail:tGenericName        
documentation
should be interpreted in its elements' context (e.g. track/name, vehicle/name)
description  rail:tElementDescription        
documentation
should be interpreted in its elements' context, substantiates the name
xml:lang  xs:language        
documentation
natural language identification according to http://www.w3.org/TR/xml/#sec-lang-tag
pos  rail:tLengthM  required      
absPos  rail:tLengthM        
absPosOffset  rail:tLengthM        
documentation
DEPRECATED, not needed, not used
dir  rail:tStrictDirection        
documentation
a strict direction, which allows only for "up" and "down"
value  rail:tWeightTons  required      
meterload  rail:tMeterloadTonsPerMeter        
source <xs:element name="axleWeightChange" type="rail:tAxleWeightChange" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:axleWeightChange"/>
 
</xs:annotation>
</xs:element>

complexType eBalises
diagram railML_p17.png
namespace https://www.railml.org/schemas/2018
children rail:balise rail:baliseGroup
used by
element eOcsElements/balises
source <xs:complexType name="eBalises">
 
<xs:sequence>
   
<xs:element name="balise" type="rail:tBalise" maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:balise"/>
     
</xs:annotation>
   
</xs:element>
   
<xs:element name="baliseGroup" type="rail:tBaliseGroup" minOccurs="0" maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:baliseGroup"/>
     
</xs:annotation>
   
</xs:element>
 
</xs:sequence>
</xs:complexType>

element eBalises/balise
diagram railML_p18.png
namespace https://www.railml.org/schemas/2018
type rail:tBalise
properties
minOcc 1
maxOcc unbounded
content complex
children rail:additionalName rail:geoCoord rail:states
attributes
Name  Type  Use  Default  Fixed  Annotation
id  rail:tGenericID  required      
documentation
XML-file-wide unique identity is required for later referencing that element
code  rail:tGenericName        
documentation
for typical, specific abbreviations, used in different systems with the same understanding
name  rail:tGenericName        
documentation
should be interpreted in its elements' context (e.g. track/name, vehicle/name)
description  rail:tElementDescription        
documentation
should be interpreted in its elements' context, substantiates the name
xml:lang  xs:language        
documentation
natural language identification according to http://www.w3.org/TR/xml/#sec-lang-tag
pos  rail:tLengthM  required      
absPos  rail:tLengthM        
absPosOffset  rail:tLengthM        
documentation
DEPRECATED, not needed, not used
dir  rail:tLaxDirection        
documentation
a direction, which allows for all direction attributes
countryID  rail:tBaliseCountryID        
groupID  rail:tBaliseGroupID        
linkingAccuracy  rail:tBaliseLinkingAcc        
linkReactionAscending  rail:tBaliseLinkReaction        
linkReactionDescending  rail:tBaliseLinkReaction        
staticTelegram  rail:tHexString        
documentation
telegram coded to the balise; representation of the binary as hex string
ndx  rail:tPIG        
source <xs:element name="balise" type="rail:tBalise" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:balise"/>
 
</xs:annotation>
</xs:element>

element eBalises/baliseGroup
diagram railML_p19.png
namespace https://www.railml.org/schemas/2018
type rail:tBaliseGroup
properties
minOcc 0
maxOcc unbounded
content complex
children rail:additionalName rail:baliseRef
attributes
Name  Type  Use  Default  Fixed  Annotation
id  rail:tGenericID  required      
documentation
XML-file-wide unique identity is required for later referencing that element
code  rail:tGenericName        
documentation
for typical, specific abbreviations, used in different systems with the same understanding
name  rail:tGenericName        
documentation
should be interpreted in its elements' context (e.g. track/name, vehicle/name)
description  rail:tElementDescription        
documentation
should be interpreted in its elements' context, substantiates the name
xml:lang  xs:language        
documentation
natural language identification according to http://www.w3.org/TR/xml/#sec-lang-tag
type  rail:tBaliseGroupType        
documentation
functional type of the balise group
source <xs:element name="baliseGroup" type="rail:tBaliseGroup" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:baliseGroup"/>
 
</xs:annotation>
</xs:element>

complexType eBorder
diagram railML_p20.png
namespace https://www.railml.org/schemas/2018
children rail:border
used by
element eTrackTopology/borders
source <xs:complexType name="eBorder">
 
<xs:sequence>
   
<xs:element name="border" type="rail:tBorder" minOccurs="0" maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:border"/>
     
</xs:annotation>
   
</xs:element>
 
</xs:sequence>
</xs:complexType>

element eBorder/border
diagram railML_p21.png
namespace https://www.railml.org/schemas/2018
type rail:tBorder
properties
minOcc 0
maxOcc unbounded
content complex
children rail:additionalName rail:geoCoord rail:states
attributes
Name  Type  Use  Default  Fixed  Annotation
id  rail:tGenericID  required      
documentation
XML-file-wide unique identity is required for later referencing that element
code  rail:tGenericName        
documentation
for typical, specific abbreviations, used in different systems with the same understanding
name  rail:tGenericName        
documentation
should be interpreted in its elements' context (e.g. track/name, vehicle/name)
description  rail:tElementDescription        
documentation
should be interpreted in its elements' context, substantiates the name
xml:lang  xs:language        
documentation
natural language identification according to http://www.w3.org/TR/xml/#sec-lang-tag
pos  rail:tLengthM  required      
absPos  rail:tLengthM        
absPosOffset  rail:tLengthM        
documentation
DEPRECATED, not needed, not used
dir  rail:tDelimitedDirection        
documentation
a limited direction, which allows only for "up", "down" and "unknown"
type  rail:tBorderType  required      
source <xs:element name="border" type="rail:tBorder" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:border"/>
 
</xs:annotation>
</xs:element>

complexType eBridge
diagram railML_p22.png
namespace https://www.railml.org/schemas/2018
type extension of rail:tBridge
properties
base rail:tBridge
children rail:additionalName rail:geoCoord rail:states rail:crossedElements
used by
element eBridges/brigde
attributes
Name  Type  Use  Default  Fixed  Annotation
id  rail:tGenericID  required      
documentation
XML-file-wide unique identity is required for later referencing that element
code  rail:tGenericName        
documentation
for typical, specific abbreviations, used in different systems with the same understanding
name  rail:tGenericName        
documentation
should be interpreted in its elements' context (e.g. track/name, vehicle/name)
description  rail:tElementDescription        
documentation
should be interpreted in its elements' context, substantiates the name
xml:lang  xs:language        
documentation
natural language identification according to http://www.w3.org/TR/xml/#sec-lang-tag
pos  rail:tLengthM  required      
absPos  rail:tLengthM        
absPosOffset  rail:tLengthM        
documentation
DEPRECATED, not needed, not used
length  rail:tLengthM        
documentation
length along the track in meters
dir  rail:tDelimitedDirection        
documentation
a limited direction, which allows only for "up", "down" and "unknown"
kind  xs:string        
meterload  rail:tMeterloadTonsPerMeter        
source <xs:complexType name="eBridge">
 
<xs:complexContent>
   
<xs:extension base="rail:tBridge">
     
<xs:sequence>
       
<xs:element name="crossedElements" type="rail:eCrossedElements" minOccurs="0">
         
<xs:annotation>
           
<xs:documentation>list the elements that are crossed by this element</xs:documentation>
         
</xs:annotation>
       
</xs:element>
     
</xs:sequence>
   
</xs:extension>
 
</xs:complexContent>
</xs:complexType>

element eBridge/crossedElements
diagram railML_p23.png
namespace https://www.railml.org/schemas/2018
type rail:eCrossedElements
properties
minOcc 0
maxOcc 1
content complex
children rail:crossedElement
annotation
documentation
list the elements that are crossed by this element
source <xs:element name="crossedElements" type="rail:eCrossedElements" minOccurs="0">
 
<xs:annotation>
   
<xs:documentation>list the elements that are crossed by this element</xs:documentation>
 
</xs:annotation>
</xs:element>

complexType eBridges
diagram railML_p24.png
namespace https://www.railml.org/schemas/2018
children rail:brigde
used by
element eTrackElements/bridges
source <xs:complexType name="eBridges">
 
<xs:sequence>
   
<xs:element name="brigde" type="rail:eBridge" minOccurs="0" maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:brigde"/>
     
</xs:annotation>
   
</xs:element>
 
</xs:sequence>
</xs:complexType>

element eBridges/brigde
diagram railML_p25.png
namespace https://www.railml.org/schemas/2018
type rail:eBridge
properties
minOcc 0
maxOcc unbounded
content complex
children rail:additionalName rail:geoCoord rail:states rail:crossedElements
attributes
Name  Type  Use  Default  Fixed  Annotation
id  rail:tGenericID  required      
documentation
XML-file-wide unique identity is required for later referencing that element
code  rail:tGenericName        
documentation
for typical, specific abbreviations, used in different systems with the same understanding
name  rail:tGenericName        
documentation
should be interpreted in its elements' context (e.g. track/name, vehicle/name)
description  rail:tElementDescription        
documentation
should be interpreted in its elements' context, substantiates the name
xml:lang  xs:language        
documentation
natural language identification according to http://www.w3.org/TR/xml/#sec-lang-tag
pos  rail:tLengthM  required      
absPos  rail:tLengthM        
absPosOffset  rail:tLengthM        
documentation
DEPRECATED, not needed, not used
length  rail:tLengthM        
documentation
length along the track in meters
dir  rail:tDelimitedDirection        
documentation
a limited direction, which allows only for "up", "down" and "unknown"
kind  xs:string        
meterload  rail:tMeterloadTonsPerMeter        
source <xs:element name="brigde" type="rail:eBridge" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:brigde"/>
 
</xs:annotation>
</xs:element>

complexType eClearanceGaugeChanges
diagram railML_p26.png
namespace https://www.railml.org/schemas/2018
children rail:clearanceGaugeChange
used by
element eTrackElements/clearanceGaugeChanges
source <xs:complexType name="eClearanceGaugeChanges">
 
<xs:sequence>
   
<xs:element name="clearanceGaugeChange" type="rail:tClearanceGaugeChange" minOccurs="0" maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:clearanceGaugeChange"/>
     
</xs:annotation>
   
</xs:element>
 
</xs:sequence>
</xs:complexType>

element eClearanceGaugeChanges/clearanceGaugeChange
diagram railML_p27.png
namespace https://www.railml.org/schemas/2018
type rail:tClearanceGaugeChange
properties
minOcc 0
maxOcc unbounded
content complex
children rail:additionalName rail:geoCoord rail:states rail:clearanceGauge
attributes
Name  Type  Use  Default  Fixed  Annotation
id  rail:tGenericID  required      
documentation
XML-file-wide unique identity is required for later referencing that element
code  rail:tGenericName        
documentation
for typical, specific abbreviations, used in different systems with the same understanding
name  rail:tGenericName        
documentation
should be interpreted in its elements' context (e.g. track/name, vehicle/name)
description  rail:tElementDescription        
documentation
should be interpreted in its elements' context, substantiates the name
xml:lang  xs:language        
documentation
natural language identification according to http://www.w3.org/TR/xml/#sec-lang-tag
pos  rail:tLengthM  required      
absPos  rail:tLengthM        
absPosOffset  rail:tLengthM        
documentation
DEPRECATED, not needed, not used
dir  rail:tStrictDirection        
documentation
a strict direction, which allows only for "up" and "down"
source <xs:element name="clearanceGaugeChange" type="rail:tClearanceGaugeChange" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:clearanceGaugeChange"/>
 
</xs:annotation>
</xs:element>

complexType eConnections
diagram railML_p28.png
namespace https://www.railml.org/schemas/2018
children rail:switch rail:crossing
used by
element eTrackTopology/connections
source <xs:complexType name="eConnections">
 
<xs:choice minOccurs="0" maxOccurs="unbounded">
   
<xs:element name="switch" type="rail:eSwitch" minOccurs="0" maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:switch"/>
     
</xs:annotation>
   
</xs:element>
   
<xs:element name="crossing" type="rail:eCrossing" minOccurs="0" maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:crossing"/>
     
</xs:annotation>
   
</xs:element>
 
</xs:choice>
</xs:complexType>

element eConnections/switch
diagram railML_p29.png
namespace https://www.railml.org/schemas/2018
type rail:eSwitch
properties
minOcc 0
maxOcc unbounded
content complex
children rail:additionalName rail:geoCoord rail:states rail:connection
attributes
Name  Type  Use  Default  Fixed  Annotation
id  rail:tGenericID  required      
documentation
XML-file-wide unique identity is required for later referencing that element
code  rail:tGenericName        
documentation
for typical, specific abbreviations, used in different systems with the same understanding
name  rail:tGenericName        
documentation
should be interpreted in its elements' context (e.g. track/name, vehicle/name)
description  rail:tElementDescription        
documentation
should be interpreted in its elements' context, substantiates the name
xml:lang  xs:language        
documentation
natural language identification according to http://www.w3.org/TR/xml/#sec-lang-tag
pos  rail:tLengthM  required      
absPos  rail:tLengthM        
absPosOffset  rail:tLengthM        
documentation
DEPRECATED, not needed, not used
trackContinueCourse  rail:tCourse        
trackContinueRadius  rail:tRadiusM        
normalPosition  rail:tCourse        
model  xs:string        
length  rail:tLengthM        
ocpStationRef  rail:tGenericRef        
documentation
reference on ocp element, e.g. station
controllerRef  rail:tGenericRef        
documentation
reference on controller element, e.g. interlocking
type  rail:tSwitchType        
source <xs:element name="switch" type="rail:eSwitch" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:switch"/>
 
</xs:annotation>
</xs:element>

element eConnections/crossing
diagram railML_p30.png
namespace https://www.railml.org/schemas/2018
type rail:eCrossing
properties
minOcc 0
maxOcc unbounded
content complex
children rail:additionalName rail:geoCoord rail:states rail:connection
attributes
Name  Type  Use  Default  Fixed  Annotation
id  rail:tGenericID  required      
documentation
XML-file-wide unique identity is required for later referencing that element
code  rail:tGenericName        
documentation
for typical, specific abbreviations, used in different systems with the same understanding
name  rail:tGenericName        
documentation
should be interpreted in its elements' context (e.g. track/name, vehicle/name)
description  rail:tElementDescription        
documentation
should be interpreted in its elements' context, substantiates the name
xml:lang  xs:language        
documentation
natural language identification according to http://www.w3.org/TR/xml/#sec-lang-tag
pos  rail:tLengthM  required      
absPos  rail:tLengthM        
absPosOffset  rail:tLengthM        
documentation
DEPRECATED, not needed, not used
trackContinueCourse  rail:tCourse        
trackContinueRadius  rail:tRadiusM        
normalPosition  rail:tCourse        
model  xs:string        
length  rail:tLengthM        
ocpStationRef  rail:tGenericRef        
documentation
reference on ocp element, e.g. station
controllerRef  rail:tGenericRef        
documentation
reference on controller element, e.g. interlocking
type  rail:tCrossingType        
source <xs:element name="crossing" type="rail:eCrossing" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:crossing"/>
 
</xs:annotation>
</xs:element>

complexType eControllers
diagram railML_p31.png
namespace https://www.railml.org/schemas/2018
children rail:controller
used by
element infrastructure/controllers
source <xs:complexType name="eControllers">
 
<xs:sequence>
   
<xs:element name="controller" type="rail:tController" minOccurs="0" maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:controller"/>
     
</xs:annotation>
   
</xs:element>
 
</xs:sequence>
</xs:complexType>

element eControllers/controller
diagram railML_p32.png
namespace https://www.railml.org/schemas/2018
type rail:tController
properties
minOcc 0
maxOcc unbounded
content complex
children rail:additionalName rail:states rail:ocpRef
attributes
Name  Type  Use  Default  Fixed  Annotation
id  rail:tGenericID  required      
documentation
XML-file-wide unique identity is required for later referencing that element
code  rail:tGenericName        
documentation
for typical, specific abbreviations, used in different systems with the same understanding
name  rail:tGenericName        
documentation
should be interpreted in its elements' context (e.g. track/name, vehicle/name)
description  rail:tElementDescription        
documentation
should be interpreted in its elements' context, substantiates the name
xml:lang  xs:language        
documentation
natural language identification according to http://www.w3.org/TR/xml/#sec-lang-tag
parentControllerRef  rail:tGenericRef        
documentation
reference to parent controller
model  xs:string        
documentation
(product) name of the controller
type  rail:tControllerType        
documentation
type of controller regarding its complexity and responsibility
technologyType  rail:tControllerTechnologyType        
documentation
technology that the controller is based on
swVersion  xs:string        
documentation
controller software version
source <xs:element name="controller" type="rail:tController" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:controller"/>
 
</xs:annotation>
</xs:element>

complexType eCrossedElements
diagram railML_p33.png
namespace https://www.railml.org/schemas/2018
children rail:crossedElement
used by
elements eTunnel/crossedElements eBridge/crossedElements eLevelCrossing/crossedElements
source <xs:complexType name="eCrossedElements">
 
<xs:sequence>
   
<xs:element name="crossedElement" type="rail:tCrossedElement" maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:crossedElement"/>
     
</xs:annotation>
   
</xs:element>
 
</xs:sequence>
</xs:complexType>

element eCrossedElements/crossedElement
diagram railML_p34.png
namespace https://www.railml.org/schemas/2018
type rail:tCrossedElement
properties
minOcc 1
maxOcc unbounded
content complex
children rail:additionalName
attributes
Name  Type  Use  Default  Fixed  Annotation
id  rail:tGenericID  required      
documentation
XML-file-wide unique identity is required for later referencing that element
code  rail:tGenericName        
documentation
for typical, specific abbreviations, used in different systems with the same understanding
name  rail:tGenericName        
documentation
should be interpreted in its elements' context (e.g. track/name, vehicle/name)
description  rail:tElementDescription        
documentation
should be interpreted in its elements' context, substantiates the name
xml:lang  xs:language        
documentation
natural language identification according to http://www.w3.org/TR/xml/#sec-lang-tag
type  rail:tCrossedElementType  required      
documentation
the type of element crossed by this element
pos  rail:tLengthM        
documentation
the relative position of the center of the crossed element as distance from begin of track
documentation
this value must be within the position range of the parent element
source <xs:element name="crossedElement" type="rail:tCrossedElement" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:crossedElement"/>
 
</xs:annotation>
</xs:element>

complexType eCrossing
diagram railML_p35.png
namespace https://www.railml.org/schemas/2018
type extension of rail:tCrossing
properties
base rail:tCrossing
children rail:additionalName rail:geoCoord rail:states rail:connection
used by
element eConnections/crossing
attributes
Name  Type  Use  Default  Fixed  Annotation
id  rail:tGenericID  required      
documentation
XML-file-wide unique identity is required for later referencing that element
code  rail:tGenericName        
documentation
for typical, specific abbreviations, used in different systems with the same understanding
name  rail:tGenericName        
documentation
should be interpreted in its elements' context (e.g. track/name, vehicle/name)
description  rail:tElementDescription        
documentation
should be interpreted in its elements' context, substantiates the name
xml:lang  xs:language        
documentation
natural language identification according to http://www.w3.org/TR/xml/#sec-lang-tag
pos  rail:tLengthM  required      
absPos  rail:tLengthM        
absPosOffset  rail:tLengthM        
documentation
DEPRECATED, not needed, not used
trackContinueCourse  rail:tCourse        
trackContinueRadius  rail:tRadiusM        
normalPosition  rail:tCourse        
model  xs:string        
length  rail:tLengthM        
ocpStationRef  rail:tGenericRef        
documentation
reference on ocp element, e.g. station
controllerRef  rail:tGenericRef        
documentation
reference on controller element, e.g. interlocking
type  rail:tCrossingType        
source <xs:complexType name="eCrossing">
 
<xs:complexContent>
   
<xs:extension base="rail:tCrossing">
     
<xs:sequence>
       
<xs:element name="connection" type="rail:tSwitchConnectionData" maxOccurs="3">
         
<xs:annotation>
           
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:connection_crossing"/>
         
</xs:annotation>
       
</xs:element>
     
</xs:sequence>
   
</xs:extension>
 
</xs:complexContent>
</xs:complexType>

element eCrossing/connection
diagram railML_p36.png
namespace https://www.railml.org/schemas/2018
type rail:tSwitchConnectionData
properties
minOcc 1
maxOcc 3
content complex
attributes
Name  Type  Use  Default  Fixed  Annotation
id  rail:tGenericID  required      
ref  rail:tGenericRef  required      
course  rail:tCourse        
radius  rail:tRadiusM        
maxSpeed  rail:tSpeedKmPerHour        
branchDist  rail:tLengthM        
documentation
DEPRECATED: use short 'track' instead
orientation  rail:tConnectionOrientation  required      
passable  xs:boolean    true    
source <xs:element name="connection" type="rail:tSwitchConnectionData" maxOccurs="3">
 
<xs:annotation>
   
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:connection_crossing"/>
 
</xs:annotation>
</xs:element>

complexType eCrossSections
diagram railML_p37.png
namespace https://www.railml.org/schemas/2018
children rail:crossSection
used by
element eTrackTopology/crossSections
source <xs:complexType name="eCrossSections">
 
<xs:sequence>
   
<xs:element name="crossSection" type="rail:tCrossSection" minOccurs="0" maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:crossSection"/>
     
</xs:annotation>
   
</xs:element>
 
</xs:sequence>
</xs:complexType>

element eCrossSections/crossSection
diagram railML_p38.png
namespace https://www.railml.org/schemas/2018
type rail:tCrossSection
properties
minOcc 0
maxOcc unbounded
content complex
children rail:additionalName rail:geoCoord rail:states
attributes
Name  Type  Use  Default  Fixed  Annotation
id  rail:tGenericID  required      
documentation
XML-file-wide unique identity is required for later referencing that element
code  rail:tGenericName        
documentation
for typical, specific abbreviations, used in different systems with the same understanding
name  rail:tGenericName        
documentation
should be interpreted in its elements' context (e.g. track/name, vehicle/name)
description  rail:tElementDescription        
documentation
should be interpreted in its elements' context, substantiates the name
xml:lang  xs:language        
documentation
natural language identification according to http://www.w3.org/TR/xml/#sec-lang-tag
pos  rail:tLengthM  required      
absPos  rail:tLengthM        
absPosOffset  rail:tLengthM        
documentation
DEPRECATED, not needed, not used
type  rail:tCrossSectionBlockType        
ocpRef  rail:tGenericRef  required      
ocpTrackID  xs:unsignedByte        
documentation
DEPRECATED since it is not needed anymore (for defining platforms, please use the platform element instead)
dir  rail:tLaxDirection        
documentation
DEPRECATED since it is not needed here.
ocpCenterSide  rail:tOcpCenterSide        
documentation
relative direction starting from the relevant track towards the "operational center" of the OCP
source <xs:element name="crossSection" type="rail:tCrossSection" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:crossSection"/>
 
</xs:annotation>
</xs:element>

complexType eDerailers
diagram railML_p39.png
namespace https://www.railml.org/schemas/2018
children rail:derailer
used by
element eOcsElements/derailers
source <xs:complexType name="eDerailers">
 
<xs:sequence>
   
<xs:element name="derailer" type="rail:tDerailer" minOccurs="0" maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:derailer"/>
     
</xs:annotation>
   
</xs:element>
 
</xs:sequence>
</xs:complexType>

element eDerailers/derailer
diagram railML_p40.png
namespace https://www.railml.org/schemas/2018
type rail:tDerailer
properties
minOcc 0
maxOcc unbounded
content complex
children rail:additionalName rail:geoCoord rail:states
attributes
Name  Type  Use  Default  Fixed  Annotation
id  rail:tGenericID  required      
documentation
XML-file-wide unique identity is required for later referencing that element
code  rail:tGenericName        
documentation
for typical, specific abbreviations, used in different systems with the same understanding
name  rail:tGenericName        
documentation
should be interpreted in its elements' context (e.g. track/name, vehicle/name)
description  rail:tElementDescription        
documentation
should be interpreted in its elements' context, substantiates the name
xml:lang  xs:language        
documentation
natural language identification according to http://www.w3.org/TR/xml/#sec-lang-tag
pos  rail:tLengthM  required      
absPos  rail:tLengthM        
absPosOffset  rail:tLengthM        
documentation
DEPRECATED, not needed, not used
dir  rail:tLaxDirection        
documentation
a direction, which allows for all direction attributes
ruleCode  rail:tElementDescription        
documentation
Code for this element in the rule book, combination of letters and numbers and space allowed, e.g. Ne5, GA, SFRS/E
derailSide  rail:tSide        
documentation
Side, to which the vehicle will be derailed (left or right) considering the orientation of the track.
kind  rail:tDerailKind        
documentation
kind of derail device (cp. book "Railway Signalling and Interlocking" by Gregor Theeg and Sergej Vlasenko (Editors), p. 155)
model  xs:string        
documentation
specification of the derailer
source <xs:element name="derailer" type="rail:tDerailer" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:derailer"/>
 
</xs:annotation>
</xs:element>

complexType eElectrificationChanges
diagram railML_p41.png
namespace https://www.railml.org/schemas/2018
children rail:electrificationChange
used by
element eTrackElements/electrificationChanges
source <xs:complexType name="eElectrificationChanges">
 
<xs:sequence>
   
<xs:element name="electrificationChange" type="rail:tElectrificationChange" minOccurs="0" maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:electrificationChange"/>
     
</xs:annotation>
   
</xs:element>
 
</xs:sequence>
</xs:complexType>

element eElectrificationChanges/electrificationChange
diagram railML_p42.png
namespace https://www.railml.org/schemas/2018
type rail:tElectrificationChange
properties
minOcc 0
maxOcc unbounded
content complex
children rail:additionalName rail:geoCoord rail:states rail:maxTrainCurrent
attributes
Name  Type  Use  Default  Fixed  Annotation
id  rail:tGenericID  required      
documentation
XML-file-wide unique identity is required for later referencing that element
code  rail:tGenericName        
documentation
for typical, specific abbreviations, used in different systems with the same understanding
name  rail:tGenericName        
documentation
should be interpreted in its elements' context (e.g. track/name, vehicle/name)
description  rail:tElementDescription        
documentation
should be interpreted in its elements' context, substantiates the name
xml:lang  xs:language        
documentation
natural language identification according to http://www.w3.org/TR/xml/#sec-lang-tag
pos  rail:tLengthM  required      
absPos  rail:tLengthM        
absPosOffset  rail:tLengthM        
documentation
DEPRECATED, not needed, not used
dir  rail:tStrictDirection        
documentation
a strict direction, which allows only for "up" and "down"
type  rail:tElectrificationType    none    
voltage  rail:tVoltageVolt    0    
frequency  rail:tFrequencyHertz    0    
vMax  rail:tSpeedKmPerHour        
isolatedSection  xs:boolean    false    
source <xs:element name="electrificationChange" type="rail:tElectrificationChange" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:electrificationChange"/>
 
</xs:annotation>
</xs:element>

complexType eGaugeChanges
diagram railML_p43.png
namespace https://www.railml.org/schemas/2018
children rail:gaugeChange
used by
element eTrackElements/gaugeChanges
source <xs:complexType name="eGaugeChanges">
 
<xs:sequence>
   
<xs:element name="gaugeChange" type="rail:tGaugeChange" minOccurs="0" maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:gaugeChange"/>
     
</xs:annotation>
   
</xs:element>
 
</xs:sequence>
</xs:complexType>

element eGaugeChanges/gaugeChange
diagram railML_p44.png
namespace https://www.railml.org/schemas/2018
type rail:tGaugeChange
properties
minOcc 0
maxOcc unbounded
content complex
children rail:additionalName rail:geoCoord rail:states
attributes
Name  Type  Use  Default  Fixed  Annotation
id  rail:tGenericID  required      
documentation
XML-file-wide unique identity is required for later referencing that element
code  rail:tGenericName        
documentation
for typical, specific abbreviations, used in different systems with the same understanding
name  rail:tGenericName        
documentation
should be interpreted in its elements' context (e.g. track/name, vehicle/name)
description  rail:tElementDescription        
documentation
should be interpreted in its elements' context, substantiates the name
xml:lang  xs:language        
documentation
natural language identification according to http://www.w3.org/TR/xml/#sec-lang-tag
pos  rail:tLengthM  required      
absPos  rail:tLengthM        
absPosOffset  rail:tLengthM        
documentation
DEPRECATED, not needed, not used
dir  rail:tStrictDirection        
documentation
a strict direction, which allows only for "up" and "down"
value  rail:tLengthMM    1435    
source <xs:element name="gaugeChange" type="rail:tGaugeChange" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:gaugeChange"/>
 
</xs:annotation>
</xs:element>

complexType eGeneralInfraAttribute
diagram railML_p45.png
namespace https://www.railml.org/schemas/2018
children rail:attributes
used by
element eGeneralInfraAttributes/generalInfraAttribute
source <xs:complexType name="eGeneralInfraAttribute">
 
<xs:sequence>
   
<xs:element name="attributes" type="rail:eAttributes" minOccurs="0">
     
<xs:annotation>
       
<xs:documentation source="http://wiki.railml.org/index.php?title=IS:attributes"/>
     
</xs:annotation>
   
</xs:element>
   
<xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
 
</xs:sequence>
</xs:complexType