Jump to: navigation, search


Scheme description / Schemenbeschreibung / Description du schéma

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

  • Children: None

Multiplicity / Anzahl / Multiplicité


Semantics / Bedeutung / Sémantique

(introduced with version 2.2) There are normally several abbreviations and/or numbers for the same <ocp> (station), even in one country. So, the writing and reading software of a railML file can have different external primary keys for the same <ocp> (station).

The <designator> sequence allows to enumerate more than one external primary key for one <ocp>. Such, it defines the mapping from one to another register.

It substitutes the older (now deprecated) attributes number ((deprecated with version 2.1)) and abbrev[i]ation ((deprecated with version 2.1)) of <ocp>.

Attributes of designator / Attribute von designator / Attributs de designator

  • register: A string value for defining the catalogue, index, or directory where the external primary key comes from or refers to. Attribute register is used to link a designator with the codelist Registers.xml. A list of the currently registered catalogues can be found here.
  • entry: Contains the external primary key of the OCP belonging to the referred register. To fulfill the requirements of a primary key, entry must be unique through all other entries of <ocp>s with the same 'register'.

Syntactic Constraints / Syntaktische Beschränkungen / Contraintes syntactiques

  • register xs:string, required: Existing string value entries shall be used for the assigned registers and must not be used for other databases.
    For short-time or internal purposes new string value entries can be used additional to that of railML's XSD, but for official data exchange between two software programs it is strongly recommended that each new 'register' entry has to be 'registered' at railML's IL scheme coordinator (link to the railML® website) and included into the codelist Registers.xml for free.
  • entry xs:string, required: May be a string or a number depending on the 'register'. This means, some 'register' entries require a pure numeric number and do not allow characters or other signs. This is not forced by railML so far. entry must be unique through all other entries of <ocp>s with the same 'register'.
  • startDate xs:date, optional: shall be lower or equal endDate if both are used. Must not overlap with other validity periods of the same register for the same <ocp>.
  • endDate xs:date, optional: shall be higher or equal startDate if both are used. Must not overlap with other validity periods of the same register for the same <ocp>.

Semantic Constraints / Semantische Beschränkungen / Contraintes semantiques

Private-cloud-icon.png Proposed semantic constraint:
Any starting time stamp (as it may result e.g. from a combination of startDate and startTime) shall be lower or equal any ending time stamp (e.g. endDate) if both are given. Must not overlap with other validity periods.
Proposed on 2018-11-12
Please, recognize dev:Semantic Constraints

Best practice & Examples / Empfohlene Anwendung & Beispiele / Bonnes pratiques & exemples

Examples for OCPs with several designators in distinct registers

<ocp ... name='Passau Hbf.' ...>
    <designator register='ENEE' entry='80-26506-6'/>
    <designator register='PLC' entry='DE18274'/>
    <designator register='IBNR' entry='8000298'/>
    <designator register='RL100' entry='NPA'/>
    <designator register='DB640' entry='Pa'/>

<ocp ... name='Fieberbrunn' ...>
    <designator register='ENEE' entry='81-01155-1'/>
    <designator register='PLC' entry='AT1155'/>
    <designator register='IBNR' entry='8100053'/>
    <designator register='DB640' entry='Fie' endDate='2011-12-31'/>
    <designator register='DB640' entry='Hch H2' startDate='2012-01-01'/>
    <designator register='RL100' entry='XAFB'/>

<ocp ... name='Buchs (SG)' ...>
    <designator register='ENEE' entry='85-09404-X'/>
    <designator register='PLC' entry='CH9404'/>
    <designator register='IBNR' entry='8509404'/>
    <designator register='DB640' entry='Bc'/>
    <designator register='RL100' entry='XSBU'/>
    <designator register='DIDOK' entry='BU'/>

Examples concerning startDate and endDate

   <designator register='DB640' entry='Bc1'/>
   <designator register='DB640' entry='Bc2' startDate='2001-01-01'/>

'Bc1' was valid until 31.12.2000.

   <designator register='DB640' entry='Bc1' endDate='2013-01-01'/>
   <designator register='DB640' entry='Bc2'/>

'Bc1' is valid until 01.01.2013, 'Bc2' will be valid from 02.01.2013.

   <designator register='DB640' entry='Bc1' startDate='2001-01-01' endDate='2013-01-01'/>
   <designator register='DB640' entry='Bc2'/>

'Bc2' was valid until 31.12.2000 and will be valid again from 02.01.2013. (A case not very common in practice.)

Examples for wrong usage (invalid code)

   <designator register='DB640' entry='Bc1' endDate='2012-12-31'/>
   <designator register='DB640' entry='Bc2' startDate='2012-01-01'/>

Not allowed, because there are two different valid designators in the same register from 2012-01-01 until 2012-12-31.


   <designator register='DB640' entry='Bc1'/>
   <designator register='DB640' entry='Bc2'/>

Not allowed, because there are two different valid designators in the same register permanently.

Notes / Anmerkungen / Notes

A list of current entries can be found on page Dev:Registers#Current entries.

The procedure to add entries to the codelist is described on page Dev:Codelists#Missing entries.

Open issues / Offene Punkte/Pedenzen / Questions ouvertes

Not yet described. / Noch nicht beschrieben. / Pas encore décrit.