IS:platform

From railML 3 Wiki
Jump to navigation Jump to search

Introduction

A platform is a raised infrastructure alongside railway or tramway tracks. It is located at a station or at a stopping point and designed for safe and convenient passenger service – boarding or leaving passenger trains or trams, as well as short-term waiting for a train or tram.

In railML®, a platform is modeled by the <platform> element. The platform area can be modelled by zero or more <platform>/<areaLocation>, <platform>/<gmlLocation>, <platform>/<linearLocation>, and/or <platform>/<spotLocation> elements. Moreover, zero or more <platform>/<networkLocation> elements may reference a <network> element.

In order to model the interface between passenger train and station or tram and stopping point, a <platform> element can also reference associated platform edges using zero or more <platform>/<ownsPlatformEdge> elements.

Platforms which have some parameters (attributes or elements) in common, but differ in others, can be grouped by use of the attribute @belongsToParent holding a reference to a parent platform: Every child inherits information which is only present in the parent, while it may overwrite the information of the parent with its own information.

Documentation

Syntax

Autoexport from the XML-Schema for element IS:platform of railML® version 3.3
    
Documentation railway infrastructure facility located at a station or at a stopping point and designed for safe and convenient passenger service – boarding or leaving passenger train, as well as short-term waiting for a train [Organization for Cooperation of Railways].
Subschema infrastructure
Parents*

platforms

Children

areaLocation (0..*), designator (0..*), elementState (0..*), gmlLocation (0..*), isValid (0..*), linearLocation (0..*), name (0..*), networkLocation (0..*), ownsPlatformEdge (0..*), spotLocation (0..*), typeDesignator (0..*), width (0..*)

Attributes:
  • basedOnTemplate: reference to a template platform (optional; xs:IDREF),

  • belongsToParent: reference to a parent platform;
    use this attribute for grouping of platforms with different parameters

    - if some information exists in parent and child, then information in child overwrites it in child

    - if some information exists only in parent, then child inherits this information from parent (optional; xs:IDREF),

  • id: the identifier of the object; this can be either of type xs:ID or UUID (obligatory; xs:ID); compare: Dev:Identities
*Notice:
Elements may have different parent elements. As a consequence they may be used in different contexts.
Please, consider this as well as a user of this Wiki as when developing this documentation further.
Aspects that are only relevant with respect to one of several parents should be explained exclusively in the documentation of the respective parent element.


 

Autoexport from the XML-Schema for element IS:platform of railML® version 3.2
    
Documentation railway infrastructure facility located at a station or at a stopping point and designed for safe and convenient passenger service – boarding or leaving passenger train, as well as short-term waiting for a train [Organization for Cooperation of Railways].
Subschema infrastructure
Parents*

platforms

Children

areaLocation (0..*), designator (0..*), external (0..*), gmlLocations (0..*), isValid (0..*), length (0..*), linearLocation (0..*), name (0..*), networkLocation (0..*), ownsPlatformEdge (0..*), spotLocation (0..*), typeDesignator (0..*), width (0..*)

Attributes:
  • basedOnTemplate: reference to a template platform (optional; xs:string; patterns: (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}}),

  • belongsToParent: reference to a parent platform;
    use this attribute for grouping of platforms with different parameters

    - if some information exists in parent and child, then information in child overwrites it in child

    - if some information exists only in parent, then child inherits this information from parent (optional; xs:string; patterns: (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}}),

  • height: DEPRECATED, use element platformEdge instead
    the height of the platform edge in metres (optional; xs:decimal),

  • id: the identifier of the object; this can be either of type xs:ID or UUID (obligatory; xs:string; patterns: (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}}); compare: Dev:Identities
*Notice:
Elements may have different parent elements. As a consequence they may be used in different contexts.
Please, consider this as well as a user of this Wiki as when developing this documentation further.
Aspects that are only relevant with respect to one of several parents should be explained exclusively in the documentation of the respective parent element.


 

