TT:train

From railML 2 Wiki
Jump to navigation Jump to search


train
 


Scheme description / Schemenbeschreibung

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

Multiplicity / Anzahl

[1..∞]

Semantics / Bedeutung

The Element <train> describes a train for different perceptions. A train could either be an "operational train" in the view of a signal box, or it can be "commercial train" from the view of a passenger.

Das Element <train> beschreibt einen Zug für unterschiedliche Sichtweisen. Ein train kann ein "betrieblicher Zug" sein (Stellwerksicht) oder aber ein "verkehrlicher Zug" (Kundensicht).

Attributes of train / Attribute von train

  • id: XML-file-wide unique, machine-interpretable identity, required for later referencing that element internally. For a detailed explanation see Dev:identities.
    XML-Datei-weit eindeutige, maschineninterpretierbare Identität, die für die spätere interne Referenzierung dieses Elements erforderlich ist. Für eine detaillierte Erklärung siehe Dev:identities.
  • code (introduced with version 2.1): Machine-interpretable string (e.g. an abbreviation) used for identification of the object across exchange partners, usecase specific uniqueness constraints may apply. Please see our description of the differences between id, code and human-readable identifiers.
    Maschineninterpretierbare Zeichenkette (z.B. Abkürzung), die zur Identifizierung des Objekts auch bei Austauschpartnern verwendet wird, wobei spezifische Eindeutigkeitsbeschränkungen gelten können. Bitte beachten Sie unsere Erläuterung zu den Unterschieden zwischen id, code and menschenlesbaren Kennzeichnungen.
    This attribute was dedicated to be a functional identification for a <train> - whatever that means. It should be used in a way that the receiving program could identify a train to be the same as in a previous delivery, only varying by its operating period. So the trainNumber or a combination of the train number with other attributes to get uniqueness would be a good choice.
  • name: Established, human-readable short string, giving the object a name. Not intended for machine interpretation, please see our notice on human interpretable data fields.
    Etablierte, menschenlesbare kurze Zeichenkette, die das Objekt benennt. Nicht zur maschinellen Interpretation bestimmt, siehe Hinweise zu menschenlesbaren Datenfeldern.
  • description: Human-readable, more detailed description as addition to the name. It should give additional explanations or hints to the contents of this element. Not intended for machine interpretation, please see our notice on human interpretable data fields.
    Menschenlesbare, detailliertere Beschreibung als Ergänzung zu name. Sie soll zusätzliche Erläuterungen oder Hinweise auf den Inhalt dieses Elements geben. Nicht zur maschinellen Interpretation bestimmt, siehe Hinweise zu menschenlesbaren Datenfeldern.
  • xml:lang (introduced with version 2.1): This is a unique identifier of language. It uses basically the language standard IETF BCP 47 (external link) which may be different to ISO 639-1 (external link) or ISO 639-2 (external link). For mapping hints see relation to other standards (external link).
    This defines the language used for name and description. Use <additionalName> to provide a name and/or description in other languages.
  • type: This is the type of train — it is recommended that exporting programs write operational and commercial trains, because the combination of both is needed to model some aspects like coupled trains. The importing program has to distinguish between these kinds of trains according to its needs. Possible values are:
  • operational: The timetable of this train is seen from the railway operational point of view (by the IM or RU).
  • commercial: The timetable of this train is seen from the customers point (passenger or cargo forwarder) of view.
See also Train coupling and Sharing and notes section of this page for further descriptions and examples for this attribute.
Für weiter Beschreibungen und Beispiele zu diesem Attribut siehe auch Züge kuppeln und trennen sowie Abschnitt Anmerkungen auf dieser Seite.
  • trainNumber: This is the train number, used to identify the train (depending on whether it is a commercial or operational train, to identify it in the signal box or e. g. in public media). Please note that it has not necessarily to be unique. For more information, see "example on scope and primary key".
  • additionalTrainNumber: The precise semantics of this attribute are not fixed in the standard. The general idea for this is to allow for specifying an attribute that distinguishes between trains with the same train number. This may occur if a trainNumber is reused for different spare trains throughout the year or if two railway companies use the same train numbers on the same day. In order to achieve uniqueness anyway, the attribute additionalTrainNumber may be used.
  • scope:
🗒️ Not to be confused with <times>@scope, that distinguishes different planning stages.

This attribute can be used to define the different versions of the "supplementary timetables" as used by the German infrastructure manager DB Netz. With this model, trains that have different train paths (temporally or locally) in different sections on different operating days can be mapped in such a way that only the section of a train that differs from its master timetable is mapped and not the entire train run. Possible values for scope are:

