<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:rsmCommon="http://www.railsystemmodel.org/schemas/Common/1.2" xmlns:rsmNE="http://www.railsystemmodel.org/schemas/NetEntity/1.2" xmlns:rsmTrack="http://www.railsystemmodel.org/schemas/Track/1.2" elementFormDefault="qualified" targetNamespace="http://www.railsystemmodel.org/schemas/Track/1.2">
  <!--<dc:date>2021-12-21T16:28:00Z</dc:date><dc:creator>rtm2xsd 1.9.1</dc:creator><dc:source>Model 1.2, XMI 2.4.1, EA 13</dc:source>-->
  <xs:annotation>
    <xs:documentation>
      This XML schema file was generated by the EULYNX DataPrep workgroup.
      Detailed technical information is found on https://rsm.uic.org
</xs:documentation>
  </xs:annotation>
  <xs:import namespace="http://www.railsystemmodel.org/schemas/Common/1.2" schemaLocation="../../Common/1.2/RsmCommon.xsd"/>
  <xs:import namespace="http://www.railsystemmodel.org/schemas/NetEntity/1.2" schemaLocation="../../NetEntity/1.2/RsmNetEntity.xsd"/>
  <xs:complexType name="DoubleSlipCrossing">
    <xs:annotation>
      <xs:documentation>Arrangement where tracks cross at a low angle, includes two slips.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmTrack:Crossing">
        <xs:sequence>
          <xs:element maxOccurs="4" minOccurs="4" name="includesTurnouts" nillable="true" type="rsmTrack:Turnout">
            <xs:annotation>
              <xs:documentation>A double-slip crossing has four turnouts.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="VehicleStop">
    <xs:annotation>
      <xs:documentation>Static installation for physically stopping trains, typically a buffer stop or sand hump.
Vehicle stops need not coincide with the extremity of a linear element. Reciprocally, linear elements are not "cut" by a vehicle stop. Derailers and trap points aren't static and aren't considered vehicle stops.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmNE:LocatedNetEntity"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="SimpleCrossing">
    <xs:annotation>
      <xs:documentation>Arrangement where tracks cross without slip points. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmTrack:Crossing"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="CircularTurnout">
    <xs:complexContent>
      <xs:extension base="rsmTrack:Turnout">
        <xs:sequence>
          <xs:element name="permittedSpeed" nillable="true" type="rsmCommon:Speed"/>
          <xs:element name="radius" nillable="true" type="rsmCommon:Length"/>
          <xs:element name="turningAngle" nillable="true" type="rsmCommon:Angle"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TrackPanel">
    <xs:annotation>
      <xs:documentation>Trackwork ensuring the support and guidance of a vehicle along a route. It may consist of assembly of rail, sleepers and fastenings.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmNE:LocatedNetEntity"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TangentTurnout">
    <xs:complexContent>
      <xs:extension base="rsmTrack:CircularTurnout"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="SecantTurnout">
    <xs:complexContent>
      <xs:extension base="rsmTrack:CircularTurnout">
        <xs:sequence>
          <xs:element name="secantAngle" nillable="true" type="rsmCommon:Angle"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TrapPoint">
    <xs:annotation>
      <xs:documentation>Trap point (or trap turnout), FR: aiguille d'ensablement, is a Turnout with a diverting branch that will derail rolling stock when in protective position. 

From a model point of view, one of the three related NetElements handled by Trap point is a Non Linear element (replacing the deviated track).</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmTrack:Turnout"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="JunctionEntity">
    <xs:annotation>
      <xs:documentation>Arrangement where tracks meet. 
An abstract class, representing the union of turnouts and crossings (and, possibly, turntables that are not part of RSM1.2).
Maps to &lt;i&gt;PointCrossing&lt;/i&gt; in EULYNX DP.

Inherits from LocatedNetEntity, but does not use association role "locations".</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmNE:LocatedNetEntity">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="handles" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>Informs about the relation(s) between linear elements that this junction realises.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:PositionedRelation</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="TurnoutOrientation">
    <xs:annotation>
      <xs:documentation>Orientation of the turnout.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="Left">
        <xs:annotation>
          <xs:documentation>The diverting track curves to the left with respect to the through-track (viewed from the toe).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Right">
        <xs:annotation>
          <xs:documentation>The diverting track curves to the right with respect to the through-track (viewed from the toe).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Symmetric">
        <xs:annotation>
          <xs:documentation>The turnout forks symmetrically, i.e. Y-shaped.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Other">
        <xs:annotation>
          <xs:documentation>Asymmetric "Y".</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="DilatationPanel">
    <xs:annotation>
      <xs:documentation>(NF EN 13232-1-2004)
Device allowing longitudinal relative rail movement of two adjacent rails, while maintaining correct guidance and support.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmNE:LocatedNetEntity"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="SpecialTurnout">
    <xs:complexContent>
      <xs:extension base="rsmTrack:Turnout">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="1" name="hasTransitionCurve" nillable="true" type="xs:boolean"/>
          <xs:element maxOccurs="1" minOccurs="1" name="isCurved" nillable="true" type="xs:boolean"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="SingleSlipCrossing">
    <xs:annotation>
      <xs:documentation>Arrangement where tracks cross at a low angle, includes one slip.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmTrack:Crossing">
        <xs:sequence>
          <xs:element maxOccurs="2" minOccurs="2" name="includesTurnouts" nillable="true" type="rsmTrack:Turnout">
            <xs:annotation>
              <xs:documentation>A single-slip crossing has two turnouts.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Turnout">
    <xs:annotation>
      <xs:documentation>The most basic type of junction, providing a communication between exactly three NetElements.
Maps to &lt;i&gt;Point&lt;/i&gt; in EULYNX DP.  </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmTrack:JunctionEntity">
        <xs:sequence>
          <xs:element name="orientation" nillable="true" type="rsmTrack:TurnoutOrientation">
            <xs:annotation>
              <xs:documentation>The turnout has one orientation.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="origin" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>Origin is spot location of the tangent or secant point where the diverted track meets the through track. Origin coincides with the ends of the topological elements.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:SpotLocation</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="turnoutArea" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>In RSM, a turnout is a functional object. The footprint of the underlying physical turnout is ignored. Therefore, no area location is normally associated with a turnout.

The possibility to define such an area location is provided for convenience. The area location is expected to be defined by structural objects in other models, or by extensions.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:AreaLocation</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Crossing">
    <xs:annotation>
      <xs:documentation>Arrangement where tracks cross.
Represented by intersecting or abutting linear elements.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmTrack:JunctionEntity">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="0" name="crossingArea" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>The envelope of the crossing system.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:AreaLocation</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="crossingCentre" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>The spot location where the tracks physically intersect.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:SpotLocation</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:schema>