Autoexport from the XML-Schema for element IS:platform of railML® version 3.1
    
Documentation This element is not documented in the schema!
Subschema infrastructure
Parents*

platforms

Children

any (0..*), areaLocation (0..*), designator (0..*), external (0..*), gmlLocations (0..*), isValid (0..*), length (0..*), linearLocation (0..*), name (0..*), networkLocation (0..*), ownsPlatformEdge (0..*), spotLocation (0..*), width (0..*)

Attributes:
  • belongsToParent: reference to a parent platform (edge);

use this attribute for grouping of platform edges with different parameters (e.g. different heights) (optional; xs:IDREF; patterns: (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}}),

  • basedOnTemplate: reference to a template platform (edge) (optional; xs:IDREF; patterns: (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}}),

  • height: the height of the platform edge in metres (optional; xs:decimal),

  • id: the identifier of the object; this can be either of type xs:ID or UUID (obligatory; xs:ID; patterns: (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}}); compare: Dev:Identities
*Notice:
Elements may have different parent elements. As a consequence they may be used in different contexts.
Please, consider this as well as a user of this Wiki as when developing this documentation further.
Aspects that are only relevant with respect to one of several parents should be explained exclusively in the documentation of the respective parent element.


 


Changes 3.1→3.2

There exists an overview of all changes between railML® 3.1 and railML® 3.2 on page Dev:Changes/3.2.

The element documentation has been changed.

The children have been changed.

The attributes have been changed.

Changes 3.2→3.3

There exists an overview of all changes between railML® 3.2 and railML® 3.3 on page Dev:Changes/3.3.

The children have been changed.

The attributes have been changed.

Semantics

Best Practice / Examples

General

The @belongsToParent is only used for grouping <platformEdge>s "in sequence" e.g. <platformEdge>s with different heights that still form one physical <platformEdge>. The grouping of <platformEdge>s at one <platform> is possible with @belongsToPlatform.

Island platform

2025-11-11 railML platformFixed.svg
railML.org Simple example (link to the railML® website)
<platformEdge id="ple01"
              height="550"
              belongsToPlatform="pl01">
  <name name="Gleis 3"
        language="de"/>
  <linearLocation id="ple01_lloc01"
                  applicationDirection="both">
    <associatedNetElement netElementRef="ne_a01"
                          keepsOrientation="true"
                          posBegin="200.0"
                          posEnd="400.0">
      <linearCoordinateBegin measure="200.0"
                             positioningSystemRef="lps01"
                             lateralDistance="1.7"
                             lateralSide="right"/>
      <linearCoordinateEnd measure="400.0"
                           positioningSystemRef="lps01"
                           lateralDistance="1.7"
                           lateralSide="right"/>
    </associatedNetElement>
  </linearLocation>
  <length type="physical"
          value="200.00"
          validForDirection="both"/>
</platformEdge>
<platformEdge id="ple02"
              height="550"
              belongsToPlatform="pl01">
  <name name="Gleis 2"
        language="de"/>
  <linearLocation id="ple02_lloc01"
                  applicationDirection="both">
    <associatedNetElement netElementRef="ne_a02"
                          keepsOrientation="true"
                          posBegin="200.0"
                          posEnd="400.0">
      <linearCoordinateBegin measure="200.0"
                             positioningSystemRef="lps01"
                             lateralDistance="1.7"
                             lateralSide="left"/>
      <linearCoordinateEnd measure="400.0"
                           positioningSystemRef="lps01"
                           lateralDistance="1.7"
                           lateralSide="left"/>
    </associatedNetElement>
  </linearLocation>
  <length type="physical"
          value="200.00"
          validForDirection="both"/>
</platformEdge>
<platform id="pl01">

Additional Information

Notes

Additional Information

🗒️ This segment provides background information that is not relevant for the certification process.  


Source of best practice is issue #209. Example was reviewed by the coordinator (link to the railML® website) of the Infrastructure subschema on 2025-11-11.

Open Issues