Mit diesem Attribut können die unterschiedlichen Ausprägungen der "Ergänzungsfahrpläne" definiert werden, so wie sie vom deutschen Infrastruktur-Manager DB Netz verwendet werden. Mit diesem Modell können Züge, die an unterschiedlichen Verkehrstagen abschnittsweise unterschiedliche Trassen (zeitlich oder örtlich) aufweisen, so abgebildet werden, dass lediglich der in Bezug auf seinen Stamm-Fahrplan abweichende Abschnitt eines Zuges abgebildet wird und nicht dessen gesamter Zuglauf. Mögliche Werte für scope sind:
  • primary The main path or route of the train.
    Der Hauptlauf des Zuges (auch "Stammfahrplan" genannt).
  • secondary An alternative path or route of the train.
    "Nebenlauf" oder "Doppelfahrplan"
  • secondaryStart A sub-path of the train at the beginning of its route (which joins the main path at an intermediate station).
    "Vornebenlauf" oder "Startflügel"
  • secondaryEnd A sub-path of the train at the end of its route (which splits from the main path at an intermediate station).
    "Nachnebenlauf" oder "Zielflügel"
  • secondaryInner A sub-path of the train at an intermediate section (which splits from the main path at an intermediate station and joins it again at another station).
    "Zwischennebenlauf" oder "Doppelfahrplan"
Weitergehende Informationen finden Sie im railML®-Beispiel zu Mehrfachzugläufen (scope) und Primärschlüssel von Zügen (externer Link, 2012-05-23, PDF, 🇩🇪, visited on 2018-03-27; by Dirk Bräuer, iRFP Dresden).
  • processStatus: It describes the train status in relation to a working process. (deprecated with version 2.5)
🗒️ The semantics of the attribute values for @processStatus have not been fully defined in the past. In general the attribute shall describe a state of the process supported by railML®. Therefore the precise semantics shall be clarified between data provider and the data consumer.
Examples:
If an updated version of a timetable is transferred, the @processStatus is used by some systems to indicate if a train was changed compared to the previous data transfer by providing @processStatus=changed.
For the use case slot ordering the attribute is used with the value planned by some systems to describe that a train has been planned in the scheduling tool, but hasn’t been taken into account for the slot ordering process.

Possible values are:

  • planned
  • actual
  • calculated
  • toBeChecked
  • changed
  • imported
  • 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.
  • remarks (introduced with version 2.2): This is a free attribute for further remarks, which should not be mixed with the description of a train.
💡 Please take into account our references to human-intepretable data fields.

Bitte berücksichtigen Sie unsere Hinweise zu menschen-intepretierbaren Datenfeldern.

  • cancellation (introduced with version 2.3): Indicates, that this train is no longer valid and should be canceled out of a previously delivered set.

Syntactic Constraints / Syntaktische Beschränkungen

  • id: xs:ID, required
    a string, starting with a letter (a..zA..Z) or an underscore (_),
    followed by a non-colonized and non-spaced string consisting of letters, digits, points (.), dashes (-) or underscores (_)
  • code: xs:string, optional
  • name: xs:string, optional
  • description: xs:string, optional
  • xml:lang: xs:language, language identification, optional
  • type: restriction of xs:string; operational or commercial, mandatory
  • trainNumber: xs:string, optional
    For several reasons, the train number needs not necessarily to be unique.
  • additionalTrainNumber: xs:string, optional
  • scope: restriction of xs:string, optional, type="operational" should be set
  • processStatus: 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, optional
  • remarks: xs:string, optional
  • cancellation: xs:boolean, optional

Best practice & Examples / Empfohlene Anwendung & Beispiele

Usage of scope

Usage of operational and commercial trains in railML® for coupled and shared trains

The following “trains” may be assumed to be published:

  • 456 Praha – Amsterdam (branded “Phoenix”)
  • 458 Praha – Zürich (branded “Canopus”)
  • 60456 Praha – Berlin
  • 61458 Praha – Erfurt

The “trains” run coupled between Praha and Dresden. In railML®, they are entitled as commercial trains. (In the 2014 timetable there were more trains involved in reality. This has been simplified a little bit for the purposes of this example.)

From the operational point of view, there are the following operational trains:

  • 456 Praha – Amsterdam
  • 458 Dresden – Zürich

Please note that the numbers of the operational are identical with some numbers of commercial trains. But, this does by far not mean that these trains are identical! It is only that different objects have the same numbers (one could say: by coincidence).

<trainParts> in railML®:

