Jump to: navigation, search

Scheme description / Schemenbeschreibung / Description du schéma

Position of train in the XML-Tree / Position von train im XML-Baum / position de train dans l’aborescence XML

Semantics / Bedeutung / Sémantique

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 / Attributs de train

  • id: This is the unique identifier which is used to refer to the current element. It is used for XML file internal unambiguous references. How to handle it?
  • code (introduced with version 2.1): This is a short string for typical, specific abbreviations, used in different systems with the same understanding.
  • name: This is a short name for the current item.
  • description: This is a more detailed description as addition to the short name. It shall allow a short overview or hints to the contents of this data set.
  • 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 is used for defining name and description.
  • type: This is the type of train - see Notes below. Possible values are:
  • operational
  • commercial
  • 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:
Missinginformation.png In this article there is information missing with respect to attribute semantics. Please help improving the railML® wiki by filling the gaps. Possibly, you will find further details on the discussion pageFerri Leberl (talk) 18:41, 1 March 2017 (CET)
  • scope: The attribute scope is used to distinguish between (operational) trains with the same train number, which then have to have disjunctive operating days. This is the german approach. The same result could be achieved by using several trains with disjunctive operating periods sharing the same train number. Possible values for scope are:
    Durch das Attribut scope werden mehrere Züge mit gleicher Zugnummer (die disjunkte Verkehrstage haben müssen) unterschieden. Man kann diese auch als alternative zeitliche Lagen oder „Varianten“ ein und desselben Zuges auffassen. Dies ist der deutsche Beschreibungsansatz. Das gleiche fachliche Ergebnis erhält man, wenn man den Zug gemäß seiner Gültigkeitstage in zeitlich disjunkte Fahrlagen zerlegt, welche alle die gleiche Zugnummer tragen. Mögliche Werte für scope sind:
  • primary The main path or route of the train.
    Der Hauptlauf des Zuges (auch "Stammfahrplan" genannt).
  • 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"
see also Train coupling and Sharing
siehe auch Züge kuppeln und trennen
Weitergehende Informationen finden Sie im railML®-Beispiel zu Mehrfachzugläufen (scope) und Primärschlüssel von Zügen (externer Link, PDF; 246 kByte).
  • processStatus: It describes the train status in relation to a working 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.
  • 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.
  • cancellation (introduced with version 2.3): Indicates, that this train is no longer valid and should be canceled out of a previously delivered set.

Constraints / Beschränkungen / Contraintes

  • id: xs:ID, mandatory
    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 (_)
  • xml:lang: xs:language, language identification, optional
  • type: FIXME, mandatory
  • trainNumber: xs:string, optional
    For several reasons, the train number needs not necessarily to be unique.
  • additionalTrainNumber: xs:string, optional
  • scope: FIXME, 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 / Bonnes pratiques & exemples

Discussed within timetable meeting in Vienna 16.03.2015:

code: 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.

type: 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.

Notes / Anmerkungen / Notes

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” 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/Pedenzen / Questions ouvertes

The attribute train number by itself may not be sufficient as identification of a train as it could occur multiple times for various reasons. For example, the same train numbers could be reused for different spare trains throughout the year. There are also cases where two railway companies use the same train numbers on the same day. In order to achieve uniqueness anyway, the attribute additionalTrainNumber may be used. In case of different running paths of a train number on different operating days the concept of base and complement trains is used in Germany. This maps to the attribute scope.

The compound key consisting of the attributes trainNumber, additionalTrainNumber and scope is required to be unique for all <train> elements. If any of these attributes are absent the compound key of the others needs to be unique. The code attribute is used for some unique string identifying the train regardless of the unique attribute triple.

Die Zugnummer trainNumber alleine eignet sich nicht immer zur Identifizierung eines Zuges, da sie aus verschiedenen Gründen mehrfach vorkommen kann. So können die gleichen Zugnummern für unterschiedliche Ersatzzüge übers Jahr hinweg immer wieder verwendet werden. Es gibt auch Fälle, in denen zweierlei Bahngesellschaften die gleichen Zugnummern am selben Tag verwenden. Will man trotzdem eine Eindeutigkeit erzielen, so kann man die nicht näher bestimmte Zugnummernerweiterung additionalTrainNumber mit betrachten. Für den Fall unterschiedlicher Laufwege einer Zugnummer an verschiedenen Verkehrstagen nutzt man in Deutschland das Konzept der Stamm- und Ergänzungszüge, welches über das Attribut scope abgebildet werden kann.

Die Zusammenfassung der Attribute trainNumber, additionalTrainNumber und scope muss für alle <train> Elemente eineindeutig sein. Falls einzelne dieser Attribute nicht vorhanden sind, müssen die restlichen eineindeutig sein. Das code Attribut wird für eine zusätzliche eindeutige Identifikation verwendet, unabhängig vom eindeutigen Attribut-Tripel.