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
<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