<trainPart id='tp_1.1' name='Phoenix' code='456' trainNumber='456' … />
<trainPart id='tp_1.2' name='Phoenix' code='456' trainNumber='456' … />
<trainPart id='tp_2.1' name='Canopus' code='458' trainNumber='458' … />
<trainPart id='tp_2.2' name='Canopus' code='458' trainNumber='458' … />
<trainPart id='tp_3.1' code='60456' trainNumber='60456' … />
<trainPart id='tp_3.2' code='60456' trainNumber='60456' … />
<trainPart id='tp_4.1' code='61458' trainNumber='61458' … />
<trainPart id='tp_4.2' code='61458' trainNumber='61458' … />

commercial trains:

<train id='trc_1' trainNumber='456' name=’Phoenix’ type='commercial'>
  <trainPartSequence sequence='1'>	<!-- section Praha - Dresden -->
    <trainPartRef ref='tp_1.1' position='1'/>
  </trainPartSequence>
  <trainPartSequence sequence='2'>	<!-- section Dresden - Amsterdam -->
    <trainPartRef ref='tp_1.2' position='1'/>
  </trainPartSequence>
</train>

<train id='trc_2' trainNumber='458' name=’Canopus’ type='commercial'>
  <trainPartSequence sequence='1'>	<!-- section Praha - Dresden -->
    <trainPartRef ref='tp_2.1' position='3’/>
  </trainPartSequence>
  <trainPartSequence sequence='2'>	<!-- section Dresden - Zürich -->
    <trainPartRef ref='tp_2.2' position='1'/>
  </trainPartSequence>
</train>

<train id='trc_3' trainNumber='60456' type='commercial'>
  <trainPartSequence sequence='1'>	<!-- section Praha - Dresden -->
    <trainPartRef ref='tp_3.1' position='2'/>
  </trainPartSequence>
  <trainPartSequence sequence='2'>	<!-- section Dresden - Amsterdam -->
    <trainPartRef ref='tp_3.2' position='2'/>
  </trainPartSequence>
</train>

<train id='trc_4' trainNumber='61458' type='commercial'>
  <trainPartSequence sequence='1'>	<!-- section Praha - Dresden -->
    <trainPartRef ref='tp_4.1' position='4'/>
  </trainPartSequence>			<!-- section Dresden - Zürich -->
  <trainPartSequence sequence='2'>
    <trainPartRef ref='tp_4.2' position='2'/>
  </trainPartSequence>
</train>

operational trains:

<train id='tro_1' type='operational' trainNumber='456'>
  <trainPartSequence sequence='1'>	<!-- section Praha - Dresden -->
    <trainPartRef ref='tp_1.1' position='1'/>
    <trainPartRef ref='tp_3.1' position='2'/>
    <trainPartRef ref='tp_2.1' position='3'/>
    <trainPartRef ref='tp_4.1' position='4'/>
  </trainPartSequence>
  <trainPartSequence sequence='2'>	<!-- section Dresden - Amsterdam -->
    <trainPartRef ref='tp_1.2' position='1'/>
    <trainPartRef ref='tp_3.2' position='2'/>
  </trainPartSequence>
</train>

<train id='tro_2' type='operational' trainNumber='458'>
  <trainPartSequence sequence='1'>	<!-- section Dresden - Zürich -->
    <trainPartRef ref='tp_2.2' position='1'/>
    <trainPartRef ref='tp_4.2' position='2'/>
  </trainPartSequence>
</train>

Notes / Anmerkungen

The railML® element <train> can describe either an operational or a commercial train. This is defined by the attribute type which either is operational or commercial.

The characteristic attribute of operational trains is that at one moment there is only one train allowed at a section of line track. This train has clearly to be defined by one “primary key” (called ‘head code’ or ‘train number’). These aspects partly come from reasons of security (as for instance communication between signal boxes).

On the other hand, commercial trains are seen from the customers point of view. They refer to trains as published in public schedules like “Bradshaw’s” (external link) or modern electronic medias. There may be apparently more than one train simultaneous in one direction of one track of a line. In a timetable two coupled trains are shown in two separate columns with the same times. In a departure poster there may be two entries with the same departure time and track but bound for different directions (both trains splitting at an intermediate station). Concerning this view, the term “train” is used in a wider sense. So, such a commercial train does not even need to have an engine (e. g. a slip coach).

For a full description of both aspects of trains, each train part normally is used by exactly one operational and one commercial train.

Each train names all its train parts in its element <trainPartRef> with the attributes ref and position. A train may consist of more than one train part either in one section or in subsequent sections of its route. There may be several elements <trainPartRef> with the same position if the corresponding train parts apply in different sections.

The actual train information as times, vehicles a. s. o. are properties of the train parts.

For more information, please read Train coupling and Sharing - On trains and train parts in general.

Open issues / Offene Punkte/Pendenzen

Not yet described. / Noch nicht beschrieben.