IS:designator ocp: Difference between revisions
[unchecked revision] | [checked revision] |
m (removing comment of preliminary release) |
(updated semcon documentation to match what is actually in the schema) |
||
(27 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{ | {{inheritDesignator | ||
|intro=2.2 | |||
| | |||
|semantics = | |semantics = | ||
There are normally several abbreviations and/or numbers for the same {{IS:Tag|ocp}} (station), even in one country. So, the writing and reading software of a | There are normally several abbreviations and/or numbers for the same {{IS:Tag|ocp}} (station), even in one country. So, the writing and reading software of a {{rml}} file can have different external primary keys for the same {{IS:Tag|ocp}} (station).<br> | ||
The {{IS:Tag|designator}} sequence allows to enumerate more than one external primary key for one {{IS:Tag|ocp}}. Such, it defines the mapping from one to another register.<br> | The {{IS:Tag|designator}} sequence allows to enumerate more than one external primary key for one {{IS:Tag|ocp}}. Such, it defines the mapping from one to another register.<br> | ||
It | It substitutes the older (now deprecated) attributes {{attr|number}} ({{depr|2.1}}) and {{attr|abbrev[i]ation}} ({{depr|2.1}}) of {{IS:Tag|ocp}}. | ||
|ownAttributes = | |ownAttributes = | ||
* {{Attr|register}}: | * {{Attr|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 [[dev:Codelists|codelist]] ''[[Registers.xml]]''. A list of the currently registered catalogues can be found [[Dev:Registers#Current_entries|here]]. | ||
* {{Attr|entry}}: Contains the external primary key of the OCP belonging to the referred [[Registers.xml|register]]. To fulfill the requirements of a primary key, {{Attr|entry}} must be '''unique''' through all other entries of {{IS:Tag|ocp}}s with the same 'register'. | |||
* {{Attr| | |||
* {{Attr| | * {{Attr|startDate}}: Date from when (including) the entry becomes or became valid. The entry can be considered as "valid since ever" if this attribute is not used (no other entry of that register was valid during the validity period of the file). Before {{Attr|startDate}}, either the whole {{IS:Tag|ocp}} wasn't part of the register or there is another entry for that {{IS:Tag|ocp}} and register with a lower {{Attr|endDate}}. {{StartEndDoc}} | ||
* {{Attr|endDate}}: Date (including) when the entry becomes or became invalid. The entry can be considered as valid until canceled if this attribute is not used (no other entry of that register will become valid during the validity period of the file as known so far). After {{Attr|endDate}}, either the whole {{IS:Tag|ocp}} will no longer be part of the register or there is another entry for that {{IS:Tag|ocp}} and register with a higher {{Attr|startDate}}. {{StartEndDoc}} | |||
|example = | |example = | ||
===Examples for OCPs with several designators in distinct registers=== | |||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<ocp ... name='Passau Hbf.' ...> | <ocp ... name='Passau Hbf.' ...> | ||
<designator register='ENEE' entry='80-26506-6'/> | <designator register='ENEE' entry='80-26506-6'/> | ||
<designator register='PLC' entry='DE18274'/> | |||
<designator register='IBNR' entry='8000298'/> | <designator register='IBNR' entry='8000298'/> | ||
<designator register='RL100' entry='NPA'/> | <designator register='RL100' entry='NPA'/> | ||
Line 50: | Line 29: | ||
<ocp ... name='Fieberbrunn' ...> | <ocp ... name='Fieberbrunn' ...> | ||
<designator register='ENEE' entry='81-01155-1'/> | <designator register='ENEE' entry='81-01155-1'/> | ||
<designator register='PLC' entry='AT1155'/> | |||
<designator register='IBNR' entry='8100053'/> | <designator register='IBNR' entry='8100053'/> | ||
<designator register='DB640' entry='Fie' endDate='2011-12-31'/> | <designator register='DB640' entry='Fie' endDate='2011-12-31'/> | ||
<designator register='DB640' entry='Hch H2' | <designator register='DB640' entry='Hch H2' startDate='2012-01-01'/> | ||
<designator register='RL100' entry='XAFB'/> | <designator register='RL100' entry='XAFB'/> | ||
</ocp> | </ocp> | ||
Line 58: | Line 38: | ||
<ocp ... name='Buchs (SG)' ...> | <ocp ... name='Buchs (SG)' ...> | ||
<designator register='ENEE' entry='85-09404-X'/> | <designator register='ENEE' entry='85-09404-X'/> | ||
<designator register='PLC' entry='CH9404'/> | |||
<designator register='IBNR' entry='8509404'/> | <designator register='IBNR' entry='8509404'/> | ||
<designator register='DB640' entry='Bc'/> | <designator register='DB640' entry='Bc'/> | ||
Line 66: | Line 47: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Examples concerning {{Attr| | ===Examples concerning {{Attr|startDate}} and {{Attr|endDate}}=== | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<designator register='DB640' entry='Bc1'/> | <designator register='DB640' entry='Bc1'/> | ||
<designator register='DB640' entry='Bc2' | <designator register='DB640' entry='Bc2' startDate='2001-01-01'/> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
'Bc1' was valid until 31.12.2000. | 'Bc1' was valid until 31.12.2000. | ||
Line 80: | Line 61: | ||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<designator register='DB640' entry='Bc1' | <designator register='DB640' entry='Bc1' startDate='2001-01-01' endDate='2013-01-01'/> | ||
<designator register='DB640' entry='Bc2'/> | <designator register='DB640' entry='Bc2'/> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
'Bc2' was valid until 31.12.2000 and will be valid from 02.01.2013. (A case not very common in practice.) | 'Bc2' was valid until 31.12.2000 and will be valid again from 02.01.2013. (A case not very common in practice.) | ||
<syntaxhighlight lang="xml"> | ===Examples for wrong usage (invalid code)=== | ||
{{note|<syntaxhighlight lang="xml"> | |||
<designator register='DB640' entry='Bc1' endDate='2012-12-31'/> | <designator register='DB640' entry='Bc1' endDate='2012-12-31'/> | ||
<designator register='DB640' entry='Bc2' | <designator register='DB640' entry='Bc2' startDate='2012-01-01'/> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Not allowed. | '''Not allowed''', because there are two different valid designators in the same register from 2012-01-01 until 2012-12-31. | ||
|error}}<br> <br> | |||
<syntaxhighlight lang="xml"> | {{note|<syntaxhighlight lang="xml"> | ||
<designator register='DB640' entry='Bc1'/> | <designator register='DB640' entry='Bc1'/> | ||
<designator register='DB640' entry='Bc2'/> | <designator register='DB640' entry='Bc2'/> | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Not allowed. | '''Not allowed''', because there are two different valid designators in the same register permanently. | ||
|error}} | |||
| | |semConDef={{startEndConNoOverlap|Must not overlap with the validity periods of other entries of the same {{Attr|register}} of the same enclosing element.|CO:001}} | ||
}} | }} |
Latest revision as of 13:50, 14 May 2024
designator
Scheme description / Schemenbeschreibung
Position of designator in the XML-Tree / Position von designator im XML-Baum
- Parent: <ocp>
- Children: None
Multiplicity / Anzahl
Semantics / Bedeutung
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>.(introduced with version 2.2)
Please, be aware of the semantic constraint(s)!
Attributes of designator / Attribute von designator
- register: Name of the register, e.g. registers for OCPs: IBNR, DB640, RL100 or DIDOK. Choose a value from the railML® codelist Registers.xml or name your own register starting with an underscore.
- entry: An entity's code in the specified register.
- startDate: Date from when (including) the entry becomes or became valid. The entry can be considered as "valid since ever" if this attribute is not used (no other entry of that register was valid during the validity period of the file).
- endDate: Date (including) when the entry becomes or became invalid. The entry can be considered as valid until canceled if this attribute is not used (no other entry of that register will become valid during the validity period of the file as known so far).
Syntactic Constraints / Syntaktische Beschränkungen
- register xs:string, required
- entry xs:string, required
- 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
|
Best practice & Examples / Empfohlene Anwendung & Beispiele
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> <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> <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'/> </ocp>
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)
|
|
Notes / Anmerkungen
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/Pendenzen
Not yet described. / Noch nicht beschrieben.