Schema railML.xsd


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


schema location ..\schema\infrastructure.xsd
attributeFormDefault
elementFormDefault qualified
targetNamespace https://www.railml.org/schemas/2021
 
Elements  Complex types 
infrastructure  eAttributes 
infrastructureVisualizations  eAxleWeightChanges 
eBalises 
eBorder 
eBridge 
eBridges 
eClearanceGaugeChanges 
eConnections 
eControllers 
eCrossedElements 
eCrossing 
eCrossSections 
eDerailers 
eElectrificationChanges 
eGaugeChanges 
eGeneralInfraAttribute 
eGeneralInfraAttributes 
eGenericAreas 
eGeoMappings 
eGradientChanges 
eImpairmentSections 
eInfraAttr 
eInfraAttrGroup 
eInfraAttrGroupRefs 
eInfrastructureVisualization 
eLevelCrossing 
eLevelCrossings 
eLine 
eLineVis 
eLocallyControlledArea 
eLocks 
eMileageChanges 
eOcp 
eOcpPropEquipment 
eOcpPropOperational 
eOcpPropOther 
eOcpPropPassengerInfo 
eOcpVis 
eOcsElements 
eOperatingRules 
eOperationControlPoints 
eOperationModeChanges 
eOwnerChanges 
ePlatformEdges 
ePowerTransmissionChanges 
eRadiusChanges 
eRoutes 
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/2021
 
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/2021
 
Elements  Complex types 
timetable  eAlternativeSectionsTT 
eAlternativeSectionTT 
eAnnotation 
eAnnotations 
eAnnouncement 
eAnnouncements 
eArrivalDepartureTimes 
eBlock 
eBlockParts 
eBlockPartSequence 
eBlocks 
eBrakeUsage 
eCategories 
eCategory 
eCirculations 
eConnectionsTT 
eConnectionTT 
eDistribution 
eDistributions 
eEquipment 
eEquipmentUsage 
eExternalReference 
eFormationTT 
eHolidays 
eLines 
eLineTT 
eOcpsTT 
eOcpTT 
eOperatingDay 
eOperatingPeriod 
eOperatingPeriodRef 
eOperatingPeriods 
eOrganizationalUnitBinding 
eOriginalTrackInfo 
eOriginDestinationInfo 
ePassengerFacilityTT 
ePatternTrain 
ePatternTrainArrivalDepartureTimes 
ePatternTrainOcp 
ePatternTrainOcps 
ePatternTrainPart 
ePatternTrainParts 
ePatternTrainPartSequence 
ePatternTrains 
ePatternTrainStopDescription 
eReplacedTrains 
eReplacementOf 
eReservationInfo 
eRostering 
eRosterings 
eSectionTT 
eSlot 
eSlotGroup 
eStatistic 
eStatistics 
eStopActivities 
eStopDescription 
eTapTsiTransportOperationalIdentifier 
eTimetablePeriod 
eTimetablePeriods 
eTrain 
eTrainGroup 
eTrainGroups 
eTrainPart 
eTrainParts 
eTrainPartSequence 
eTrains 
tMediaCategories 


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


schema location ..\..\..\..\..\..\..\ProgramData\Altova\Common2021\Schemas\schema\files\W3C_2001\xml.xsd
attributeFormDefault
elementFormDefault
targetNamespace http://www.w3.org/XML/1998/namespace
 
Attributes  Attr. groups 
base  specialAttrs 
id 
lang 
space 


schema location ..\schema\rollingstockTypes.xsd
attributeFormDefault
elementFormDefault qualified
targetNamespace https://www.railml.org/schemas/2021
 
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  aOwnerRS 
tLosses  aPantograph 
tMaintenanceInterval  aPassenger 
tManufacturer  aPassengerFlowSpeed 
tMechanicalWagonCouplerType  aPneumaticWagonCoupler 
tMonitoring  aPropulsion 
tNationalSystem  aRackTraction 
tOperator  aRailNetwork 
tOtherEquipment  aResistanceFormula 
tOwnerRS  aRollingstock 
tPantograph  aSpecificTransmissionModule 
tPassenger  aSpeedProfileRefRS 
tPassengerFlowSpeed  aStorage 
tPneumaticWagonCouplerType  aTechnicalStopActivity 
tPropulsion  aTractionInverter 
tRackTractionType  aTractionMotor 
tRailNetwork  aTrainEngine 
tRollingstock  aTrainRadio 
tSegmentTable  aTransformer 
tSpecificTransmissionModule  aVehicle 
tSpeedProfileRefRS  aVehicleBrake 
tStorage  aVehicleIdentification 
tTechnicalStopActivity  aVehicleRef 
tTractionInverter  aWagon 
tTractionMotor  aWinding 
tTrainEngine 
tTrainRadio 
tTrainResistance 
tTransformer 
tValueTable 
tVehicle 
tVehicleIdentification 
tVehicleRef 
tWagon 
tWinding 


schema location ..\schema\timetableTypes.xsd
attributeFormDefault
elementFormDefault qualified
targetNamespace https://www.railml.org/schemas/2021
 
