rail:infrastructure

Element Information

Model

Attributes

QName Type Fixed Default Use Inheritable Annotation
code rail:tGenericName optional
for typical, specific abbreviations, used in different systems with the same understanding
description rail:tElementDescription optional
should be interpreted in its elements' context, substantiates the name
id rail:tGenericID required
XML-file-wide unique identity is required for later referencing that element
name rail:tGenericName optional
should be interpreted in its elements' context (e.g. track/name, vehicle/name)
rollingstockRef rail:tGenericRef optional
timetableRef rail:tGenericRef optional
version rail:tRailMLVersion optional
only used, if subschema element is outsourced, else use 'version' attribute in root element ('railml')
xml:base xs:anyURI optional
See http://www.w3.org/TR/xmlbase/ for
information about this attribute.
xml:lang xs:language optional
In due course, we should install the relevant ISO 2- and 3-letter
codes as the enumerated possible values . . .
Wildcard: ANY attribute from ANY namespace OTHER than 'http://www.railml.org/schemas/2016'

Used By

Element rail:railml

Source

<xs:element name="infrastructure">
  <xs:annotation>
    <xs:documentation source="http://wiki.railml.org/index.php?title=IS:infrastructure"/>
  </xs:annotation>
  <xs:complexType>
    <xs:complexContent>
      <xs:extension base="rail:tInfrastructure">
        <xs:sequence>
          <xs:element name="infraAttrGroups" type="rail:eInfraAttrGroup" minOccurs="0">
            <xs:annotation>
              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:infraAttrGroups"/>
            </xs:annotation>
          </xs:element>
          <xs:element name="tracks" type="rail:eTracks" minOccurs="0">
            <xs:annotation>
              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:tracks"/>
            </xs:annotation>
          </xs:element>
          <xs:element name="trackGroups" type="rail:eTrackGroups" minOccurs="0">
            <xs:annotation>
              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trackGroups"/>
            </xs:annotation>
          </xs:element>
          <xs:element name="operationControlPoints" type="rail:eOperationControlPoints" minOccurs="0">
            <xs:annotation>
              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:operationControlPoints"/>
            </xs:annotation>
          </xs:element>
          <xs:element name="controllers" type="rail:eControllers" minOccurs="0">
            <xs:annotation>
              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:controllers"/>
            </xs:annotation>
          </xs:element>
          <xs:element name="speedProfiles" type="rail:eSpeedProfiles" minOccurs="0">
            <xs:annotation>
              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:speedProfiles"/>
            </xs:annotation>
          </xs:element>
        </xs: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>

Sample