From railML 2 Wiki
Revision as of 15:35, 14 September 2023 by RailML Coord Timetable (talk | contribs) (added section about usage of annotation with out providing text resources)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search


Scheme description / Schemenbeschreibung

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

Multiplicity / Anzahl


Semantics / Bedeutung

(introduced with version 2.2) The Element <annotation> element contains texts and messages dedicated for a passenger information system.
(introduced with version 2.5) Extended with version 2.5: annotation may also encode images and symbols. Additionally meta-information regarding the annotation may be provided, allowing apart from categorization to distinguish between the different use cases that can be supported by this element.

(introduced with version 2.2) Das Element <annotation> enthält Texte und Nachrichten zur Übermittlung an ein Fahrgastinformationssystem.
(introduced with version 2.5) Erweitert mit Version 2.5: auch Bilder und Symbole können mit annotation kodiert werden. Zusätzlich können Meta-Informationen angegeben werden, die neben einer Klassifizierung auch eine Unterscheidung der Informationen für die verschiedenen Use Cases die durch dieses Element unterstützt werden, erlauben.

Attributes of annotation / Attribute von annotation

  • 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.
  • 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 (introduced with version 2.5): Enumeration of:
    • text annotation encodes textual information
    • symbol annotation encodes a symbol, e.g. bicycle symbol for trains allowing transport of bicycles or restaurant symbol for trains that include a restaurant car.
    • image annotation encodes an image, e.g. a logo for the train of some kind

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: tAnnotationType (xs:string, generic type for annotation types: enumeration text, symbol, image); default: text; optional

Best practice & Examples / Empfohlene Anwendung & Beispiele

How to use code with <annotation> of type image

Starting with version 2.5 it is possible to also describe images as annotations. To do so the type of an <annotation> is set to image. In order to communicate which image is actually meant with the annotation the attribute code may be used. As with all usages of code the exact handling is not standardized by railML® and thus needs to be discussed between producer and consumer of the railML® document. However there are two “Best practice” ways of using them.

Reference by file

The first way of using code here is by specifying a relative file path. This is most useful when shipping the railML® document as a zip archive. In this case the image resource can be provided along with the actual document.

Reference by key

If the above approach is not suitable there is another way is to provide a key value as code that can be resolved in the consuming system. In order to do that of course the key values need to be synchronized between producer and consumer.

Below both ways of referencing an image are shown as an example:

<timetable id="tt01">
      name="image for childrens play area" 
      name="image for restaurant car" 

Usage of subelement <text>

If the attribute @type is specified with the value text it is possible to specify the related strings per language with the available sub element <text>. Doing so will help reading programs to easily understand what needs to be done if a reference to such <annotation>is detected. No further clarification between producer and consumer of the data is needed.
It is however also possible to omit specifying the texts in question but rather indicate to the reading system via the attribute @code which text resources to use when encountering a reference to this <annotation>. Of course, this requires further discussion between producer and consumer so that the used codes are understood and kept in sync between the involved systems.

Notes / Anmerkungen

Not yet described. / Noch nicht beschrieben.

Open issues / Offene Punkte/Pendenzen

Not yet described. / Noch nicht beschrieben.