Complex types  Simple types  Attr. groups 
tAnnotation  tAnnotationType  aAnnotation 
tAnnotationRef  tBitMask  aArrivalDepartureDelay 
tAnnouncement  tCompanyCode  aArrivalDepartureTimes 
tAnnouncementRef  tConnOperation  aBaseFormationTT 
tAnnouncementTrigger  tConnType  aBaseOcpTT 
tAnnouncementTriggerPeriodic  tFutureTimeScope  aBaseStopDescription 
tArrivalDepartureTimes  tInformationAreaEvent  aBaseTrain 
tBaseArrivalDepartureTimes  tMission  aBaseTrainPart 
tBaseFormationTT  tOcpEvent  aBaseTrainPartSequence 
tBaseOcpTT  tOcpTTType  aBlock 
tBaseStopDescription  tOnOff  aBlockPart 
tBaseTrackInfo  tOperatingCode  aBlockPartSequence 
tBaseTrain  tPassengerInfoTarget  aBooking 
tBaseTrainPart  tPathStatus  aBrakeUsage 
tBaseTrainPartSequence  tPlaceReservation  aCategory 
tBlock  tProcessStatus  aCirculation 
tBlockPart  tRosteringScope  aConnectionTT 
tBlockPartRef  tSimpleOcpEvent  aEquipment 
tBlockPartSequence  tSpecialServiceType  aEventTrigger 
tBooking  tStatisticFigure  aFormationTT 
tCategory  tStopActivityTypes  aFutureTimesScope 
tCirculation  tTapTsiCore  aGeoTrigger 
tConnectionTT  tTapTsiObjectType  aHoliday 
tEquipment  tTapTsiStartDate  aInformationAreaTrigger 
tEtcsTT  tTapTsiTimetableYear  aOcpTrigger 
tEventTrigger  tTapTsiVariant  aOcpTT 
tFormationTT  tTimeScope  aOperatingCode 
tGeoTrigger  tTimeScopeAll  aOperatingDayDeviance 
tHoliday  tTrainGroupType  aOperatingPeriod 
tInformationAreaTrigger  tTrainScope  aOperatingPeriodRef 
tLineTT  tTrainType  aOriginDestinationInfo 
tOcpTrigger  aOutputLanguage 
tOcpTT  aPassengerInformationReference 
tOperatingDay  aPatternTrain 
tOperatingDayDeviance  aPeriodicAnnouncementSpec 
tOperatingPeriod  aReferenceOcp 
tOperatingPeriodRef  aRostering 
tOriginalTrackInfo  aRunTimes 
tOriginDestinationInfo  aSectionTT 
tOutputLanguage  aServicePeriod 
tOutputLanguages  aSlot 
tPassengerInfoActivationTimeSpec  aSpecialService 
tPassengerInformationReference  aStatisticAnalyses 
tPatternTrain  aStopActivity 
tPatternTrainArrivalDepartureTimes  aStopDescription 
tPeriodicAnnouncementSpec  aStopTimes 
tPlacesTT  aTapTsiCompositIdentifierOperationalType 
tPlatformEdgeRef  aTimesScope 
tReferenceOcp  aTimetable 
tRostering  aTimetablePeriod 
tRunTimes  aTimingTrigger 
tSectionTT  aTrain 
tServiceSectionRef  aTrainGroup 
tSlot  aTrainPart 
tSpecialService  aTrainPartRef 
tSpeedProfileRef  aTrainPartSequence 
tStandardDeviationTimes  aUniqueTrainKey 
tStationTrackInfo 
tStatistic 
tStatisticAnalyses 
tStatisticTimes 
tStopActivity 
tStopDescription 
tStopTimes 
tTapTsiCompositIdentifierOperationalType 
tTimetable 
tTimetablePeriod 
tTimingTrigger 
tTopologyReference 
tTrackRef 
tTrain 
tTrainGroup 
tTrainPart 
tTrainPartRef 
tTrainPartSequence 
tUniqueTrainKey 


schema location ..\schema\railwayUnits.xsd
attributeFormDefault
elementFormDefault qualified
targetNamespace https://www.railml.org/schemas/2021
 
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/2021
 
Complex types  Simple types  Attr. groups 
ePassengerFacility  tAirBrakeApplicationPosition  aAuxiliaryBrakes 
tBasicBrakeType  tBrakePercentage  aBasicBrakeAttributes 
tClearanceGaugeType  tBrakeType  aClearanceGauge 
tConcessionaire  tBrakeUse  aETCS 
tContractor  tHexString  aExactTimeSpan 
tCustomer  tInfrastructureStatus  aMinBasicBrakeAttributes 
tDesignator  tInterlockingTypes  aPeriodTimeSpan 
tDoneBy  tLineClassificationType  aPlaces 
tInfrastructureManager  tPassengersPerSecond  aService 
tMetadata  tPlaceCategory  aTilting 
tObjectsRevised  tServiceType  aTimePeriod 
tOperationalUndertaking  tTiltingActuationType 
tOrganizationalUnit  tTimeZone 
tOrganizationalUnits  tTrainProtectionMedium 
tPhase  tTrainProtectionMonitoring 
tPlaces  tUsageType 
tProject 
tProjects 
tRailwayUndertaking 
tRevision 
tService 
tState 
tStates 
tTilting 
tTimeSpan 
tVehicleManufacturer 
tVehicleOperator 
tVehicleOwner 


