From railML 2 Wiki
Revision as of 15:46, 20 May 2024 by RailML Coord Documentation (talk | contribs) (Link internalized)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


Scheme description / Schemenbeschreibung

Position of macroscopicNode in the XML-Tree / Position von macroscopicNode im XML-Baum

Multiplicity / Anzahl


Semantics / Bedeutung

A <macroscopicNode> represents a logical connection of (multiple) tracks without respect to the physical layout of their connections.

Attributes of macroscopicNode / Attribute von macroscopicNode

  • ocpRef: This refers to the id attribute of the associated <ocp> element.
  • flowDirection: This specifies how trains can pass the node. Possible values are:
  • in only into the node (track --> node)
  • out only out of the node (track <-- node)
  • both into and out of node (track <--> node)
  • unknown is restricted to a certain direction, but this direction is not known.
  • other:anything: Any value that does not fit any value from the previous enumeration list, fulfilling the constraint: at minimum two characters, whitespace is not allowed. Please, apply Dev:usingAny accordingly.

Syntactic Constraints / Syntaktische Beschränkungen

  • ocpRef: tGenericRef (xs:IDREF); required
  • flowDirection: tFlowDirection (union of (restriction of xs:string, tOtherEnumerationValue); tOtherEnumerationValue is an arbitrary string starting with 'other:' followed by at minimum two characters, white space not allowed for extending railML® enumeration lists); default: both; optional

All tracks connected to this macroscopicNode shall refer to the same ocp.

The associated ocp shall have suitable operational attributes set (e. g. as a station).

Best practice & Examples / Empfohlene Anwendung & Beispiele

Consider the railML® 2.3 example of Middle Rhine Railway by GPSinfradat.


TrackID LineID BeginElementType EndElementType OCP Start OCP End
26301 2630 oE mN KKO FBGK
35102 3510 oE mN FMZ FBGK
35113 3511 mN oE FBGK SBKNG

This code example defines a track begin that is a macroscopic node.

<trackBegin id="tB35113" pos="0" absPos="-110">
  <macroscopicNode ocpRef="ocpFBGK"/>

Consider the railML® 2.2 example of East Saxony railway network by FBS.


This code example defines a track begin that is a macroscopic node.

<trackBegin id='trn_DN_80.6212_1' pos='0' absPos='102100'>
  <macroscopicNode ocpRef='ocp_DN'/>

Notes / Anmerkungen

Many simulation programs, especially in the simulation domain for complete networks, have no knowledge about the physical track layout of a station. They model a station as a "zero-dimensional vertex" in a "graph" with trains being able to switch to every "edge" (here: track) that is connected to that "vertex". The <macroscopicNode> provides means to represent this simplified infrastructure model in railML®.

Simulation programs that depend on precise "microscopic" modelling of stations (including switches, lengths, signals, ...) are likely to be troubled by <macroscopicNode>. Possible solutions can be:

  • convert the <macroscopicNode> internally into openEnds and thus allowing trains to enter and leave the simulation in that point. "Warping" trains from one track of the node to another via "virtual open ends" is a semantically identical behaviour compared with a macroscopic node.

Open issues / Offene Punkte/Pendenzen

Not yet described. / Noch nicht beschrieben.