<?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" elementFormDefault="qualified" targetNamespace="http://www.railsystemmodel.org/schemas/Common/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:complexType name="VerticalAlignment">
    <xs:annotation>
      <xs:documentation>Vertical projection of the alignment curve. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element maxOccurs="unbounded" minOccurs="1" name="isStructuredIn" nillable="true" type="rsmCommon:tElementWithIDref">
        <xs:annotation>
          <xs:documentation>The vertical alignment is an ordered set of vertical segments.
</xs:documentation>
          <xs:appinfo>
            <ObjectTypeRef>rsmCommon:VerticalAlignmentSegment</ObjectTypeRef>
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="CompositeSource">
    <xs:annotation>
      <xs:documentation>An information source composed of other information sources.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:InformationSource">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="1" name="hasSources" nillable="true" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:InformationSource</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ElementPartCollection">
    <xs:annotation>
      <xs:documentation>Defines a collection of NetElements that can aggregate into a higher level NetElement class. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:BaseObject"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Elevation">
    <xs:annotation>
      <xs:documentation>Elevation over a given reference surface defined by the associated positioning system, (e.g. EPSG 7699)</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:GeometricCoordinate">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="1" name="value" nillable="true" type="xs:double">
            <xs:annotation>
              <xs:documentation>The elevation value in units defined by the positioning system.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="NonLinearElement">
    <xs:annotation>
      <xs:documentation>A topological element that isn't (curvi-)linear, i.e. area or point.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:PositioningNetElement"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Instant">
    <xs:annotation>
      <xs:documentation>A temporal entity with zero extent or duration.
</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:TemporalEntity">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="1" name="temporalPosition" nillable="true" type="rsmCommon:TemporalPosition">
            <xs:annotation>
              <xs:documentation>One time value per reference system.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="BaseObject">
    <xs:annotation>
      <xs:documentation>RSM top-level class. 