schema location ..\schema\physicalUnits.xsd
attributeFormDefault
elementFormDefault qualified
targetNamespace https://www.railml.org/schemas/2021
 
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/2021
 
Complex types  Simple types  Attr. groups 
tAdditionalName  tCoordinateList  anyAttribute 
tElementRefInGroup  tCounter 
tElementWithID  tDigitString 
tElementWithIDAndName  tDoubleList 
tElementWithIDAndNameWithoutAny  tDurationList 
tElementWithReference  tElementDescription 
tGlobalElementWithMetadata  tFiveDigits 
tInfoText  tFiveLetterString 
tInfoTextBase  tFourDigits 
tGenericID 
tGenericName 
tGenericRef 
tOneDigit 
tOneToZero 
tOtherEnumerationValue 
tPositiveCounter 
tRailMLVersion 
tThreeDigits 
tThreeLetterString 
tTwelveDigits 
tTwoDigits 
tVerbalCounter 
tVerbosenessClass 
tVersionNumber 


schema location https://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/2021
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:metadata/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:metadata/rail:organizationalUnits/rail:vehicleManufacturer  @id  
keyref  vehicleManufacturer-manufacturerKeyref  rail:vehicleManufacturerKey  .//rail:classification/rail:manufacturer  @vehicleManufacturerRef  
key  vehicleOwnerKey    ./rail:metadata/rail:organizationalUnits/rail:vehicleOwner  @id  
keyref  vehicleOwner-ownerKeyref  rail:vehicleOwnerKey  .//rail:classification/rail:owner  @vehicleOwnerRef  
key  vehicleOperatorKey    ./rail:metadata/rail:organizationalUnits/rail:vehicleOperator  @id  
keyref  vehicleOperator-operatorKeyref  rail:vehicleOperatorKey  .//rail:classification/rail:operator  @vehicleOperatorRef  
keyref  vehicleOperator-vehicleOperatorKeyref  rail:vehicleOperatorKey  .//rail:organizationalUnitBinding/rail:vehicleOperator  @ref  
key  customerKey    ./rail:metadata/rail:organizationalUnits/rail:customer  @id  
keyref  customer-customerKeyref  rail:customerKey  .//rail:organizationalUnitBinding/rail:customer  @ref  
key  railwayUndertakingKey    ./rail:metadata/rail:organizationalUnits/rail:railwayUndertaking  @id  
keyref  railwayUndertaking-railwayUndertakingKeyref  rail:railwayUndertakingKey  .//rail:organizationalUnitBinding/rail:railwayUndertaking  @ref  
key  operationalUndertakingKey    ./rail:metadata/rail:organizationalUnits/rail:operationalUndertaking  @id  
keyref  operationalUndertaking-operationalUndertakingKeyref  rail:operationalUndertakingKey  .//rail:organizationalUnitBinding/rail:operationalUndertaking  @ref  
key  concessionaireKey    ./rail:metadata/rail:organizationalUnits/rail:concessionaire  @id  
keyref  concessionaire-concessionaireKeyref  rail:concessionaireKey  .//rail:organizationalUnitBinding/rail:concessionaire  @ref  
key  contractorKey    ./rail:metadata/rail:organizationalUnits/rail:contractor  @id  
keyref  contractor-contractorKeyref  rail:contractorKey  .//rail:organizationalUnitBinding/rail:contractor  @ref  
key  organizationalUnitKey    ./rail:metadata/rail:organizationalUnits/*  @id  
keyref  category-organizationalUnitKeyref  rail:organizationalUnitKey  .//rail:categories/rail:category  @organizationalUnitRef  
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-distributionKeyref  rail:ocpKey  .//rail:distribution/rail:referenceOcp  @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  
keyref  ocp-trainPartOrigin  rail:ocpKey  .//rail:origin  @ocpRef  
keyref  ocp-trainPartDestination  rail:ocpKey  .//rail:destination  @ocpRef  
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  
keyref  track-alternativeSectionTTKeyref  rail:trackKey  .//rail:ocpTT/rail:alternativeSectionsTT/rail:alternativeSectionTT/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  
keyref  line-alternativeSectionTTKeyref  rail:lineKey  .//rail:ocpTT/rail:alternativeSectionsTT/rail:alternativeSectionTT  @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: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-patternTrainPartKeyref  rail:categoryKey  .//rail:patternTrainParts/rail:patternTrainPart  @categoryRef  
keyref  category-trainPartKeyref  rail:categoryKey  .//rail:trainParts/rail:trainPart  @categoryRef  
keyref  category-trainPartSequenceKeyref  rail:categoryKey  .//rail:trainPartSequence  @categoryRef  
keyref  category-categoryParentRef  rail:categoryKey  .//rail:categories/rail:category  @parentRef  
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  
key  projectKey    ./rail:metadata/rail:projects/rail:project  @id  
keyref  project-revisionKeyref  rail:projectKey  ./rail:metadata/rail:projects/rail:project/rail:revision  @initialProjectRef  
key  genericAreaKey    ./rail:infrastructure/rail:genericAreas/rail:genericArea  @id  
keyref  genericArea-projectKeyref  rail:genericAreaKey  ./rail:metadata/rail:projects/rail:project/rail:projectArea  @ref  
source <xs:element name="railml">
 
<xs:complexType>
   
<xs:annotation>
     
<xs:documentation>See https://wiki2.railml.org/wiki/CO:railml</xs:documentation>
   
</xs:annotation>
   
<xs:sequence>
     
<xs:element name="metadata" type="rail:tMetadata" minOccurs="0">
       
<xs:annotation>
         
<xs:documentation>See https://wiki2.railml.org/wiki/CO:metadata</xs:documentation>
       
</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:metadata/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:metadata/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>
 
<!-- vehicleOwner identity in metadata -->
 
<xs:key name="vehicleOwnerKey">
   
<xs:selector xpath="./rail:metadata/rail:organizationalUnits/rail:vehicleOwner"/>
   
<xs:field xpath="@id"/>
 
</xs:key>
 
<!-- vehicleOwner reference in rollingstock subschema -->
 
<xs:keyref name="vehicleOwner-ownerKeyref" refer="rail:vehicleOwnerKey">
   
<xs:selector xpath=".//rail:classification/rail:owner"/>
   
<xs:field xpath="@vehicleOwnerRef"/>
 
</xs:keyref>
 
<!-- vehicleOperator identity in metadata -->
 
<xs:key name="vehicleOperatorKey">
   
<xs:selector xpath="./rail:metadata/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>
 
<!-- vehicleOperator reference in timetable subschema -->
 
<xs:keyref name="vehicleOperator-vehicleOperatorKeyref" refer="rail:vehicleOperatorKey">
   
<xs:selector xpath=".//rail:organizationalUnitBinding/rail:vehicleOperator"/>
   
<xs:field xpath="@ref"/>
 
</xs:keyref>
 
<!-- customer identity in metadata -->
 
<xs:key name="customerKey">
   
<xs:selector xpath="./rail:metadata/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:metadata/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:metadata/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:metadata/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:metadata/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>
 
<!-- any organization unit identity in metadata -->
 
<xs:key name="organizationalUnitKey">
   
<xs:selector xpath="./rail:metadata/rail:organizationalUnits/*"/>
   
<xs:field xpath="@id"/>
 
</xs:key>
 
<!-- organization unit reference in timetable subschema -->
 
<xs:keyref name="category-organizationalUnitKeyref" refer="rail:organizationalUnitKey">
   
<xs:selector xpath=".//rail:categories/rail:category"/>
   
<xs:field xpath="@organizationalUnitRef"/>
 
</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-distributionKeyref" refer="rail:ocpKey">
   
<xs:selector xpath=".//rail:distribution/rail:referenceOcp"/>
   
<xs:field xpath="@ocpRef"/>
 
</xs:keyref>
 
<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>
 
<xs:keyref name="ocp-trainPartOrigin" refer="rail:ocpKey">
   
<xs:selector xpath=".//rail:origin"/>
   
<xs:field xpath="@ocpRef"/>
 
</xs:keyref>
 
<xs:keyref name="ocp-trainPartDestination" refer="rail:ocpKey">
   
<xs:selector xpath=".//rail:destination"/>
   
<xs:field xpath="@ocpRef"/>
 
</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>
 
<xs:keyref name="track-alternativeSectionTTKeyref" refer="rail:trackKey">
   
<xs:selector xpath=".//rail:ocpTT/rail:alternativeSectionsTT/rail:alternativeSectionTT/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>
 
<xs:keyref name="line-alternativeSectionTTKeyref" refer="rail:lineKey">
   
<xs:selector xpath=".//rail:ocpTT/rail:alternativeSectionsTT/rail:alternativeSectionTT"/>
   
<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: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-patternTrainPartKeyref" refer="rail:categoryKey">
   
<xs:selector xpath=".//rail:patternTrainParts/rail:patternTrainPart"/>
   
<xs:field xpath="@categoryRef"/>
 
</xs:keyref>
 
<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:trainPartSequence"/>
   
<xs:field xpath="@categoryRef"/>
 
</xs:keyref>
 
<xs:keyref name="category-categoryParentRef" refer="rail:categoryKey">
   
<xs:selector xpath=".//rail:categories/rail:category"/>
   
<xs:field xpath="@parentRef"/>
 
</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>
 
<!-- project identity in common schema -->
 
<xs:key name="projectKey">
   
<xs:selector xpath="./rail:metadata/rail:projects/rail:project"/>
   
<xs:field xpath="@id"/>
 
</xs:key>
 
<!-- project reference in common schema -->
 
<xs:keyref name="project-revisionKeyref" refer="rail:projectKey">
   
<xs:selector xpath="./rail:metadata/rail:projects/rail:project/rail:revision"/>
   
<xs:field xpath="@initialProjectRef"/>
 
</xs:keyref>
 
<!-- genericArea identity in infrastructure schema -->
 
<xs:key name="genericAreaKey">
   
<xs:selector xpath="./rail:infrastructure/rail:genericAreas/rail:genericArea"/>
   
<xs:field xpath="@id"/>
 
</xs:key>
 
<!-- genericArea reference in common schema -->
 
<xs:keyref name="genericArea-projectKeyref" refer="rail:genericAreaKey">
   
<xs:selector xpath="./rail:metadata/rail:projects/rail:project/rail:projectArea"/>
   
<xs:field xpath="@ref"/>
 
</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/2021
type rail:tMetadata
properties
minOcc 0
maxOcc 1
content complex
children any rail:organizationalUnits rail:projects
annotation
documentation
See https://wiki2.railml.org/wiki/CO:metadata
source <xs:element name="metadata" type="rail:tMetadata" minOccurs="0">
 
<xs:annotation>
   
<xs:documentation>See https://wiki2.railml.org/wiki/CO:metadata</xs:documentation>
 
</xs:annotation>
</xs:element>

element infrastructure
diagram railML_p3.png
namespace https://www.railml.org/schemas/2021
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 rail:routes rail:operatingRules rail:genericAreas
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  derived by: xs:language        
documentation
natural language identification according to https://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  
annotation
documentation
See https://wiki2.railml.org/wiki/IS:infrastructure
source <xs:element name="infrastructure">
 
<xs:annotation>
   
<xs:documentation>See https://wiki2.railml.org/wiki/IS:infrastructure</xs:documentation>
 
</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>See https://wiki2.railml.org/wiki/IS:infraAttrGroups</xs:documentation>
           
</xs:annotation>
         
</xs:element>
         
<xs:element name="tracks" type="rail:eTracks" minOccurs="0">
           
<xs:annotation>
             
<xs:documentation>See https://wiki2.railml.org/wiki/IS:tracks</xs:documentation>
           
</xs:annotation>
         
</xs:element>
         
<xs:element name="trackGroups" type="rail:eTrackGroups" minOccurs="0">
           
<xs:annotation>
             
<xs:documentation>See https://wiki2.railml.org/wiki/IS:trackGroups</xs:documentation>
           
</xs:annotation>
         
</xs:element>
         
<xs:element name="operationControlPoints" type="rail:eOperationControlPoints" minOccurs="0">
           
<xs:annotation>
             
<xs:documentation>See https://wiki2.railml.org/wiki/IS:operationControlPoints</xs:documentation>
           
</xs:annotation>
         
</xs:element>
         
<xs:element name="controllers" type="rail:eControllers" minOccurs="0">
           
<xs:annotation>
             
<xs:documentation>See https://wiki2.railml.org/wiki/IS:controllers</xs:documentation>
           
</xs:annotation>
         
</xs:element>
         
<xs:element name="speedProfiles" type="rail:eSpeedProfiles" minOccurs="0">
           
<xs:annotation>
             
<xs:documentation>See https://wiki2.railml.org/wiki/IS:speedProfiles</xs:documentation>
           
</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:documentation>See https://wiki2.railml.org/wiki/IS:states</xs:documentation>
           
</xs:annotation>
         
</xs:element>
         
<xs:element name="routes" type="rail:eRoutes" minOccurs="0">
           
<xs:annotation>
             
<xs:documentation>See https://wiki2.railml.org/wiki/IS:routes</xs:documentation>
           
</xs:annotation>
         
</xs:element>
         
<xs:element name="operatingRules" type="rail:eOperatingRules" minOccurs="0">
           
<xs:annotation>
             
<xs:documentation>See https://wiki2.railml.org/wiki/IS:operatingRules</xs:documentation>
           
</xs:annotation>
         
</xs:element>
         
<xs:element name="genericAreas" type="rail:eGenericAreas" minOccurs="0">
           
<xs:annotation>
             
<xs:documentation>Container element for generic areas, that are linked from different elements for different purposes</xs:documentation>
             
<xs:documentation>See https://wiki2.railml.org/wiki/IS:genericAreas</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/2021
type rail:eInfraAttrGroup
properties
minOcc 0
maxOcc 1
content complex
children rail:infraAttributes
annotation
documentation
See https://wiki2.railml.org/wiki/IS:infraAttrGroups
source <xs:element name="infraAttrGroups" type="rail:eInfraAttrGroup" minOccurs="0">
 
<xs:annotation>
   
<xs:documentation>See https://wiki2.railml.org/wiki/IS:infraAttrGroups</xs:documentation>
 
</xs:annotation>
</xs:element>

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

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

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

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

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

element infrastructure/states
diagram railML_p10.png
namespace https://www.railml.org/schemas/2021
type rail:tStates
properties
minOcc 0
maxOcc 1
content complex
children rail:state
annotation
documentation
Container to define disabled/enabled status of infrastructure
documentation
See https://wiki2.railml.org/wiki/IS:states
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:documentation>See https://wiki2.railml.org/wiki/IS:states</xs:documentation>
 
</xs:annotation>
</xs:element>

element infrastructure/routes
diagram railML_p11.png
namespace https://www.railml.org/schemas/2021
type rail:eRoutes
properties
minOcc 0
maxOcc 1
content complex
children rail:route
annotation
documentation
See https://wiki2.railml.org/wiki/IS:routes
source <xs:element name="routes" type="rail:eRoutes" minOccurs="0">
 
<xs:annotation>
   
<xs:documentation>See https://wiki2.railml.org/wiki/IS:routes</xs:documentation>
 
</xs:annotation>
</xs:element>

element infrastructure/operatingRules
diagram railML_p12.png
namespace https://www.railml.org/schemas/2021
type rail:eOperatingRules
properties
minOcc 0
maxOcc 1
content complex
children rail:operatingRule
annotation
documentation
See https://wiki2.railml.org/wiki/IS:operatingRules
source <xs:element name="operatingRules" type="rail:eOperatingRules" minOccurs="0">
 
<xs:annotation>
   
<xs:documentation>See https://wiki2.railml.org/wiki/IS:operatingRules</xs:documentation>
 
</xs:annotation>
</xs:element>

element infrastructure/genericAreas
diagram railML_p13.png
namespace https://www.railml.org/schemas/2021
type rail:eGenericAreas
properties
minOcc 0
maxOcc 1
content complex
children rail:genericArea
annotation
documentation
Container element for generic areas, that are linked from different elements for different purposes
documentation
See https://wiki2.railml.org/wiki/IS:genericAreas
source <xs:element name="genericAreas" type="rail:eGenericAreas" minOccurs="0">
 
<xs:annotation>
   
<xs:documentation>Container element for generic areas, that are linked from different elements for different purposes</xs:documentation>
   
<xs:documentation>See https://wiki2.railml.org/wiki/IS:genericAreas</xs:documentation>
 
</xs:annotation>
</xs:element>

element infrastructureVisualizations
diagram railML_p14.png
namespace https://www.railml.org/schemas/2021
properties
content complex
children rail:visualization
used by
element railml
attributes
Name  Type  Use  Default  Fixed  Annotation
xml:base  xs:anyURI        
documentation
<div>
<h3>base (as an attribute name)</h3>
<p>
       denotes an attribute whose value
       provides a URI to be used as the base for interpreting any
       relative URIs in the scope of the element on which it
       appears; its value is inherited.  This name is reserved
       by virtue of its definition in the XML Base specification.</p>
<p>
      See <a href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a>
      for information about this attribute.
     </p>
</div>
annotation
documentation
See https://wiki2.railml.org/wiki/IS:infrastructureVisualizations
source <xs:element name="infrastructureVisualizations">
 
<xs:annotation>
   
<xs:documentation>See https://wiki2.railml.org/wiki/IS:infrastructureVisualizations</xs:documentation>
 
</xs:annotation>
 
<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:documentation>See https://wiki2.railml.org/wiki/IS:visualization</xs:documentation>
       
</xs:annotation>
     
</xs:element>
   
</xs:sequence>
   
<xs:attribute ref="xml:base"/>
 
</xs:complexType>
</xs:element>

element infrastructureVisualizations/visualization
diagram railML_p15.png
namespace https://www.railml.org/schemas/2021
type rail:eInfrastructureVisualization
properties
minOcc 0
maxOcc unbounded
content complex
children rail:lineVis rail:ocpVis rail:objectVis
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
documentation
See https://wiki2.railml.org/wiki/IS:visualization
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:documentation>See https://wiki2.railml.org/wiki/IS:visualization</xs:documentation>
 
</xs:annotation>
</xs:element>

complexType eAttributes
diagram railML_p16.png
namespace https://www.railml.org/schemas/2021
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>See https://wiki2.railml.org/wiki/IS:attribute</xs:documentation>
     
</xs:annotation>
   
</xs:element>
 
</xs:sequence>
</xs:complexType>

element eAttributes/attribute
diagram railML_p17.png
namespace https://www.railml.org/schemas/2021
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      
annotation
documentation
See https://wiki2.railml.org/wiki/IS:attribute
source <xs:element name="attribute" type="rail:tAttribute" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation>See https://wiki2.railml.org/wiki/IS:attribute</xs:documentation>
 
</xs:annotation>
</xs:element>

complexType eAxleWeightChanges
diagram railML_p18.png
namespace https://www.railml.org/schemas/2021
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>See https://wiki2.railml.org/wiki/IS:axleWeightChange</xs:documentation>
     
</xs:annotation>
   
</xs:element>
 
</xs:sequence>
</xs:complexType>

element eAxleWeightChanges/axleWeightChange
diagram railML_p19.png
namespace https://www.railml.org/schemas/2021
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  derived by: xs:language        
documentation
natural language identification according to https://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
DEPRECATED! (a limited direction, which allows only for "up", "down" and "unknown")
value  rail:tWeightTons  required      
meterload  rail:tMeterloadTonsPerMeter        
annotation
documentation
See https://wiki2.railml.org/wiki/IS:axleWeightChange
source <xs:element name="axleWeightChange" type="rail:tAxleWeightChange" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation>See https://wiki2.railml.org/wiki/IS:axleWeightChange</xs:documentation>
 
</xs:annotation>
</xs:element>

complexType eBalises
diagram railML_p20.png
namespace https://www.railml.org/schemas/2021
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>See https://wiki2.railml.org/wiki/IS:balise</xs:documentation>
     
</xs:annotation>
   
</xs:element>
   
<xs:element name="baliseGroup" type="rail:tBaliseGroup" minOccurs="0" maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation>See https://wiki2.railml.org/wiki/IS:baliseGroup</xs:documentation>
     
</xs:annotation>
   
</xs:element>
 
</xs:sequence>
</xs:complexType>

element eBalises/balise
diagram railML_p21.png
namespace https://www.railml.org/schemas/2021
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  derived by: xs:language        
documentation
natural language identification according to https://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
type  rail:tBaliseType        
documentation
type of balise: fixed or controlled
ndx  rail:tPIG        
annotation
documentation
See https://wiki2.railml.org/wiki/IS:balise
source <xs:element name="balise" type="rail:tBalise" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation>See https://wiki2.railml.org/wiki/IS:balise</xs:documentation>
 
</xs:annotation>
</xs:element>

element eBalises/baliseGroup
diagram railML_p22.png
namespace https://www.railml.org/schemas/2021
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  derived by: xs:language        
documentation
natural language identification according to https://www.w3.org/TR/xml/#sec-lang-tag
type  rail:tBaliseGroupType        
documentation
functional type of the balise group
annotation
documentation
See https://wiki2.railml.org/wiki/IS:baliseGroup
source <xs:element name="baliseGroup" type="rail:tBaliseGroup" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation>See https://wiki2.railml.org/wiki/IS:baliseGroup</xs:documentation>
 
</xs:annotation>
</xs:element>

complexType eBorder
diagram railML_p23.png
namespace https://www.railml.org/schemas/2021
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>See https://wiki2.railml.org/wiki/IS:border</xs:documentation>
     
</xs:annotation>
   
</xs:element>
 
</xs:sequence>
</xs:complexType>

element eBorder/border
diagram railML_p24.png
namespace https://www.railml.org/schemas/2021
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  derived by: xs:language        
documentation
natural language identification according to https://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      
annotation
documentation
See https://wiki2.railml.org/wiki/IS:border
source <xs:element name="border" type="rail:tBorder" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation>See https://wiki2.railml.org/wiki/IS:border</xs:documentation>
 
</xs:annotation>
</xs:element>

complexType eBridge
diagram railML_p25.png
namespace https://www.railml.org/schemas/2021
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  derived by: xs:language        
documentation
natural language identification according to https://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
DEPRECATED! (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:documentation>See https://wiki2.railml.org/wiki/IS:crossedElements</xs:documentation>
         
</xs:annotation>
       
</xs:element>
     
</xs:sequence>
   
</xs:extension>
 
</xs:complexContent>
</xs:complexType>

element eBridge/crossedElements
diagram railML_p26.png
namespace https://www.railml.org/schemas/2021
type rail:eCrossedElements
properties
minOcc 0
maxOcc 1
content complex
children rail:crossedElement
annotation
documentation
list the elements that are crossed by this element
documentation
See https://wiki2.railml.org/wiki/IS:crossedElements
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:documentation>See https://wiki2.railml.org/wiki/IS:crossedElements</xs:documentation>
 
</xs:annotation>
</xs:element>

complexType eBridges
diagram railML_p27.png
namespace https://www.railml.org/schemas/2021
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>See https://wiki2.railml.org/wiki/IS:brigde</xs:documentation>
     
</xs:annotation>
   
</xs:element>
 
</xs:sequence>
</xs:complexType>

element eBridges/brigde
diagram railML_p28.png
namespace https://www.railml.org/schemas/2021
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  derived by: xs:language        
documentation
natural language identification according to https://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
DEPRECATED! (a limited direction, which allows only for "up", "down" and "unknown")
kind  xs:string        
meterload  rail:tMeterloadTonsPerMeter        
annotation
documentation
See https://wiki2.railml.org/wiki/IS:brigde
source <xs:element name="brigde" type="rail:eBridge" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation>See https://wiki2.railml.org/wiki/IS:brigde</xs:documentation>
 
</xs:annotation>
</xs:element>

complexType eClearanceGaugeChanges
diagram railML_p29.png
namespace https://www.railml.org/schemas/2021
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>See https://wiki2.railml.org/wiki/IS:clearanceGaugeChange</xs:documentation>
     
</xs:annotation>
   
</xs:element>
 
</xs:sequence>
</xs:complexType>

element eClearanceGaugeChanges/clearanceGaugeChange
diagram railML_p30.png
namespace https://www.railml.org/schemas/2021
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  derived by: xs:language        
documentation
natural language identification according to https://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
DEPRECATED! (a limited direction, which allows only for "up", "down" and "unknown")
annotation
documentation
See https://wiki2.railml.org/wiki/IS:clearanceGaugeChange
source <xs:element name="clearanceGaugeChange" type="rail:tClearanceGaugeChange" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation>See https://wiki2.railml.org/wiki/IS:clearanceGaugeChange</xs:documentation>
 
</xs:annotation>
</xs:element>

complexType eConnections
diagram railML_p31.png
namespace https://www.railml.org/schemas/2021
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>See https://wiki2.railml.org/wiki/IS:switch</xs:documentation>
     
</xs:annotation>
   
</xs:element>
   
<xs:element name="crossing" type="rail:eCrossing" minOccurs="0" maxOccurs="unbounded">
     
<xs:annotation>
       
<xs:documentation>See https://wiki2.railml.org/wiki/IS:crossing</xs:documentation>
     
</xs:annotation>
   
</xs:element>
 
</xs:choice>
</xs:complexType>

element eConnections/switch
diagram railML_p32.png
namespace https://www.railml.org/schemas/2021
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  derived by: xs:language        
documentation
natural language identification according to https://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        
remoteOperated  xs:boolean        
documentation
position is operated from anywhere else, i.e. from signalbox or remote operator place but not directly at the switch/crossing
remoteIndicated  xs:boolean        
documentation
position is indicated at a remote place like within the signalbox or a remote operator place
lockRef  rail:tGenericRef        
clearancePosOffset  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        
annotation
documentation
See https://wiki2.railml.org/wiki/IS:switch
source <xs:element name="switch" type="rail:eSwitch" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation>See https://wiki2.railml.org/wiki/IS:switch</xs:documentation>
 
</xs:annotation>
</xs:element>

element eConnections/crossing
diagram railML_p33.png
namespace https://www.railml.org/schemas/2021
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  derived by: xs:language        
documentation
natural language identification according to https://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        
remoteOperated  xs:boolean        
documentation
position is operated from anywhere else, i.e. from signalbox or remote operator place but not directly at the switch/crossing
remoteIndicated  xs:boolean        
documentation
position is indicated at a remote place like within the signalbox or a remote operator place
lockRef  rail:tGenericRef        
clearancePosOffset  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        
annotation
documentation
See https://wiki2.railml.org/wiki/IS:crossing
source <xs:element name="crossing" type="rail:eCrossing" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation>See https://wiki2.railml.org/wiki/IS:crossing</xs:documentation>
 
</xs:annotation>
</xs:element>

complexType eControllers
diagram railML_p34.png
namespace https://www.railml.org/schemas/2021
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>See https://wiki2.railml.org/wiki/IS:controller</xs:documentation>
     
</xs:annotation>
   
</xs:element>
 
</xs:sequence>
</xs:complexType>

element eControllers/controller
diagram railML_p35.png
namespace https://www.railml.org/schemas/2021
type rail:tController
properties
minOcc 0
maxOcc unbounded
content complex
children rail:additionalName rail:states rail:ocpRef rail:trackVacancyDetectionArea rail:localOperationArea rail:workZone
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  derived by: xs:language        
documentation
natural language identification according to https://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
routeSetTime  xs:duration        
documentation
Time for the route to be set by the CTC and interlocking. This is from the command is given by the dispatcher at the CTC/OCS terminal and to the signal light lights up or the movement authority is displayed in the MMI in the CAB.
documentation
See https://www.w3.org/TR/xmlschema-2/#duration
documentation
See https://wiki2.railml.org/wiki/IS:controller
typicalThrowTime  xs:duration        
documentation
typicalThrowTime is defined as the average time from when signal is given from controller (interlocking), switch is unlocked, blades are switching, locked and controlled and new position is indicated in controller. Forum: consider moving this to controller or switchPointMachineType for generic value or beeing able to set an individual value per switch/crossing?
documentation
See https://www.w3.org/TR/xmlschema-2/#duration
documentation
See https://wiki2.railml.org/wiki/IS:controller
annotation
documentation
See https://wiki2.railml.org/wiki/IS:controller
source <xs:element name="controller" type="rail:tController" minOccurs="0" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation>See https://wiki2.railml.org/wiki/IS:controller</xs:documentation>
 
</xs:annotation>
</xs:element>

complexType eCrossedElements
diagram railML_p36.png
namespace https://www.railml.org/schemas/2021
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>See https://wiki2.railml.org/wiki/IS:crossedElement</xs:documentation>
     
</xs:annotation>
   
</xs:element>
 
</xs:sequence>
</xs:complexType>

element eCrossedElements/crossedElement
diagram railML_p37.png
namespace https://www.railml.org/schemas/2021
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  derived by: xs:language        
documentation
natural language identification according to https://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
annotation
documentation
See https://wiki2.railml.org/wiki/IS:crossedElement
source <xs:element name="crossedElement" type="rail:tCrossedElement" maxOccurs="unbounded">
 
<xs:annotation>
   
<xs:documentation>See https://wiki2.railml.org/wiki/IS:crossedElement</xs:documentation>
 
</xs:annotation>
</xs:element>

complexType eCrossing
diagram railML_p38.png
namespace https://www.railml.org/schemas/2021
type extension of rail:tCrossing
properties
base rail:tCrossing
children rail:additionalName rail:geoCoord rail:states rail:connection
used by
element eConnections/crossing
attributes