</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="id" type="xs:string">
        <xs:annotation>
          <xs:documentation>The XSD generator can be hard coded so that the uuid attribute is restricted to the pattern (urn:uuid:)?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}|\{[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\}</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="tElementWithIDref">
    <xs:attribute name="ref" type="xs:string" use="required">
      <xs:annotation>
        <xs:documentation>The XSD generator can be hard coded so that the ref attribute is restricted to the pattern (urn:uuid:)?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}|\{[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\}</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType abstract="true" name="tID">
    <xs:annotation>
      <xs:documentation>Unique identifier.</xs:documentation>
    </xs:annotation>
  </xs:complexType>
  <xs:simpleType name="DescriptionLevel">
    <xs:annotation>
      <xs:documentation>A closed set of description levels.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="Macro">
        <xs:annotation>
          <xs:documentation>To describe the network at regional, national or international level. The non-linear elements are boundaries and major operational points (OPs); the linear elements are sections of lines connecting those points.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Meso">
        <xs:annotation>
          <xs:documentation>To describe the tracks between the operational points (OPs, e.g. stations, yards, junctions, boundaries) of the network.
The non-linear elements are the OPs, and the linear elements are the tracks connecting OPs.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Micro">
        <xs:annotation>
          <xs:documentation>Micro level (for railways) is associated with tracks. It is the level where vehicle paths are unambiguous.
At micro level, the smallest details aggregate into a single item. E.g. individual point components and point blades and tips coalesce into a single turnout. </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Nano">
        <xs:annotation>
          <xs:documentation>The nano level (for railway) is the level where track geometry and, in particular, curvilinear abscissas would be in agreement with on-board odometry. It is used for detailing crossing geometry, for instance.
The nano level could be described as a properly attributed surveyor's map, including topological properties of the rail network in the finest possible granularity. 
Use cases for the Nano level would include interlocking and asset management.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="Polygon">
    <xs:annotation>
      <xs:documentation>A closed polyline without any intersections. The first and last coordinate define the "closing" segment.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:PolyLine"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="Usage">
    <xs:annotation>
      <xs:documentation>States whether the relation connecting two NetElements is positioned at the start or end.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="start">
        <xs:annotation>
          <xs:documentation>The relation uses the start of the net element.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="end">
        <xs:annotation>
          <xs:documentation>The relation uses the end of the net element.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="LateralInclination">
    <xs:annotation>
      <xs:documentation>Lateral inclination of an alignment curve. Applies to road, i.e. for describing cross section, and to railway, i.e. cant. </xs:documentation>
    </xs:annotation>
  </xs:complexType>
  <xs:complexType name="HorizontalAlignment">
    <xs:annotation>
      <xs:documentation>Projection of the alignment curve on the horizontal plane.
The horizontal alignment delivers the metric for the linear reference system used to position the vertical alignment segments and the cant segments.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element maxOccurs="unbounded" minOccurs="1" name="isStructuredIn" nillable="true" type="rsmCommon:tElementWithIDref">
        <xs:annotation>
          <xs:documentation>The horizontal alignment is an ordered set of horizontal segments.
</xs:documentation>
          <xs:appinfo>
            <ObjectTypeRef>rsmCommon:HorizontalAlignmentSegment</ObjectTypeRef>
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="GridReferenceSystem">
    <xs:annotation>
      <xs:documentation>A reference system used to define Cartesian coordinates, (Northing/Easting) based on a map projection given by the EPSG code.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:GeographicCoordinateSystem"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="DiscretisedPoint">
    <xs:annotation>
      <xs:documentation>A geometric point that is a sample of a discretised point set. The class can inform about the sampling process that produced this point. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="hasSpotLocation" nillable="true" type="rsmCommon:SpotLocation">
        <xs:annotation>
          <xs:documentation>Allows to document the location in one or more reference system(s).
</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType abstract="true" name="ElementarySource">
    <xs:annotation>
      <xs:documentation>Generalisation of w3c sosa:observation.
Maintenance processes require that observed quantities (de:Istwert) could be compared with nominal or specified values (de:Sollwert), or with predicted quantities.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:InformationSource">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="1" name="featureOfInterest" nillable="true" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>The feature that is being observed and/or specified.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:BaseObject</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element name="observedProperty" nillable="true" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>Facet or attribute of an object referenced by a name.
</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:ObservableProperty</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="validIn" type="rsmCommon:ValidityPeriod"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="OrderedCollection">
    <xs:annotation>
      <xs:documentation>A list, i.e. an ordered set of NetElements that are part of the higher level.
The sorting criteria aren't defined but may be established by specialising the class. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:ElementPartCollection">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="1" name="elementParts" nillable="true" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>Ordered list of references to Net Elements.
</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:NetElement</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="sequence" type="xs:int">
            <xs:annotation>
              <xs:documentation>Sequence number of the list, allows creating list-of-lists.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="Interval">
    <xs:annotation>
      <xs:documentation>A temporal entity with an extent or duration</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:TemporalEntity"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="SegmentCantLine">
    <xs:annotation>
      <xs:documentation>Geometric primitive for segment with constant cant.
The initial and final cant have equal values.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:AlignmentCantSegment"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="EmptyPeriod">
    <xs:annotation>
      <xs:documentation>Empty interval shall not be confused with zero-length interval.
The empty interval has an empty intersection with any other interval. It is used to explicitly tell "never".</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:ValidityPeriod"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Gradient">
    <xs:annotation>
      <xs:documentation>Quantity of type gradient, slope, ramp, inclination expressed as the tangent of rise/fall over distance. 
Uphill is positive, downhill is negative.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:Dimensionless"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="AssociatedNetElement">
    <xs:annotation>
      <xs:documentation>Associates a location to an element of the topology. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element maxOccurs="1" minOccurs="0" name="appliesInDirection" type="rsmCommon:ApplicationDirection">
        <xs:annotation>
          <xs:documentation>Indicates the direction in which the function of the object along this linear element applies. Not given when irrelevant or without meaning.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="2" minOccurs="1" name="bounds" nillable="true" type="rsmCommon:tElementWithIDref">
        <xs:annotation>
          <xs:documentation>The bound(s) of the location on the associated net element.
A spot location has one bound on each associated linear net element. A linear or area location has two bounds.</xs:documentation>
          <xs:appinfo>
            <ObjectTypeRef>rsmCommon:IntrinsicCoordinate</ObjectTypeRef>
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element name="isLocatedToSide" nillable="true" type="rsmCommon:LateralSide">
        <xs:annotation>
          <xs:documentation>Informs where the linear or spot location is situated with respect to the associated LinearElement.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="netElement" nillable="true" type="rsmCommon:tElementWithIDref">
        <xs:annotation>
          <xs:documentation>The net element that carries the location.</xs:documentation>
          <xs:appinfo>
            <ObjectTypeRef>rsmCommon:PositioningNetElement</ObjectTypeRef>
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Network">
    <xs:annotation>
      <xs:documentation>An instance of &lt;i&gt;Network &lt;/i&gt;can be considered as a set of description levels (&lt;i&gt;NetworkLevel&lt;/i&gt;) and a set of &lt;i&gt;NetworkResource &lt;/i&gt;instances.

A &lt;i&gt;Network&lt;/i&gt; is described in at least one &lt;i&gt;NetworkLevel&lt;/i&gt;. A &lt;i&gt;Network&lt;/i&gt; may be described in more than one &lt;i&gt;NetworkLevel&lt;/i&gt;, typically for different levels of detail.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:NamedResource">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="1" name="levels" nillable="true" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:NetworkLevel</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="networkResources" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>Reference to the resources that constitute the network.
Resources can be shared by different networks.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:NetworkResource</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="GeographicCoordinateSystem">
    <xs:annotation>
      <xs:documentation>Defines geographic or geodetic reference system used to position instances of NetElement or NetEntity. About epsgCode, see e.g. epsg.io.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:PositioningSystem">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="1" name="epsgCode" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:documentation>Name or code of the CRS. Use EPSG code when available (see https://epsg.org/home.html).
e.g. WGS-84 for GPS coordinates or national CRS such as 5707 for Lambert-Nord (France), 28992 for RD (Netherlands).
Informs about the units in which the coordinates are expressed, usually kilometres or metres.
</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="Navigability">
    <xs:annotation>
      <xs:documentation>The possible values for Navigability.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="Both">
        <xs:annotation>
          <xs:documentation>Navigation between elements A and B is possible in both directions. Generally applies to railway networks.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="AB">
        <xs:annotation>
          <xs:documentation>Navigation is possible only from NetElement A to NetElement B.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="BA">
        <xs:annotation>
          <xs:documentation>Navigation is possible only from NetElement B to NetElement A.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="None">
        <xs:annotation>
          <xs:documentation>No navigability (see design note).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="IntrinsicCoordinate">
    <xs:annotation>
      <xs:documentation>Intrinsic coordinate reflects the &lt;u&gt;order &lt;/u&gt;of a feature along the linear element in the range [0,1].

Values 0 and 1 denote the extremities of a Linear Element. Intermediate values denote ordered intermediate locations along the topological element. Each location along the element can be associated with any number of coordinates expressed in a suitable positioning system.
Nonlinear Elements can only have a Value of 0. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:BaseObject">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="coordinates" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>Reference to coordinate(s) in one or more positioning system. No coordinates need to be associated in situations where only the order matters (e.g. schematic descriptions).</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:PositioningSystemCoordinate</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="1" name="value" nillable="true" type="xs:double">
            <xs:annotation>
              <xs:documentation>Value in the range [0,1]</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="NetworkLevel">
    <xs:annotation>
      <xs:documentation>Depicts a specific description level and defines a consistent view of a network with a certain granularity. An instance of this class therefore includes all resources that are required to define the corresponding level.
The concept of description level is central to the goal of computational efficiency.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:BaseObject">
        <xs:sequence>
          <xs:element name="hasDescriptionLevel" nillable="true" type="rsmCommon:DescriptionLevel"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="networkResources" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:NetworkResource</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="SegmentCantTransition">
    <xs:annotation>
      <xs:documentation>Geometric primitive for curve with gradually changing cant.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:AlignmentCantSegment">
        <xs:sequence>
          <xs:element name="transitionShape" nillable="true" type="rsmCommon:TransitionShape"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ElementLength">
    <xs:annotation>
      <xs:documentation>Length of the linear element, intended to support and simplify algorithms that use length and distance calculations. 
Note that the length typically is the distance along the 3D-alignment. Caution; this indicates that this length can be derived from the associated geometry. 
The user should clarify how this quantity was established and associate it with the observation circumstances; see this package for &lt;a href="$package://{B2A724A9-ABD7-42d7-94E9-AFB9BDC703D4}"&gt;&lt;font color="#0000ff"&gt;&lt;u&gt;observation and measures&lt;/u&gt;&lt;/font&gt;&lt;/a&gt;.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:ObservableProperty"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ObservableProperty">
    <xs:annotation>
      <xs:documentation>An observable property as per &lt;a href="$inet://https://www.w3.org/TR/vocab-ssn/#SOSAObservableProperty"&gt;&lt;font color="#0000ff"&gt;&lt;u&gt;w3c sosa ontology&lt;/u&gt;&lt;/font&gt;&lt;/a&gt;. This class embodies all properties that need to be referenced by another class in this model (or a model using the present model).</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:BaseProperty">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="quantiy" type="rsmCommon:Quantity">
            <xs:annotation>
              <xs:documentation>The observed quantity of the property. Multiplicity&amp;gt;1 applies to vector properties (hence "ordered"), or for expressing quantities in different units.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="HorizontalSegmentArc">
    <xs:annotation>
      <xs:documentation>Geometric primitive for an arc of circle.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:HorizontalAlignmentSegment">
        <xs:sequence>
          <xs:element name="radius" nillable="true" type="rsmCommon:Length">
            <xs:annotation>
              <xs:documentation>Radius of the arc.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="PolyLine">
    <xs:annotation>
      <xs:documentation>Set of consecutive straight segments (no branches) defined by successive coordinates. Can be specialized to e.g. prisms, for instance to define 3D "areas".</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element maxOccurs="unbounded" minOccurs="2" name="coordinates" nillable="true" type="rsmCommon:tElementWithIDref">
        <xs:annotation>
          <xs:documentation>Polylines are defined by reference to a sequence of at least two coordinates. There is no explicit constraint on coordinates being distinct.</xs:documentation>
          <xs:appinfo>
            <ObjectTypeRef>rsmCommon:PositioningSystemCoordinate</ObjectTypeRef>
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="1" minOccurs="0" name="positioningSystem" type="rsmCommon:tElementWithIDref">
        <xs:annotation>
          <xs:documentation>Polyline coordinates are expressed in &lt;u&gt;one &lt;/u&gt;Positioning System. Define more polylines if more positioning systems become relevant. May be left empty if polyline coordinates convey sufficient information about the positioning system.</xs:documentation>
          <xs:appinfo>
            <ObjectTypeRef>rsmCommon:PositioningSystem</ObjectTypeRef>
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Sensor">
    <xs:annotation>
      <xs:documentation>A device that measures a physical feature of an object resulting in one or more observations.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:NamedResource">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="pointsAt" type="rsmCommon:BaseLocation">
            <xs:annotation>
              <xs:documentation>Location that the sensor is observing. If the sensor is not a remote one, this is the location of the sensor itself.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Requirement">
    <xs:annotation>
      <xs:documentation>Atomic component in a specification. Holds specified (sometimes "nominal") value(s)
(German "Sollwert")
One defined value can be a vector (which implies subclassing of Quantity), a scalar, etc.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:ElementarySource">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="setsQuantity" type="rsmCommon:Quantity">
            <xs:annotation>
              <xs:documentation>The specified values of the observed properties.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="BaseLocation">
    <xs:annotation>
      <xs:documentation>Provides basic information about location in the network topology information. "Location" is an abstraction for "some place in space that is &lt;b&gt;used &lt;/b&gt;by some NetEntity". The location per se offers no information about position on earth. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:BaseObject"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Angle">
    <xs:annotation>
      <xs:documentation>Quantity of type planar angle.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:NumericQuantity"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="GeographicCoordinate">
    <xs:annotation>
      <xs:documentation>Latitude, longitude and height (synonym: elevation) (ISO 19111). The datum and units are defined by the associated positioning system.
Note: Altitude is a special kind of height (ISO 6709:2008), and not used here.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:GeometricCoordinate">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="0" name="elevation" type="xs:double"/>
          <xs:element maxOccurs="1" minOccurs="1" name="latitude" nillable="true" type="xs:double"/>
          <xs:element maxOccurs="1" minOccurs="1" name="longitude" nillable="true" type="xs:double"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="AlignmentCurve">
    <xs:annotation>
      <xs:documentation>Parametric curves representing the geometric alignment shapes.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:BaseObject">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="0" name="hasHorizontalAlignment" type="rsmCommon:HorizontalAlignment"/>
          <xs:element maxOccurs="1" minOccurs="0" name="hasLateralInclination" type="rsmCommon:LateralInclination"/>
          <xs:element maxOccurs="1" minOccurs="0" name="hasVerticalAlignment" type="rsmCommon:VerticalAlignment">
            <xs:annotation>
              <xs:documentation>This information may be missing at early project stages (hence the 0..1 multiplicity).</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ValidityPeriod">
    <xs:annotation>
      <xs:documentation>Defines the time frame in which a functional object is available in the field (from first placing into service to final de-commissioning).
Also used for setting the time frame in which a regulation or reference system is in force.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:SimpleTimeInterval"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="CompositeTimeInterval">
    <xs:annotation>
      <xs:documentation>Composite intervals contain at least one interval, to which further intervals can be added or subtracted (in a set-theory sense).</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:Interval">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="1" name="intervalComponents" nillable="true" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:Interval</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Cant">
    <xs:annotation>
      <xs:documentation>Superelevation of the track at a given spot location. Can be given in terms of height difference between the rails and/or angle.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:BaseObject">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="0" name="inclination" type="rsmCommon:Angle">
            <xs:annotation>
              <xs:documentation>The cant angle with respect to horizontal.
Positive when the rotation is anti-clockwise with respect to the orientation of the linear element that carries the segment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="isLocatedAt" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>A spot location where the cant applies.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:SpotLocation</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="superelevation" type="rsmCommon:Length">
            <xs:annotation>
              <xs:documentation>The height difference between the outer and inner rails in or in approach to a curve.
Positive when the rotation is anti-clockwise (seen from above) with respect to the orientation of the linear element that carries the segment. </xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Anywhere">
    <xs:annotation>
      <xs:documentation>The property extends over the whole network, at any location that is (or may be) associated with the network (via AssociatedNetElement).</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:ApplicationRange"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="LegacyID">
    <xs:complexContent>
      <xs:extension base="rsmCommon:tID">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="1" name="id" nillable="true" type="xs:string"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="UUID">
    <xs:complexContent>
      <xs:extension base="rsmCommon:tID"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Length">
    <xs:annotation>
      <xs:documentation>Quantity of type length, distance, height, width, etc.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:NumericQuantity"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="VerticalAlignmentSegment">
    <xs:annotation>
      <xs:documentation>A geometric primitive for constructing a vertical alignment.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:BaseObject">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="0" name="finalElevation" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>The elevation at the end of the segment.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:ElevationAndInclination</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="hasLinearLocation" type="rsmCommon:LinearLocation">
            <xs:annotation>
              <xs:documentation>Mapping to a linear location on the topology. The linear location can be associated with position in one or more coordinate systems, including elevation.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="initialElevation" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>The elevation at the start of the segment.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:ElevationAndInclination</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="length" type="rsmCommon:Length">
            <xs:annotation>
              <xs:documentation>The length of the segment when projected on the vertical surface. The length is optional because it may be irrelevant or may be derived from position information associated with the linear location.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="MeasurementMethod">
    <xs:complexContent>
      <xs:extension base="rsmCommon:Circumstance"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ScaleValueDefinition">
    <xs:annotation>
      <xs:documentation>A defined numerical value(s) and textual definition(s) of a measurement scale.
See this &lt;a href="$inet:// http://www.omgwiki.org/OMGSysML/lib/exe/fetch.php?media=sysml-qudv:annex_c.5_2009-08-26.pdf"&gt;&lt;font color="#0000ff"&gt;&lt;u&gt;OMG document&lt;/u&gt;&lt;/font&gt;&lt;/a&gt;, figure C8.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element maxOccurs="1" minOccurs="1" name="description" nillable="true" type="xs:string">
        <xs:annotation>
          <xs:documentation>Specifies the textual definition for the value.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="1" minOccurs="1" name="value" nillable="true" type="xs:double">
        <xs:annotation>
          <xs:documentation>Specifies the numerical value.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="Orientation">
    <xs:annotation>
      <xs:documentation>Orientation with respect to the topological element.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="normal">
        <xs:annotation>
          <xs:documentation>Orientation is normal.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="reverse">
        <xs:annotation>
          <xs:documentation>Orientation is reverse.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="AnchorPoint">
    <xs:annotation>
      <xs:documentation>ISO19148:2012 : LR_AlongReferent.

attributes (or references to) measure, and measure from previous (or: to next), are not needed, because anchor points, being spot locations, are expected to be provided with coordinates.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:NamedResource">
        <xs:sequence>
          <xs:element name="appliesTo" nillable="true" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>The anchor point applies to this linear positioning system.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:LinearPositioningSystem</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="isLocatedAt" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>Informs the spot location of the anchor point.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:SpotLocation</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element name="measureFromPrevious" nillable="true" type="rsmCommon:Length">
            <xs:annotation>
              <xs:documentation>The distance measure is given with respect to this anchor point. If absent, the measure is counting from the origin of the LRS.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="refersToPrevious" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>Reference to the previous anchor point on the linear positioning system. Anchors are ordered in the direction of the net element that carries them, or according to the sequence of net elements if there is more than one.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:AnchorPoint</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="TemporalEntity">
    <xs:annotation>
      <xs:documentation>A temporal interval or instant.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:BaseObject"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="LocationsSet">
    <xs:annotation>
      <xs:documentation>The property applies to a set of location(s).</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:ApplicationRange">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="locations" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:BaseLocation</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="Context">
    <xs:complexContent>
      <xs:extension base="rsmCommon:Circumstance"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="DateTimeDescription">
    <xs:annotation>
      <xs:documentation>From W3C: Description of date and time structured with separate values for the various elements of a calendar-clock system. The temporal reference system is fixed to Gregorian Calendar.
The reference to TRS may be left out if obvious from the context.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:GeneralDateTimeDescription"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="VerticalSegmentTransition">
    <xs:annotation>
      <xs:documentation>Geometric primitive for vertical transition curves.
</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:VerticalAlignmentSegment">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="0" name="finalRadius" type="rsmCommon:Length">
            <xs:annotation>
              <xs:documentation>The radius of the circle tangential to the end of the segment.
Start and end with respect to the orientation of the linear element of the topology that carries the segment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="initialRadius" type="rsmCommon:Length">
            <xs:annotation>
              <xs:documentation>The radius of the circle tangential to the beginning of the segment.
Start and end with respect to the orientation of the linear element of the topology that carries the segment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="type" type="xs:string"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="Dimensionless">
    <xs:annotation>
      <xs:documentation>Any scalar value with no dimension. Range can be 0 to 1 in case of percentages (not: 0 to 100).</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:NumericQuantity"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="SimpleTimeInterval">
    <xs:annotation>
      <xs:documentation>Continuous time interval between start and end.
Start and end instants can be included or excluded.
</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:Interval">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="end" type="rsmCommon:TemporalPosition">
            <xs:annotation>
              <xs:documentation>At most one end time value per reference system.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="endIncluded" type="xs:boolean"/>
          <xs:element maxOccurs="1" minOccurs="0" name="hasDuration" type="rsmCommon:Duration">
            <xs:annotation>
              <xs:documentation>Allows defining a "floating" time interval, i.e. not anchored to a start or end moment in time.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="start" type="rsmCommon:TemporalPosition">
            <xs:annotation>
              <xs:documentation>At most one start time value per reference system.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="startIncluded" type="xs:boolean"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="InformationSource">
    <xs:complexContent>
      <xs:extension base="rsmCommon:NamedResource"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="MeasurementEquipment">
    <xs:complexContent>
      <xs:extension base="rsmCommon:Circumstance"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="ApplicationDirection">
    <xs:annotation>
      <xs:documentation>The application direction with respect to the direction of the associated linear element.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="undefined">
        <xs:annotation>
          <xs:documentation>The application direction is (yet) unknown. </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="normal">
        <xs:annotation>
          <xs:documentation>The located object is valid in the direction of the LinearElement.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="reverse">
        <xs:annotation>
          <xs:documentation>The located object is valid in the reverse direction of the LinearElement.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="both">
        <xs:annotation>
          <xs:documentation>The located object is valid in both directions.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="HorizontalSegmentTransition">
    <xs:annotation>
      <xs:documentation>Geometric primitive for a transition curves. May be specialised to represent various types of transition curves and their associated parameters. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:HorizontalAlignmentSegment">
        <xs:sequence>
          <xs:element name="finalRadius" nillable="true" type="rsmCommon:Length">
            <xs:annotation>
              <xs:documentation>Radius at the end of the segment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="initialRadius" nillable="true" type="rsmCommon:Length">
            <xs:annotation>
              <xs:documentation>The radius of the circle tangential to the beginning of the segment.
Start and end with respect to the orientation of the linear element of the topology that carries the segment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="type" type="xs:string">
            <xs:annotation>
              <xs:documentation>Type of transition curve.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="Quantity">
    <xs:annotation>
      <xs:documentation>The value of an observable, i.e. measurable, property of a NetEntity or other physical object.
Type "double" is given because it is most generally applicable, and UML2.5 does not provide abstract supertypes.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element maxOccurs="1" minOccurs="0" name="quantityKind" type="rsmCommon:tElementWithIDref">
        <xs:annotation>
          <xs:documentation>Given if not implied by the quantity specialisation.</xs:documentation>
          <xs:appinfo>
            <ObjectTypeRef>rsmCommon:QuantityKind</ObjectTypeRef>
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="1" minOccurs="0" name="unit" type="rsmCommon:tElementWithIDref">
        <xs:annotation>
          <xs:appinfo>
            <ObjectTypeRef>rsmCommon:Unit</ObjectTypeRef>
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Scale">
    <xs:annotation>
      <xs:documentation>Scale of measurement of a quantity, e.g. Celsius, Kelvin, Beaufort, Richter.
A measurement scale is an ordered set of quantity values of quantities of a given kind of quantity used in ranking, according to magnitude, quantities of that kind.
A scale may need a unit (e.g. degree for Celsius).</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element maxOccurs="1" minOccurs="0" name="unit" type="rsmCommon:tElementWithIDref">
        <xs:annotation>
          <xs:documentation>The unit in which the value of each valueDefinition is expressed</xs:documentation>
          <xs:appinfo>
            <ObjectTypeRef>rsmCommon:Unit</ObjectTypeRef>
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="unbounded" minOccurs="0" name="valueDefinition" type="rsmCommon:ScaleValueDefinition">
        <xs:annotation>
          <xs:documentation>Ordered set of ScaleValueDefinition that specifies the defined numerical value(s) and textual definition(s) for the measurement scale</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType abstract="true" name="TemporalPosition">
    <xs:annotation>
      <xs:documentation>A position on a time-line</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:Quantity">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="0" name="hasTRS" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>The reference to a time reference system replaces the reference to a unit.
May be left out if the TRS is obvious and /or unambiguous from the context, e.g.  "Document released 2021-06-28"</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:TimeReferenceSystem</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="RemoteInstant">
    <xs:annotation>
      <xs:documentation>To express "as far as memory goes back" or "until an undefined date". This is the Null Object Pattern in disguise. It is used to explicitly allow open-ended intervals without using ambiguous optional values ("forever" is neither synonymous with "until an undetermined date" nor "until an undocumented date"). Subclasses can be created to express even nuances.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:TemporalEntity"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="NetElement">
    <xs:annotation>
      <xs:documentation>Base class for defining nodes in the connectivity graph representing the topological network.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:NetworkResource"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="TransitionTypes">
    <xs:annotation>
      <xs:documentation>Initial list of cant transition types.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="linear_slope">
        <xs:annotation>
          <xs:documentation>Monotonic increase or decrease of cant.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="bloss_slope">
        <xs:annotation>
          <xs:documentation/>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="s_slope">
        <xs:annotation>
          <xs:documentation>FR : doucines; DE: S-Rampe</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="linear_scissors">
        <xs:annotation>
          <xs:documentation>DE: Schere (lineare-)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="bloss_scissors">
        <xs:annotation>
          <xs:documentation/>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="s_scissors">
        <xs:annotation>
          <xs:documentation/>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Not yet known, to be determined.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="undefined">
        <xs:annotation>
          <xs:documentation>Not defined, irrelevant.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>The type of cant shape is defined by the name-attribute or by a subclass.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType abstract="true" name="PhenomenonTime">
    <xs:complexContent>
      <xs:extension base="rsmCommon:Circumstance"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="RailwayAlignmentCant">
    <xs:annotation>
      <xs:documentation>Cant, or lateral inclination, of a railway track.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:LateralInclination">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="1" name="isStructuredIn" nillable="true" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>The railway cant alignment is composed of one or more ordered geometric segments.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:AlignmentCantSegment</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="BaseProperty">
    <xs:annotation>
      <xs:documentation>Abstract property class, needed to implement the composite pattern.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:NamedResource">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="appliesTo" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>The property applies to the referenced object.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:BaseObject</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="definition" type="xs:string">
            <xs:annotation>
              <xs:documentation>Definition of the property in plain text.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="reference" type="xs:string">
            <xs:annotation>
              <xs:documentation>Reference to a (normative) document to support the unambiguous definition of the property.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="AlignmentCantSegment">
    <xs:annotation>
      <xs:documentation>A geometric primitive for quantifying and locating cant segments.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:BaseObject">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="0" name="hasFinalCant" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>Cant at the end of the segment. 
Begin and end are with respect to the linear topological element that carries the segment.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:Cant</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="hasInitialCant" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>Cant at the beginning of the segment. Begin and end are with respect to the linear topological element that carries the segment.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:Cant</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element name="hasLinearLocation" nillable="true" type="rsmCommon:LinearLocation">
            <xs:annotation>
              <xs:documentation>Mapping to a linear location on the topology. </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="4" minOccurs="0" name="isSmoothed" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>Informs that a smoothing was applied between this segment and the segment(s) that are referred to.
For compatibility with IFC Rail, as it redunds the other, proposed transition definition (class TransitionShape)</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:AlignmentCantSegment</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="PropertySet">
    <xs:annotation>
      <xs:documentation>Group of properties. Intended grouping is by "mechanical properties", "actual state", or similar, rather than sampled values of the same properties.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:BaseProperty">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="1" name="contains" nillable="true" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>A property set refers to an ordered set of base properties.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:BaseProperty</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="NetProperty">
    <xs:annotation>
      <xs:documentation>Property observed on a network (or a subset thereof or a set of), according to a definite source of information and yielding a definite value over a definite location.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:BaseObject">
        <xs:sequence>
          <xs:element name="appliesTo" nillable="true" type="rsmCommon:ApplicationRange"/>
          <xs:element maxOccurs="unbounded" minOccurs="1" name="considers" nillable="true" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:Network</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element name="hasSource" nillable="true" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:ElementarySource</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="hasValues" type="rsmCommon:Quantity"/>
          <xs:element name="observes" nillable="true" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:BaseProperty</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element name="quantifies" nillable="true" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:ObservableProperty</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Temperature">
    <xs:annotation>
      <xs:documentation>A resource, tangible or intangible, that has a name.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:NumericQuantity"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="NumericQuantity">
    <xs:annotation>
      <xs:documentation>Any quantity that can be expressed with a number (cardinal or ordinal)</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:Quantity">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="1" name="value" nillable="true" type="xs:double"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Prediction">
    <xs:annotation>
      <xs:documentation>Predictions class, to hold predicted values that can be compared with specified and/or observed values.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:ElementarySource">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="hasForecasts" type="rsmCommon:Quantity"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="LeftRight">
    <xs:annotation>
      <xs:documentation>Geographic direction, viewed from toe to heel.

Used for relations underpinning turnouts.

Not normative - this enumeration is provided for convenience, esp. in the context of schematic representation.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="left">
        <xs:annotation>
          <xs:documentation/>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="right">
        <xs:annotation>
          <xs:documentation/>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType abstract="true" name="Circumstance">
    <xs:annotation>
      <xs:documentation>Abstract class to store meta-information items about the observation process. See w3c sosa/ssn concepts in relation with observations. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:NamedResource"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="UnorderedCollection">
    <xs:annotation>
      <xs:documentation>An unordered collection has no specific begin and end.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:ElementPartCollection">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="1" name="elementParts" nillable="true" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>Unordered set of references to NetElements.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:NetElement</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="LinearLocation">
    <xs:annotation>
      <xs:documentation>Defines location information as a linear shape (no branches) with a start- and end point.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:BaseLocation">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="associatedNetElements" type="rsmCommon:AssociatedNetElement">
            <xs:annotation>
              <xs:documentation>A linear location is topologically carried by a &lt;b&gt;sequence &lt;/b&gt;of associated net elements.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="polyLines" type="rsmCommon:PolyLine">
            <xs:annotation>
              <xs:documentation>Multiplicity &amp;gt; 1 for the case several positioning systems are used.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="DiscretisedPointSet">
    <xs:annotation>
      <xs:documentation>A set of points that can be spot-located.
Typically the product of a position sampling process such as a land survey, photogrammetry, a measurement campaign with satellite receivers or a mix of these.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:BaseObject">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="1" name="isDescribedWithPoints" nillable="true" type="rsmCommon:DiscretisedPoint"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="isSubsetOf" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>Allows defining a subset of discretised points.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:DiscretisedPointSet</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="VerticalSegmentArc">
    <xs:annotation>
      <xs:documentation>Geometric primitive for a vertical arc of circle.
</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:VerticalAlignmentSegment">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="0" name="radius" type="rsmCommon:Length">
            <xs:annotation>
              <xs:documentation>Radius of the arc.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="SpotLocation">
    <xs:annotation>
      <xs:documentation>Defines spot location information for a LocatedNetEntity instance.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:BaseLocation">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="associatedNetElements" type="rsmCommon:AssociatedNetElement">
            <xs:annotation>
              <xs:documentation>Associates the location with net element(s).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="coordinates" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>The spot location is positioned in a given coordinate reference system that is typically independent of the network topology.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:PositioningSystemCoordinate</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="CompositionNetElement">
    <xs:annotation>
      <xs:documentation>Aggregation of elements (nodes of the topological network) into bigger nodes. This allows defining network level(s) to zoom in and out, showing or hiding levels of detail.
</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:NetElement">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="elementCollections" type="rsmCommon:ElementPartCollection">
            <xs:annotation>
              <xs:documentation>A higher level net element is composed of a collection of lower level net elements. </xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="HorizontalAlignmentSegment">
    <xs:annotation>
      <xs:documentation>A geometric primitive for constructing a horizontal alignment.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:BaseObject">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="0" name="endAzimuth" type="rsmCommon:Angle">
            <xs:annotation>
              <xs:documentation>Azimuth at the end of the segment. Not normally needed for straight line segments.
</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="hasLinearLocation" nillable="true" type="rsmCommon:LinearLocation">
            <xs:annotation>
              <xs:documentation>Mapping to a linear location on the topology. The linear location can be associated with position in one or more coordinate systems.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="initialAzimuth" type="rsmCommon:Angle">
            <xs:annotation>
              <xs:documentation>Initial azimuth of the segment, or bearing, the clockwise angle departing from geographic north.
The azimuth is optional because it is either irrelevant or may derive from position information associated with the segment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="length" type="rsmCommon:Length">
            <xs:annotation>
              <xs:documentation>The length of the segment when projected on the horizontal plane. The length is optional because it may be irrelevant or may be derived from position information associated with the linear location. </xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="QuantityKind">
    <xs:annotation>
      <xs:documentation>Aspect common to mutually comparable quantities.
A quantity of a given kind contains a numerical value expressed in a particular measurement unit.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:NamedResource">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="0" name="definitionURI" type="xs:string">
            <xs:annotation>
              <xs:documentation>An URI pointing to a standard definition of the quantity kind.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="scale" type="rsmCommon:Scale"/>
          <xs:element maxOccurs="1" minOccurs="0" name="symbol" type="xs:string">
            <xs:annotation>
              <xs:documentation>The symbol used to describe the kind of quantity, e.g. l for length.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="LinearPositioningSystem">
    <xs:annotation>
      <xs:documentation>A referencing system for locations relative to a one-dimensional object (reference line) as measurement along (and optionally offset from) that object. For reference, see EN 19148:2021.

A linear positioning system combines a line of reference (here: a collection of PositioningNetElements) with a single number (linear abscissa, i.e. an instance of class LinearCoordinate) allowing positioning within a railway network, at the chosen level (MACRO, MICRO...).

Often called chainage (when yielding the actual "distance along"), or mileage system (when reflecting a conventional kilometric post or mile post system).

The start- and end-measures (optional) provide the valid range of linear coordinates within the chosen linear positioning system. The difference between two coordinates is not necessarily the "true distance along" because of possible deviations (jumps or systematic errors), that are taken care of by anchor points and linear referencing methods. 
The units of linear abscissa are the same as the start and end-measure. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:PositioningSystem">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="0" name="endMeasure" type="rsmCommon:Length">
            <xs:annotation>
              <xs:documentation>The highest value of the abscissa in this system. </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="hasLinearReferencingMethod" nillable="true" type="rsmCommon:LrMethod"/>
          <xs:element name="isLocatedAt" nillable="true" type="rsmCommon:LinearLocation">
            <xs:annotation>
              <xs:documentation>ISO19148:2021, 4.9: LR_LinearElement</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="startMeasure" type="rsmCommon:Length">
            <xs:annotation>
              <xs:documentation>The lowest value of the abscissa in the positioning system.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TimePosition">
    <xs:annotation>
      <xs:documentation>From W3C: A temporal position described using either a (nominal) value from an ordinal reference system, or a (numeric) value in a temporal coordinate system

Not from W3C: example: on-board clock.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:TemporalPosition"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TransitionShape">
    <xs:annotation>
      <xs:documentation>Cant transition rules that apply to the segment. 
Users may fill the inherited name, long name attributes and/or subclass and add calculation methods.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:NamedResource">
        <xs:sequence>
          <xs:element name="isOfTransitionType" nillable="true" type="rsmCommon:TransitionTypes"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="GeneralDateTimeDescription">
    <xs:annotation>
      <xs:documentation>From W3C: Description of date and time structured with separate values for the various elements of a calendar-clock system</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:TemporalPosition">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="1" name="value" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:documentation>The user is highly recommended to use a standard notation such as XML Schema xs:date, xs:dateTime or xs:dateTimeStamp</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="PositionedRelation">
    <xs:annotation>
      <xs:documentation>Defines an oriented relation between two PositioningNetElements.
</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:Relation">
        <xs:sequence>
          <xs:element name="elementA" nillable="true" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>Connects to PositioningNetElement A.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:PositioningNetElement</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element name="elementB" nillable="true" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>Connects to PositioningNetElement B.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:PositioningNetElement</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="leadsTowards" type="rsmCommon:LeftRight">
            <xs:annotation>
              <xs:documentation>Viewed from the toe, the positioned relation connects a left or right branch.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="navigability" nillable="true" type="rsmCommon:Navigability">
            <xs:annotation>
              <xs:documentation>Indicates the direction of possible travel between elements A and B.
&lt;b&gt;Not intended&lt;/b&gt; to express &lt;i&gt;&lt;u&gt;operational &lt;/u&gt;&lt;/i&gt;traffic direction. This should be modelled with appropriate signalling classes.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="positionOnA" nillable="true" type="rsmCommon:Usage">
            <xs:annotation>
              <xs:documentation>The relation is with the start or end of NetElement A.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="positionOnB" nillable="true" type="rsmCommon:Usage">
            <xs:annotation>
              <xs:documentation>The relation is with the start or end of NetElement B.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Inertia">
    <xs:annotation>
      <xs:documentation>Resistance against speed change.
Includes the effect of rotating masses. Typically applies to rolling stock.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:NumericQuantity"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="PositioningSystem">
    <xs:annotation>
      <xs:documentation>A spatial reference system in which a position can be expressed in terms of coordinates.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:NamedResource">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="0" name="validityPeriod" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:ValidityPeriod</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ThreeDAlignmentCurve">
    <xs:annotation>
      <xs:documentation>Class holding the definition of a geometrical element in 3-D space, as a set of equations, possibly involving up to six coordinates (e.g. x, y, z, rho, theta, phi).</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:BaseObject">
        <xs:sequence>
          <xs:element name="hasCoordinateReferenceSystem" nillable="true" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>Pointer to the CRS in which the equations are expressed.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:GeographicCoordinateSystem</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element name="hasLinearLocation" nillable="true" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:LinearLocation</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="GeometricCoordinate">
    <xs:annotation>
      <xs:documentation>A set of coordinates in a given geometric positioning system.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:PositioningSystemCoordinate"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="UndefinedInstant">
    <xs:annotation>
      <xs:documentation>Placeholder class when time values cannot be provided</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:TemporalEntity"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="AssociatedPositioning">
    <xs:annotation>
      <xs:documentation>Topology elements are stable in time, or at least do not vary often. Position of topology elements may vary faster, e.g. depending on measures.

This class tells which positions, expressed by coordinates, are valid and during which period in time.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element maxOccurs="unbounded" minOccurs="1" name="intrinsicCoordinates" nillable="true" type="rsmCommon:IntrinsicCoordinate">
        <xs:annotation>
          <xs:documentation>associates the net element with intrinsic coordinates.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element maxOccurs="1" minOccurs="0" name="validityPeriod" type="rsmCommon:tElementWithIDref">
        <xs:annotation>
          <xs:appinfo>
            <ObjectTypeRef>rsmCommon:ValidityPeriod</ObjectTypeRef>
          </xs:appinfo>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Canvas">
    <xs:annotation>
      <xs:documentation>A 2-D or 3-D physical or virtual bounded space, such as a screen or a sheet of paper on which the positioning takes place.
The name can imply size and unit information, e.g. A3 landscape for 420 mm wide x 297 mm high.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:PositioningSystem">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="1" name="description" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:documentation>Information about the canvas that is not implied by the name. Typically describing the place of the origin and orientation of the axes.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="height" type="rsmCommon:Length">
            <xs:annotation>
              <xs:documentation>height of the canvas in a given unit, e.g. mm or pixel</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="width" type="rsmCommon:Length">
            <xs:annotation>
              <xs:documentation>Width of the canvas in a given unit (e.g. mm or pixel) if not implied in the canvas name.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="LinearElement">
    <xs:annotation>
      <xs:documentation>A one-dimensional topological (curvi-)linear element.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:PositioningNetElement"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="LinearCoordinate">
    <xs:annotation>
      <xs:documentation>A curvilinear abscissa ("distance along"), optionally with vertical and lateral offset.
The units are defined by the associated positioning system.

ISO19148:2012: LR_PositionExpression.
Please note that the concepts match: in ISO19148, LR_PositionExpression refers to exactly 1 distance expression (here: instance of Length), one linear element (here: one reference line, via the reference to positioning system), and one linear referencing method (here: referred to via the linear positioning system).</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:PositioningSystemCoordinate">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="0" name="lateralOffset" type="rsmCommon:Length">
            <xs:annotation>
              <xs:documentation>Lateral offset. The sign is always positive and the side, left or right, is given by the spot location's lateral side.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="measure" nillable="true" type="rsmCommon:Length">
            <xs:annotation>
              <xs:documentation>Distance from the anchor point.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="usesAnchorPoint" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>ISO19148:2021: used if LR method is "relative".</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:AnchorPoint</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="verticalOffset" type="rsmCommon:Length">
            <xs:annotation>
              <xs:documentation>Vertical offset. Can be positive or negative.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="RailwayDiscretisedPoint">
    <xs:annotation>
      <xs:documentation>A geometric point that is a sample of a railway alignment. 
Can bear geometric properties that cannot be represented by SpotLocation, e.g. twist or the rotation of some local coordinate system, locally measured cant values, etc.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:DiscretisedPoint"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="CartesianCoordinate">
    <xs:annotation>
      <xs:documentation>Cartesian coordinates. The x,y, z units are defined by the associated positioning system. The user may retain only elevation (z) if needed, e.g. in conjunction with linear coordinates (distance along).</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:GeometricCoordinate">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="1" name="x" nillable="true" type="xs:double">
            <xs:annotation>
              <xs:documentation>X-coordinate in associated positioning system.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="1" name="y" nillable="true" type="xs:double">
            <xs:annotation>
              <xs:documentation>Y-coordinate in associated positioning system.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="z" type="xs:double">
            <xs:annotation>
              <xs:documentation>Z-coordinate, i.e. height over datum level, in associated positioning system.
</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="PositioningSystemCoordinate">
    <xs:annotation>
      <xs:documentation>A tuple of coordinates in a given positioning system.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:ObservableProperty">
        <xs:sequence>
          <xs:element name="positioningSystem" nillable="true" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>Reference to the reference system in which the coordinate is defined.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:PositioningSystem</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TimedLocation">
    <xs:annotation>
      <xs:documentation>A location associated with a time stamp</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:SpotLocation">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="0" name="atTime" type="rsmCommon:TimePosition"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="LateralSide">
    <xs:annotation>
      <xs:documentation>The lateral side with respect to the orientation of the linear element (extremity 0 to extremity 1).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="undefined">
        <xs:annotation>
          <xs:documentation>The lateral side is not yet defined/known although the spot located object is or will be placed to the left or right of the track. Can be used at early planning stages. The actual lateral side can then be given at a later stage, e.g. as-built.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="left">
        <xs:annotation>
          <xs:documentation/>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="right">
        <xs:annotation>
          <xs:documentation/>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="centre">
        <xs:annotation>
          <xs:documentation>Centered on the linear element.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="both">
        <xs:annotation>
          <xs:documentation/>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType abstract="true" name="NetworkResource">
    <xs:annotation>
      <xs:documentation>Every object of the network is qualified as a resource.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:NamedResource">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="0" name="validityPeriod" type="rsmCommon:ValidityPeriod"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="MeasurementAuthor">
    <xs:complexContent>
      <xs:extension base="rsmCommon:Circumstance"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="AreaLocation">
    <xs:annotation>
      <xs:documentation>A topologically closed area.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:BaseLocation">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="associatedNetElements" type="rsmCommon:AssociatedNetElement">
            <xs:annotation>
              <xs:documentation>An area location is composed of a set of associated net elements.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="perimeters" type="rsmCommon:Polygon"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ElevationAndInclination">
    <xs:annotation>
      <xs:documentation>A tuple of elevation and inclination. The location is either given by the linear location or by a spot location.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:BaseObject">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="0" name="inclination" type="rsmCommon:Gradient">
            <xs:annotation>
              <xs:documentation>Inclination with respect to the horizontal plane, in the direction of the associated linear element.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="isLocatedAt" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>The spot location, including an elevation.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:SpotLocation</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="HorizontalSegmentLine">
    <xs:annotation>
      <xs:documentation>Geometric primitive for a straight linear segment.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:HorizontalAlignmentSegment"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Unit">
    <xs:annotation>
      <xs:documentation>The unit used to express a quantity.
</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:NamedResource">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="0" name="definitionURI" type="xs:string">
            <xs:annotation>
              <xs:documentation>An URI pointing to a standard definition of the unit.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="0" name="symbol" type="xs:string">
            <xs:annotation>
              <xs:documentation>The symbol used to describe the unit.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TimeReferenceSystem">
    <xs:annotation>
      <xs:documentation>A temporal reference system, such as a temporal coordinate system (with an origin, direction, and scale), a calendar-clock combination, or a (possibly hierarchical) ordinal system.
A taxonomy of temporal reference systems is provided in ISO 19108:2002 [ISO19108], including (a) calendar + clock systems; (b) temporal coordinate systems (i.e. numeric offset from an epoch); (c) temporal ordinal reference systems (i.e. ordered sequence of named intervals, not necessarily of equal duration).</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:Unit"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Nowhere">
    <xs:annotation>
      <xs:documentation>Used for specifying exclusions, such as "steel sleepers are not allowed, anywhere on the network".</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:ApplicationRange"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Observation">
    <xs:annotation>
      <xs:documentation>Act of measuring or otherwise determining the value of a property (ISO 19156 (2011)).
As per &lt;a href="$inet://https://www.w3.org/TR/vocab-ssn/#SOSAObservation"&gt;&lt;font color="#0000ff"&gt;&lt;u&gt;w3c sosa ontology&lt;/u&gt;&lt;/font&gt;&lt;/a&gt;.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:ElementarySource">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="hasCircumstances" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:Circumstance</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="hasResults" type="rsmCommon:Quantity">
            <xs:annotation>
              <xs:documentation>As per SOSA ontology, a result is a quantity that is the product of an observation.
"Quantity" could well be a vector. In RSM context, a vector is an ordered list of results. A specific class could also be envisaged.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="madeBySensor" nillable="true" type="rsmCommon:tElementWithIDref">
            <xs:annotation>
              <xs:documentation>The observation is acquired by a sensor.</xs:documentation>
              <xs:appinfo>
                <ObjectTypeRef>rsmCommon:Sensor</ObjectTypeRef>
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element maxOccurs="1" minOccurs="1" name="simpleResult" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:documentation>Raw reading of a sensor or measurement device.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="LinearElementWithLength">
    <xs:annotation>
      <xs:documentation>A linear element that is given a length. This length is used for practical computational purposes.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:LinearElement">
        <xs:sequence>
          <xs:element name="elementLength" nillable="true" type="rsmCommon:ElementLength"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Duration">
    <xs:annotation>
      <xs:documentation>Duration of a temporal extent expressed as a number scaled by a temporal unit.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:NumericQuantity"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="LrMethod">
    <xs:annotation>
      <xs:documentation>Linear Referencing Method values according to ISO 19148 definitions.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="relative">
        <xs:annotation>
          <xs:documentation>Distance along, measured from the intersections (junctions) where linear elements meet.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="absolute">
        <xs:annotation>
          <xs:documentation>Curvilinear abscissa ("distance along" linear element). Values do not necessarily start with zero.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="interpolation">
        <xs:annotation>
          <xs:documentation>Fraction (percentage) of distance along linear element.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType abstract="true" name="ApplicationRange">
    <xs:annotation>
      <xs:documentation>Informs where the Net Property applies.</xs:documentation>
    </xs:annotation>
  </xs:complexType>
  <xs:complexType name="Mass">
    <xs:annotation>
      <xs:documentation>Quantity of type mass.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:NumericQuantity"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="VerticalSegmentLine">
    <xs:annotation>
      <xs:documentation>Geometric primitive for a straight line segment representing a slope of constant elevation angle. 
</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:VerticalAlignmentSegment"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Relation">
    <xs:annotation>
      <xs:documentation>Base class for defining edges in the connectivity graph representing the topological network.
</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:NetworkResource"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="GeodeticReferenceSystem">
    <xs:annotation>
      <xs:documentation>Defines the ellipsoid on which latitude and longitude are given.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:GeographicCoordinateSystem"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="PositioningNetElement">
    <xs:annotation>
      <xs:documentation>Topological element connected and oriented in the network by means of oriented relations.
</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:CompositionNetElement">
        <xs:sequence>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="associatedPositioning" type="rsmCommon:AssociatedPositioning">
            <xs:annotation>
              <xs:documentation>An element of the topology can be positioned in terms of  coordinates. This is useful only for intrinsic coordinates with value 0 and 1.</xs:documentation>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Speed">
    <xs:annotation>
      <xs:documentation>Quantity of type speed or celerity.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:NumericQuantity"/>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType abstract="true" name="NamedResource">
    <xs:annotation>
      <xs:documentation>A resource, tangible or intangible, that has a name.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="rsmCommon:BaseObject">
        <xs:sequence>
          <xs:element maxOccurs="1" minOccurs="1" name="longname" nillable="true" type="xs:string"/>
          <xs:element maxOccurs="1" minOccurs="1" name="name" nillable="true" type="xs:string"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:schema>

