Dev:changes/2.3: Difference between revisions

From railML 2 Wiki
Jump to navigation Jump to search
[checked revision][checked revision]
(→‎Common subschema: adapting documentation to changes in companyCode)
(railML→{{rml}})
 
(42 intermediate revisions by 5 users not shown)
Line 1: Line 1:
'''railML schema changes between railML<sup>®</sup> 2.2 and railML<sup>®</sup> 2.3'''
{{head|{{rml}} schema changes between {{rml|2.2}} and {{rml|2.3}}}}


This site is intended to collect the schema changes between railML<sup>®</sup> 2.2 and railML<sup>®</sup> 2.3 by topics, that influence the XML output. As it starts as a stub please refer to [http://forum.railml.org/ railML forum] and [http://trac.railml.org/ railML's ticket system] too.
This site is intended to collect the schema changes between {{rml|2.2}} and {{rml|2.3}} by topics, that influence the XML output.


For changes with other version upgrades see [[CO:changes]].
A complete diff comparison can be found under [[Dev:changes/2.3/diff]]
 
Changes are also marked on the element pages with {{Vers|introduced with version 2.3}} for introduced components and {{depVers|deprecated with version 2.3}} for components that became obsolete. All occurances of these tags are listed in [[:Category:Intro/2.3]] respectively [[:Category:Depr/2.3]].
 
For changes with other version upgrades see [[Dev:changes]].


== Timetable subschema ==
== Timetable subschema ==


{{Missing information|topic=the all the TT's changes in railML's version 2.3|user=[[Benutzer:Vasco Paul Kolmorgen|Vasco Paul Kolmorgen]] ([[Benutzer Diskussion:Vasco Paul Kolmorgen|Diskussion]]) 18:29, 11. Feb. 2016 (CET)}}
{{Missing information|topic=the tickets {{ticket|258}} and {{ticket|241}}|user=[[Benutzer:Vasco Paul Kolmorgen|Vasco Paul Kolmorgen]] 10:49, 22. June 2016 (CET)}}
 
=== Upward compatibility ===
In principle {{rml}} provides an ''upward'' compatibility - e.g. a {{rml|2.2}} import interface would be able to process a {{rml|2.3}} file because only optional elements/attributes are added in a minor version. In principle this holds true for the changes in {{rml|2.3}}. However, the main changes for connections and cancellations are based on either additional data (cancellations) or missing data (external connections). With these changes the upward compatibility is no longer possible and as a consequence a {{rml|2.3}} file that is designed to be imported by a {{rml|2.2}} import interface must not:
* contain external connections with a missint @trainRef attribute
* contain connections with @nonConnection attribute value of true
* contain trains or trainParts with a @cancellation attribute value of true
 
=== Cancellation of {{TT:Doc|train}} or {{TT:Doc|trainPart}} ===
{{change
|fact=The new cancellation attribute of a {{TT:Tag|train}} or {{TT:Tag|trainPart}} can be used within one {{rml}} file without the need for the importing system to compare two files to identify cancellations.
|recommendation=Use the new {{Attr|cancellation }} attribute to mark a cancellation and provide it to an importing system that can handle cancellations.
'''NOTE:''' A {{rml|2.3}} export file will need to be adapted to the importing system - i.e. whether or not the system supports cancellations (2.3 import) or not (2.2 import with ''upward'' compatibility).
|ticket={{ticket|247}}
|commit={{SVN|612}}, {{SVN|613}}
|example=
<syntaxhighlight lang="xml">
<rail:trainPart id="CNL_242_2" trainNumber="242" description="CNL 242" timetablePeriodRef="J08" categoryRef="cCNL" cancellation="true">
  <rail:ocpsTT>
  ...
  </rail:ocpsTT>
</rail:trainPart>
</syntaxhighlight>
|xsd=timetableTypes.xsd
|nattr=<br>
* /timetable/trainParts/trainPart/@cancellation
* /timetable/trains/train/@cancellation
}}
 
=== Extend {{TT:Doc|connection}} element ===
{{change
|fact=The {{TT:Tag|connection}} element has been extended with new attributes as well as for partial exports.
|reason=Connection information needs to be provided for trains that are not part of the {{rml}} file as well as connections that shall not be used.
'''NOTE:''' A {{rml|2.3}} export file will need to be adapted to the importing system - i.e. whether or not the system supports extended connections (2.3 import) or not (2.2 import with ''upward'' compatibility).
|ticket={{ticket|244}}
|commit={{SVN|614}}, {{SVN|615}}, {{SVN|651}}
|xsd=timetableTypes.xsd
|uattr=connections/connection/@trainRef
|nattr=<br>
* connections/connection/@operatingPeriodRef
* connections/connection/@notGuaranteed
* connections/connection/@nonConnection
* connections/connection/@samePlatform
|nelem=<br>
* connections/connection/externalReference
** externalReference/tafTapTsiTrainID
** externalReference/trainNumber
** externalReference/lineNumber
** externalReference/information
}}


=== {{TT:Doc|tafTapTsiTrainID}} ===
=== {{TT:Doc|tafTapTsiTrainID}} ===
{|
{{change
|Fact:
|fact=The {{TT:Tag|tafTapTsiTrainID}} element has been introduced.
| The {{TT:Tag|tafTapTsiTrainID}} element has been introduced.
|recommendation=Use the new {{TT:Tag|tafTapTsiTrainID}} element for defining the unique train identifier for the unique train numbering.
|-
|ticket={{ticket|236}}
| Recommendation:
|commit={{SVN|641}}, {{SVN|644}}, {{SVN|652}}, {{SVN|655}}
| Use the new {{TT:Tag|tafTapTsiTrainID}} element for defining the unique train identifier for the unique train numbering.
|xsd=<br>
|-
* timetable.xsd
| Related Trac Tickets:
* timetableTypes.xsd
| [http://trac.railml.org/ticket/236 #236]
;@timetable.xsd
|-
| Related SVN Commits:
| [http://trac.railml.org/changeset/641/railML [641]]
|-
| timetable.xsd:
|
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<xs:train>
<xs:train>
Line 48: Line 95:
</xs:attributeGroup>
</xs:attributeGroup>
  </syntaxhighlight>
  </syntaxhighlight>
|
|example=
|-
| train element sample:
|
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
     <tafTapTsiTrainID objectType="TR" companyCode="0071" core="47110815ABCD" variant="01" timetableYear="2016" />
     <tafTapTsiTrainID objectType="TR" companyCode="0071" core="47110815ABCD" variant="01" timetableYear="2016" />
  </syntaxhighlight>
  </syntaxhighlight>
|}
|nelem=/timetable/trains/train/tafTapTsiTrainID
}}
 
=== Internal refactoring ===
{{change
|fact=There is no need for the complex type eAnnotationText element definition.
|recommendation=The type reference for the annotation text shall reference the tAnnotationText directly.
|ticket={{ticket|241}}
|commit={{SVN|605}}
|xsd=timetable.xsd
}}
 
=== Mark {{TT:Doc|trainPart}}/{{Attr|@operator}} as deprecated ===
{{change
|reason=With the introduction of the new {{TT:Tag|operationalUnitBinding}} element in {{rml|2.2}} the {{Attr|@operator}} attribute needs to be marked as deprecated.
|ticket={{ticket|258}}
|commit={{SVN|617}}
|xsd=timetableTypes.xsd
|uattr=timetable/trainParts/trainPart/@operator
}}
 
=== {{CO:Doc|usingAny}} for timetable ===
{{change
|fact=The timetable schema shall be extended to allow a general use of the any element/attribute ({{CO:Tag|usingAny}}).
|reason=All elements matching a set of defined rules will be extended so that there will be no need to create a new version for every element that needs to be extended.
|ticket={{ticket|268}} and {{ticket|267}}
|commit={{SVN|638}}
|xsd=<br>
* railwayBaseTypes.xsd
* genericRailML.xsd
* timetableTypes.xsd
* timetable.xsd
|uelem=<br>
* /timetablePeriods/timetablePeriod/holidays/holiday
* /operatingPeriods/operatingPeriod/operatingDay
* /operatingPeriods/operatingPeriod/operatingDay/operatingDayDeviance
* /operatingPeriods/operatingPeriod/specialService
* /trainParts/trainPart/formationTT
* /trainParts/trainPart/formationTT/equipmentUsage/equipment
* /trainParts/trainPart/formationTT/equipmentUsage/equipment/etcs
* /trainParts/trainPart/formationTT/passengerUsage
* /trainParts/trainPart/formationTT/passengerUsage/places
* /trainParts/trainPart/formationTT/reservationInfo/booking
* /trainParts/trainPart/ocpsTT/ocpTT/connections/connection
* /trainParts/trainPart/ocpsTT/ocpTT/statistics/statistic
* /trainParts/trainPart/ocpsTT/ocpTT/statistics/statistic/mean
* /trainParts/trainPart/ocpsTT/ocpTT/statistics/statistic/median
* /trainParts/trainPart/ocpsTT/ocpTT/statistics/statistic/standardDeviation
* /trainParts/trainPart/ocpsTT/ocpTT/statistics/statistic/statisticAnalyses
* /trainParts/trainPart/ocpsTT/ocpTT/sectionTT
* /trainParts/trainPart/ocpsTT/ocpTT/sectionTT/runTimes
* /trainParts/trainPart/ocpsTT/ocpTT/stopDescription
* /trainParts/trainPart/ocpsTT/ocpTT/stopDescription/stopTimes
* /trains/train/trainPartSequence
* /trains/train/trainPartSequence/brakeUsage
* /trains/train/trainPartSequence/brakeUsage/auxiliaryBrakes
* /rosterings/rostering/blockParts
* /rosterings/rostering/blocks/block/blockPartSequence
* /rosterings/rostering/circulations/circulation
}}


== Infrastructure subschema ==
== Infrastructure subschema ==


==={{IS:Doc|clearanceGauge}} and related===
{{change
|fact={{IS:Tag|clearanceGauge_infraAttributes}}, {{IS:Tag|clearanceGauge_clearanceGaugeChange}}, {{IS:Tag|clearanceGaugeChange}} and {{IS:Tag|clearanceGaugeChanges}} have been introduced.
|reason={{missing information|user=[[User:Ferri Leberl|Ferri Leberl]] ([[User talk:Ferri Leberl|talk]]) 13:14, 13 June 2017 (CEST)}}
|recomendation={{missing information|user=[[User:Ferri Leberl|Ferri Leberl]] ([[User talk:Ferri Leberl|talk]]) 13:14, 13 June 2017 (CEST)}}
|trac={{ticket|3}}
|svn={{missing information|user=[[User:Ferri Leberl|Ferri Leberl]] ([[User talk:Ferri Leberl|talk]]) 13:14, 13 June 2017 (CEST)}}
|example={{missing information|user=[[User:Ferri Leberl|Ferri Leberl]] ([[User talk:Ferri Leberl|talk]]) 13:14, 13 June 2017 (CEST)}}
}}
=== {{IS:Doc|trainRadio}}, {{IS:Doc|trainRadioChange}} ===
=== {{IS:Doc|trainRadio}}, {{IS:Doc|trainRadioChange}} ===
{|
{{change
|Fact:
|fact=The {{IS:Tag|trainRadio}} element and {{IS:Tag|trainRadioChange}} element have been introduced.
| The {{IS:Tag|trainRadio}} element and {{IS:Tag|trainRadioChange}} element have been introduced.
|recommendation=Use the new {{IS:Tag|trainRadio}} and {{IS:Tag|trainRadioChange}} elements for defining conditions describing the train radio conditions along the track.
|-
|ticket={{ticket|43}}
| Recommendation:
|commit={{SVN|630}}
| Use the new {{IS:Tag|trainRadio}} and {{IS:Tag|trainRadioChange}} elements for defining conditions describing the train radio conditions along the track.
|example=<br>
|-
;ocs element sample:
| Related Trac Tickets:
| [http://trac.railml.org/ticket/43 #43]
|-
| Related SVN Commits:
| [http://trac.railml.org/changeset/630/railML [630]]
|-
| ocs element sample:
|
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<ocsElements>
<ocsElements>
Line 83: Line 187:
</ocsElements>
</ocsElements>
</syntaxhighlight>
</syntaxhighlight>
|-
;infra attributes sample:
| infra attributes sample:
|
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<infraAttrGroups>
<infraAttrGroups>
Line 93: Line 195:
</infraAttrGroups>
</infraAttrGroups>
</syntaxhighlight>
</syntaxhighlight>
|}
}}


=== {{IS:Doc|speedChange}}/{{Attr|@vMax}} ===
=== {{IS:Doc|speedChange}}/{{Attr|@vMax}} ===
{|
{{change
|Fact:
|fact=The parameter {{Attr|vMax}} in the {{IS:Tag|speedChange}} element has been modified so that it can also handle the value "end".
| The parameter {{Attr|vMax}} in the {{IS:Tag|speedChange}} element has been modified so that it can also handle the value "end".
|recommendation=Use the new value "end" in order to mark the end of a temporary speed restriction.
|-
|ticket={{ticket|97}}
| Recommendation:
|commit={{SVN|609}}
| Use the new value "end" in order to mark the end of a temporary speed restriction.
|example=
|-
| Related Trac Tickets:
| [http://trac.railml.org/ticket/97 #97]
|-
| Related SVN Commits:
| [http://trac.railml.org/changeset/609/railML [609]]
|-
| sample:
|
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<speedChange id="sc7" pos="256.7" vMax="end" dir="up" />
<speedChange id="sc7" pos="256.7" vMax="end" dir="up" />
</syntaxhighlight>
</syntaxhighlight>
|}
}}


=== {{IS:Doc|radiusChange}}/{{Attr|@geometryElementDescription}} ===
=== {{IS:Doc|radiusChange}}/{{Attr|@geometryElementDescription}} ===
{|
{{change
|Fact:
|fact=A new attribute named {{Attr|geometryElementDescription}} has been added to the {{IS:Tag|radiusChange}} element. It is an enumeration parameter, which provides the following entries that enable a more detailed description of transition curves:
| A new attribute named {{Attr|geometryElementDescription}} has been added to the {{IS:Tag|radiusChange}} element. It is an enumeration parameter, which provides the following entries that enable a more detailed description of transition curves:
* TS_cubicParabola
* TS_cubicParabola
* TS_parabola4
* TS_parabola4
* TS_clothoide; the usually used transition curve in modern railways, see [https://en.wikipedia.org/wiki/Euler_spiral English Wikipedia] and {{Deu|[https://de.wikipedia.org/wiki/Klothoide#Anwendung_im_Verkehrswegebau German Wikipedia]}} description
* TS_clothoide; the usually used transition curve in modern railways, see {{wiki|Euler_spiral|Euler spiral}} and {{Deu|{{wiki|de:Klothoide#Anwendung_im_Verkehrswegebau|Klothoide (German)}}}} description
* TS_WienerBogen; a special transition curve used in Austria and Germany, see {{Deu|[https://de.wikipedia.org/wiki/Wiener_Bogen German Wikipedia]}} description
* TS_WienerBogen; a special transition curve used in Austria and Germany, see {{Deu|{{wiki|de:Wiener_Bogen|Wiener Bogen (German)}}}} description
* TS_BlossBogen; a special transition curve widely in Germany, see {{Deu|[https://de.wikipedia.org/wiki/Blossbogen German Wikipedia]}} description
* TS_BlossBogen; a special transition curve widely in Germany, see {{Deu|{{wiki|de:Blossbogen|Blossbogen (German)}}}} description
* TS_Sinusoide
* TS_Sinusoide
* TS_Cosinusoide
* TS_Cosinusoide
* SC
* SC
* (any other)
* (any other)
|-
|reason=So far, it was not possible to model transition curves in {{rml}} although they represent a basic track alignment feature.
| Reason:
|recommendation=Use the new {{Attr|geometryElementDescription}} attribute in the {{IS:Tag|radiusChange}} element for modelling the begin and end points of transition curves.
| So far, it was not possible to model transition curves in railML although they represent a basic track alignment feature.
|ticket={{ticket|251}}
|-
|commit={{SVN|616}}
| Recommendation:
|example=<br>
| Use the new {{Attr|geometryElementDescription}} attribute in the {{IS:Tag|radiusChange}} element for modelling the begin and end points of transition curves.
;sample for transition curve begin:
|-
| Related Trac Tickets:
| [http://trac.railml.org/ticket/251 #251]
|-
| Related SVN Commits:
| [http://trac.railml.org/changeset/616/railML [616]]
|-
| sample for transition curve begin:
|
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<radiusChange ... geometryElementDescription='TS_clothoide' />
<radiusChange ... geometryElementDescription='TS_clothoide' />
</syntaxhighlight>
</syntaxhighlight>
|-
;sample for transition curve end:
| sample for transition curve end:
|
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<radiusChange ... geometryElementDescription='SC' />
<radiusChange ... geometryElementDescription='SC' />
</syntaxhighlight>
</syntaxhighlight>
|}
}}


=== {{IS:Doc|tsi}} ===
=== {{IS:Doc|tsi}} ===
{|
{{change
|Fact:
|fact=The element {{IS:Tag|tsi}} has been marked deprecated.
| The element {{IS:Tag|tsi}} has been marked deprecated.
|reason=Elements dedicated for the usage in conjunction with TAP TSI shall be replaced by a more generic approach.
|-
|recommendation=Instead of the element {{IS:Tag|tsi}}, please use the {{IS:Tag|designator}} element with the new register entry "PLC" (Primary Location Code) for referencing a TAF TSI relevant name of an operational control point.
| Reason:
|ticket={{ticket|252}}
| Elements dedicated for the usage in conjunction with TAP TSI shall be replaced by a more generic approach.
|commit={{SVN|611}}
|-
|example=<br>
| Recommendation:
;old sample ({{rml|2.2}})
| Instead of the element {{IS:Tag|tsi}}, please use the {{IS:Tag|designator}} element with the new register entry "PLC" (Primary Location Code) for referencing a TAF TSI relevant name of an operational control point.
|-
| Related Trac Tickets:
| [http://trac.railml.org/ticket/252 #252]
|-
| Related SVN Commits:
| [http://trac.railml.org/changeset/611/railML [611]]
|-
| old sample (railML 2.2):
|
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<ocp ... name='Buchs (SG)' ...>
<ocp ... name='Buchs (SG)' ...>
Line 179: Line 250:
</ocp>
</ocp>
</syntaxhighlight>
</syntaxhighlight>
|-
;new sample ({{rml|2.3}})
| new sample (railML 2.3):
|
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<ocp ... name='Buchs (SG)' ...>
<ocp ... name='Buchs (SG)' ...>
Line 187: Line 256:
</ocp>
</ocp>
</syntaxhighlight>
</syntaxhighlight>
|}
}}


=== {{IS:Doc|line}}/{{Attr|@lineCategory}} ===
=== {{IS:Doc|line}}/{{Attr|@lineCategory}} ===
{|
{{change
|Fact:
|fact=The optional attribut {{Attr|lineCategory}} has been added to the parameters of the element {{IS:Tag|line}}.
| The optional attribut {{Attr|lineCategory}} has been added to the parameters of the element {{IS:Tag|line}}.
|reason=The European standard EN 15528 defines several line categories for classification of railway lines depending on allowed maximum axle load and meterload paramters.
|-
|recommendation=Use the new paramter {{Attr|lineCategory}} within the element {{IS:Tag|line}} to define a line category according to EN 15528. The following values are possible:
| Reason:
| The European standard EN 15528 defines several line categories for classification of railway lines depending on allowed maximum axle load and meterload paramters.
|-
|style="vertical-align:top" | Recommendation:
| Use the new paramter {{Attr|lineCategory}} within the element {{IS:Tag|line}} to define a line category according to EN 15528. The following values are possible:
* A
* A
* B1, B2
* B1, B2
Line 205: Line 269:
* E4, E5
* E4, E5
* (any other)
* (any other)
|-
|ticket={{ticket|259}}
| Related Trac Tickets:
|commit={{SVN|620}}, {{SVN|621}}, {{SVN|622}}
| [http://trac.railml.org/ticket/259 #259]
|example=
|-
| Related SVN Commits:
| [http://trac.railml.org/changeset/620/railML [620]], [http://trac.railml.org/changeset/621/railML [621]], [http://trac.railml.org/changeset/622/railML [622]]
|-
|style="vertical-align:top" | sample:
|
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<line ... lineCategory='E4' />
<line ... lineCategory='E4' />
</syntaxhighlight>
</syntaxhighlight>
|}
}}


=== {{IS:Doc|additionalName}}/{{Attr|@xml:lang}} ===
=== {{IS:Doc|additionalName}}/{{Attr|@xml:lang}} ===
{|
{{change
|Fact:
|fact=Although being optional, the attribut {{Attr|xml:lang}} should always be given in the {{IS:Tag|additionalName}} element.
| Although being optional, the attribut {{Attr|xml:lang}} should always be given in the {{IS:Tag|additionalName}} element.
|reason=In order to being able to correctly read the given additional name e.g. for an OCP, it is necessary to know in which language the additional name has been written.
|-
|recommendation=Always use the optional paramter {{Attr|xml:lang}} when using the element {{IS:Tag|additionalName}}.
| Reason:
|ticket={{ticket|263}}
| In order to being able to correctly read the given additional name e.g. for an OCP, it is necessary to know in which language the additional name has been written.
|commit={{SVN|629}}
|-
|example=
| Recommendation:
| Always use the optional paramter {{Attr|xml:lang}} when using the element {{IS:Tag|additionalName}}.
|-
| Related Trac Tickets:
| [http://trac.railml.org/ticket/263 #263]
|-
| Related SVN Commits:
| [http://trac.railml.org/changeset/629/railML [629]]
|-
| sample:
|
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<ocp id="ocp_ΑΘΗΝ" name="ΑΘΗΝΑ">
<ocp id="ocp_ΑΘΗΝ" name="ΑΘΗΝΑ">
Line 248: Line 295:
</ocp>
</ocp>
</syntaxhighlight>
</syntaxhighlight>
|}
}}


=== {{IS:Doc|crossedElement}} ===
=== {{IS:Doc|crossedElement}} ===
{|
{{change
|Fact:
|fact=New optional element {{IS:Doc|crossedElement}} has been added for the elements {{IS:Doc|levelCrossing}}, {{IS:Doc|brigde}} and {{IS:Doc|tunnel}}.
| New optional element {{IS:Doc|crossedElement}} has been added for the elements {{IS:Doc|levelCrossing}}, {{IS:Doc|bridge}} and {{IS:Doc|tunnel}}.
|reason=This implementation allows to model more specific information about natural and infrastructure landmarks that are crossed by a river, a railway line or a street.
|-
|recommendation=If you want to define information about a natural or infrastructure landmark that you are going to cross with your track, please use the new element {{IS:Tag|crossedElement}}.
| Reason:
|ticket={{ticket|271}}
| This implementation allows to model more specific information about natural and infrastructure landmarks that are crossed by a river, a railway line or a street.
|commit={{SVN|629}}
|-
|example=<br>
| Recommendation:
;sample for brigde{{sic}}
| If you want to define information about a natural or infrastructure landmark that you are going to cross with your track, please use the new element {{IS:Tag|crossedElement}}.
|-
| Related Trac Tickets:
| [http://trac.railml.org/ticket/271 #271]
|-
| Related SVN Commits:
| [http://trac.railml.org/changeset/629/railML [629]]
|-
| sample for bridge:
|
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<bridge id="br01" name="Marienbrücke" pos="2050">
<brigde id="br01" name="Marienbrücke" pos="2050">
   <crossedElements>
   <crossedElements>
     <crossedElement type="highway:cycleway" id="cw01" name="Elberadweg" pos="2200" />
     <crossedElement type="highway:cycleway" id="cw01" name="Elberadweg" pos="2200" />
Line 276: Line 313:
     <crossedElement type="natural:river" id="ri01" name="Elbe" pos="2100" />
     <crossedElement type="natural:river" id="ri01" name="Elbe" pos="2100" />
   </crossedElements>
   </crossedElements>
</bridge>
</brigde>
</syntaxhighlight>
</syntaxhighlight>
|}
}}


== Rollingstock subschema ==
== Rollingstock subschema ==


=== {{RS:Doc|vehicleIdentification}} ===
=== {{RS:Doc|vehicleIdentification}} ===
{|
{{change
|Fact:
|fact=The {{RS:Doc|vehicleIdentification}} element in the {{RS:Tag|operator}} was introduced for storing UIC numbers.
| The {{RS:Doc|vehicleIdentification}} element in the {{RS:Tag|operator}} was introduced for storing UIC numbers.
|reason=The UIC has developed two variants for unique identification numbers of vehicles, i.e. locomotives and wagons. Both types consists of 12 digits. As the identification encodes also the vehicle owner/operator it was included as part of the {{RS:Tag|operator}} element to have a clear relation to validity period.
|-
|recommendation=Use the new {{RS:Tag|vehicleIdentification}} element for each {{RS:Tag|operator}} element defined for the particular vehicle.
| Reason:
|commit={{SVN|643}}
| The UIC has developed two variants for unique identification numbers of vehicles, i.e. locomotives and wagons. Both types consists of 12 digits. As the identification encodes also the vehicle owner/operator it was included as part of the {{RS:Tag|operator}} element to have a clear relation to validity period.
|example=<br>
|-
;New sample ({{rml|2.3}})
| Recommendation:
| Use the new {{RS:Tag|vehicleIdentification}} element for each {{RS:Tag|operator}} element defined for the particular vehicle.
|-
| Related SVN Commits:
| [http://trac.assembla.com/railML/changeset/643 [643]]
|-
| New sample (railML 2.3):
|
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<operator ...>
<operator ...>
Line 303: Line 332:
</operator>
</operator>
</syntaxhighlight>
</syntaxhighlight>
|}
}}


=== {{RS:Doc|trainClearanceGauge}} ===
=== {{RS:Doc|trainClearanceGauge}} ===
{|
{{change
|Fact:
|fact=The {{RS:Doc|trainClearanceGauge}} element in the {{RS:Tag|wagon}} was introduced for storing the vehicle clearance gauge(s) in a unified way.
| The {{RS:Doc|trainClearanceGauge}} element in the {{RS:Tag|wagon}} was introduced for storing the vehicle clearance gauge(s) in a unified way.
|reason=There are several clearance gauges for railway vehicles defined in national or international regulations and standards. They are taken from the prepared code list to be comparable with similar data of a railway line.
|-
|recommendation=The use of the new {{RS:Tag|trainClearanceGauge}} shall only take elements out of the given list ''TrainClearanceGauges.xml''.
| Reason:
|ticket={{ticket|3}}
| There are several clearance gauges for railway vehicles defined in national or international regulations and standards. They are taken from the prepared code list to be comparable with similar data of a railway line.
|commit={{SVN|627}}, {{SVN|623}}
|-
|example=<br>
| Recommendation:
;New sample ({{rml|2.3}})
| The use of the new {{RS:Tag|trainClearanceGauge}} shall only take elements out of the given list ''TrainClearanceGauges.xml''.
|-
| Related Trac Tickets:
| [http://trac.assembla.com/railML/ticket/3 #3]
|-
| Related SVN Commits:
| [http://trac.assembla.com/railML/changeset/627 [627]], [http://trac.assembla.com/railML/changeset/623 [623]]
|-
| New sample (railML 2.3):
|
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<wagon ...>
<wagon ...>
Line 330: Line 349:
</wagon>
</wagon>
</syntaxhighlight>
</syntaxhighlight>
|}
}}


=== {{RS:Doc|maintenanceIntervals}} ===
=== {{RS:Doc|maintenanceIntervals}} ===
{|
{{change
|Fact:
|fact=The {{RS:Doc|maintenanceIntervals}} element in the {{RS:Tag|vehicle}} was introduced for storing individual maintenance intervals of railway vehicles.
| The {{RS:Doc|maintenanceIntervals}} element in the {{RS:Tag|vehicle}} was introduced for storing individual maintenance intervals of railway vehicles.
|reason=For the asset management of railway vehicles it shall be possible to store individual maintenance intervals with the vehicle data.
|-
|ticket={{ticket|77}}
| Reason:
|commit={{SVN|624}}
| For the asset management of railway vehicles it shall be possible to store individual maintenance intervals with the vehicle data.
|example=<br>
|-
;New sample ({{rml|2.3}})
| Related Trac Tickets:
| [http://trac.assembla.com/railML/ticket/77 #77]
|-
| Related SVN Commits:
| [http://trac.assembla.com/railML/changeset/624 [624]]
|-
| New sample (railML 2.3):
|
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<vehicle ...>
<vehicle ...>
Line 356: Line 367:
</vehicle>
</vehicle>
</syntaxhighlight>
</syntaxhighlight>
|}
}}


== Common subschema ==
== Common subschema ==


{{Missing information|topic=the CO's changes in railML's version 2.3|user=[[Benutzer:Vasco Paul Kolmorgen|Vasco Paul Kolmorgen]] ([[Benutzer Diskussion:Vasco Paul Kolmorgen|Diskussion]]) 18:29, 11. Feb. 2016 (CET)}}
=== Codelists ===
=== Codelists ===
{|
{{change
|- style="vertical-align:top;"
|fact=[[dev:Codelists|Codelist]] XSD and XML files have been moved to a common folder called ''codelists''. Each codelist will get the name describing its content.
|Fact:
|recommendation=Update references to the new codelists folder as well as the updated file names:
| Codelist XSD and XML files have been moved to a common folder called ''codelists''. Each codelist will get the name describing its content.
|- style="vertical-align:top;"
| Recommendation:
| Update references to the new codelists folder as well as the updated file names:
* codelists/InfrastructureManagers.xml
* codelists/InfrastructureManagers.xml
* codelists/InfrastructureManagers.xsd
* codelists/InfrastructureManagers.xsd
Line 376: Line 382:
* codelists/TrainProtectionSystems.xml
* codelists/TrainProtectionSystems.xml
* codelists/TrainProtectionSystems.xsd .
* codelists/TrainProtectionSystems.xsd .
|-
|ticket={{ticket|272}}
| Related Trac Tickets:
|commit={{SVN|631}}, {{SVN|632}}, {{SVN|637}}, {{SVN|653}}
| [http://trac.railml.org/ticket/272 #272]
}}
|-
| Related SVN Commits:
| [http://trac.railml.org/changeset/631/railML [631]], [http://trac.railml.org/changeset/632/railML [632]], [http://trac.railml.org/changeset/637/railML [637]], [http://trac.railml.org/changeset/653/railML [653]]
|}


=== {{CO:Doc|tafTapTsiCompanyCode}} ===
=== {{CO:Doc|companyCode}} ===
{|
{{change
|- style="vertical-align:top;"
|fact=The codelist for infrastructure managers has been extended to include a 'TAF TAP TSI / UIC company code' -
|Fact:
|recommendation=Existing codes have been added to the InfrastructureManagers.xml file and can be used by importing systems.
| The codelist for infrastructure managers has been extended to include a 'TAF TAP TSI / UIC company code' -
|ticket={{ticket|272}}
|- style="vertical-align:top;"
|commit={{SVN|632}}, {{SVN|653}}, {{SVN|656}}, {{SVN|657}}
| Recommendation:
|xsd=<br>
| Existing codes have been added to the InfrastructureManagers.xml file and can be used by importing systems.
*InfrastructureManagers.xsd<syntaxhighlight lang="xml">
|-
| Related Trac Tickets:
| [http://trac.railml.org/ticket/272 #272]
|-
| Related SVN Commits:
| [http://trac.railml.org/changeset/632/railML [632]], [http://trac.railml.org/changeset/653/railML [653]], [http://trac.railml.org/changeset/656/railML [656]], [http://trac.railml.org/changeset/657/railML [657]]
|- style="vertical-align:top;"
| style="padding-top:14px;" | InfrastructureManagers.xsd
|
<syntaxhighlight lang="xml">
<xs:element name="companyCode" type="railcode:tCompanyCode" minOccurs="0">
<xs:element name="companyCode" type="railcode:tCompanyCode" minOccurs="0">
   <xs:annotation>
   <xs:annotation>
Line 415: Line 407:
</xs:simpleType>
</xs:simpleType>
</syntaxhighlight>
</syntaxhighlight>
|- style="vertical-align:top;"
*InfrastructureManagers.xml<syntaxhighlight lang="xml">
| style="padding-top:14px;" | InfrastructureManagers.xml
|
<syntaxhighlight lang="xml">
<infrastructureManager code="ADF">
<infrastructureManager code="ADF">
   <name xs:lang="es">Administrador de Infraestructuras Ferroviarias</name>
   <name xml:lang="es">Administrador de Infraestructuras Ferroviarias</name>
   <name xs:lang="en">Administrator of Railway Network</name>  
   <name xml:lang="en">Administrator of Railway Network</name>  
   <isoCountryCode>ES</isoCountryCode>
   <isoCountryCode>ES</isoCountryCode>
   <companyCode>0071</companyCode>
   <companyCode>0071</companyCode>
</infrastructureManager>
</infrastructureManager>
</syntaxhighlight>
</syntaxhighlight>
|-
}}
|}
 
=== New attributes for places and services ===
{{change
|fact=Additional commercial attributes from TAP TSI
* rail:aPlaces shall be modified in such a way that the values of the corresponding TAP TSI code list B.4.9039 can be accomodated.
* rail:aServices shall be modified in such a way that the values of the corresponding TAP TSI code list B.4.7161 can be accomodated.
|reason=The elements for places (RS:{{RS:Doc|places}}, TT:{{TT:Doc|places}}) and services (RS:{{RS:Doc|service|passenger}}, TT:{{TT:Doc|service}}) shall be extended to allow specification of TAP TSI specific codes.
The new attribute will be available for both the definition for rolling stock (RS) as well as for timetable (TT).
|ticket={{ticket|250}}
|commit={{SVN|618}}, {{SVN|633}}, {{SVN|634}}, {{SVN|635}}, {{SVN|636}}, {{SVN|654}}
|xsd=railwayBaseTypes.xsd
|nattr=<br>
* /rollingstock/vehicles/vehicle/wagon/passenger/places/@tapTsiType9039Code
* /rollingstock/vehicles/vehicle/wagon/passenger/service/@tapTsiType7161Code
* /timetable/trainParts/trainPart/formationTT/passengerUsage/places/@tapTsiType9039Code
* /timetable/trainParts/trainPart/formationTT/passengerUsage/service/@tapTsiType7161Code
}}
 


[[Category:GeneralDescription]]
[[Category:GeneralDescription]]

Latest revision as of 18:57, 22 January 2024

railML® schema changes between railML® 2.2 and railML® 2.3
 

This site is intended to collect the schema changes between railML® 2.2 and railML® 2.3 by topics, that influence the XML output.

A complete diff comparison can be found under Dev:changes/2.3/diff

Changes are also marked on the element pages with (introduced with version 2.3) for introduced components and (deprecated with version 2.3) for components that became obsolete. All occurances of these tags are listed in Category:Intro/2.3 respectively Category:Depr/2.3.

For changes with other version upgrades see Dev:changes.

Timetable subschema

Missinginformation.png In this article there is information missing with respect to the tickets #258 and #241. Please help improving the railML® wiki by filling the gaps. Possibly, you will find further details on the discussion pageVasco Paul Kolmorgen 10:49, 22. June 2016 (CET)

Upward compatibility

In principle railML® provides an upward compatibility - e.g. a railML® 2.2 import interface would be able to process a railML® 2.3 file because only optional elements/attributes are added in a minor version. In principle this holds true for the changes in railML® 2.3. However, the main changes for connections and cancellations are based on either additional data (cancellations) or missing data (external connections). With these changes the upward compatibility is no longer possible and as a consequence a railML® 2.3 file that is designed to be imported by a railML® 2.2 import interface must not:

  • contain external connections with a missint @trainRef attribute
  • contain connections with @nonConnection attribute value of true
  • contain trains or trainParts with a @cancellation attribute value of true

Cancellation of train or trainPart

Fact: The new cancellation attribute of a <train> or <trainPart> can be used within one railML® file without the need for the importing system to compare two files to identify cancellations.
Recommendation: Use the new cancellation attribute to mark a cancellation and provide it to an importing system that can handle cancellations.

NOTE: A railML® 2.3 export file will need to be adapted to the importing system - i.e. whether or not the system supports cancellations (2.3 import) or not (2.2 import with upward compatibility).

Related Development Tickets: #247
Related Commits: [612] (Note on legacy SVN commits), [613] (Note on legacy SVN commits)
Example:
 <rail:trainPart id="CNL_242_2" trainNumber="242" description="CNL 242" timetablePeriodRef="J08" categoryRef="cCNL" cancellation="true">
  <rail:ocpsTT>
  ...
  </rail:ocpsTT>
 </rail:trainPart>
Updated XSD file(s): timetableTypes.xsd
New attribute(s):
  • /timetable/trainParts/trainPart/@cancellation
  • /timetable/trains/train/@cancellation

Extend connection element

Fact: The <connection> element has been extended with new attributes as well as for partial exports.
Reason: Connection information needs to be provided for trains that are not part of the railML® file as well as connections that shall not be used.

NOTE: A railML® 2.3 export file will need to be adapted to the importing system - i.e. whether or not the system supports extended connections (2.3 import) or not (2.2 import with upward compatibility).

Related Development Tickets: #244
Related Commits: [614] (Note on legacy SVN commits), [615] (Note on legacy SVN commits), [651] (Note on legacy SVN commits)
Updated XSD file(s): timetableTypes.xsd
New attribute(s):
  • connections/connection/@operatingPeriodRef
  • connections/connection/@notGuaranteed
  • connections/connection/@nonConnection
  • connections/connection/@samePlatform
Updated attribute(s): connections/connection/@trainRef
New element(s):
  • connections/connection/externalReference
    • externalReference/tafTapTsiTrainID
    • externalReference/trainNumber
    • externalReference/lineNumber
    • externalReference/information

tafTapTsiTrainID

Fact: The <tafTapTsiTrainID> element has been introduced.
Recommendation: Use the new <tafTapTsiTrainID> element for defining the unique train identifier for the unique train numbering.
Related Development Tickets: #236
Related Commits: [641] (Note on legacy SVN commits), [644] (Note on legacy SVN commits), [652] (Note on legacy SVN commits), [655] (Note on legacy SVN commits)
Example:
    <tafTapTsiTrainID objectType="TR" companyCode="0071" core="47110815ABCD" variant="01" timetableYear="2016" />
Updated XSD file(s):
  • timetable.xsd
  • timetableTypes.xsd
@timetable.xsd
<xs:train>
....
<xs:element name="tafTapTsiTrainID" type="rail:eTapTsiTransportOperationalIdentifier" minOccurs="0" maxOccurs="1">
     <xs:annotation>
        <xs:documentation>Optional information corresponding to the TAF/TAP TSI train ID.</xs:documentation>
     </xs:annotation>
</xs:element>
....
</xs:train>

<xs:attributeGroup name="aTapTsiCompositIdentifierOperationalType">
    <xs:annotation>
         <xs:documentation>Used for unique identification of the objects handled in the messages such as train, path, path request or case refernce.</xs:documentation>
    </xs:annotation>
    <xs:attribute name="objectType" type="rail:tTapTsiObjectType" use="required"/>
    <xs:attribute name="companyCode" type="rail:tCompanyCode" use="required"/>
    <xs:attribute name="core" type="rail:tTapTsiCore" use="required"/>
    <xs:attribute name="variant" type="rail:tTapTsiVariant" use="required"/>
    <xs:attribute name="timetableYear" type="rail:tTapTsiTimetableYear" use="required"/>
    <xs:attribute name="startDate" type="rail:tTapTsiStartDate" use="optional"/>
</xs:attributeGroup>
New element(s): /timetable/trains/train/tafTapTsiTrainID

Internal refactoring

Fact: There is no need for the complex type eAnnotationText element definition.
Recommendation: The type reference for the annotation text shall reference the tAnnotationText directly.
Related Development Tickets: #241
Related Commits: [605] (Note on legacy SVN commits)
Updated XSD file(s): timetable.xsd

Mark trainPart/@operator as deprecated

Reason: With the introduction of the new <operationalUnitBinding> element in railML® 2.2 the @operator attribute needs to be marked as deprecated.
Related Development Tickets: #258
Related Commits: [617] (Note on legacy SVN commits)
Updated XSD file(s): timetableTypes.xsd
Updated attribute(s): timetable/trainParts/trainPart/@operator

usingAny for timetable

Fact: The timetable schema shall be extended to allow a general use of the any element/attribute (<usingAny>).
Reason: All elements matching a set of defined rules will be extended so that there will be no need to create a new version for every element that needs to be extended.
Related Development Tickets: #268 and #267
Related Commits: [638] (Note on legacy SVN commits)
Updated XSD file(s):
  • railwayBaseTypes.xsd
  • genericRailML.xsd
  • timetableTypes.xsd
  • timetable.xsd
Updated element(s):
  • /timetablePeriods/timetablePeriod/holidays/holiday
  • /operatingPeriods/operatingPeriod/operatingDay
  • /operatingPeriods/operatingPeriod/operatingDay/operatingDayDeviance
  • /operatingPeriods/operatingPeriod/specialService
  • /trainParts/trainPart/formationTT
  • /trainParts/trainPart/formationTT/equipmentUsage/equipment
  • /trainParts/trainPart/formationTT/equipmentUsage/equipment/etcs
  • /trainParts/trainPart/formationTT/passengerUsage
  • /trainParts/trainPart/formationTT/passengerUsage/places
  • /trainParts/trainPart/formationTT/reservationInfo/booking
  • /trainParts/trainPart/ocpsTT/ocpTT/connections/connection
  • /trainParts/trainPart/ocpsTT/ocpTT/statistics/statistic
  • /trainParts/trainPart/ocpsTT/ocpTT/statistics/statistic/mean
  • /trainParts/trainPart/ocpsTT/ocpTT/statistics/statistic/median
  • /trainParts/trainPart/ocpsTT/ocpTT/statistics/statistic/standardDeviation
  • /trainParts/trainPart/ocpsTT/ocpTT/statistics/statistic/statisticAnalyses
  • /trainParts/trainPart/ocpsTT/ocpTT/sectionTT
  • /trainParts/trainPart/ocpsTT/ocpTT/sectionTT/runTimes
  • /trainParts/trainPart/ocpsTT/ocpTT/stopDescription
  • /trainParts/trainPart/ocpsTT/ocpTT/stopDescription/stopTimes
  • /trains/train/trainPartSequence
  • /trains/train/trainPartSequence/brakeUsage
  • /trains/train/trainPartSequence/brakeUsage/auxiliaryBrakes
  • /rosterings/rostering/blockParts
  • /rosterings/rostering/blocks/block/blockPartSequence
  • /rosterings/rostering/circulations/circulation

Infrastructure subschema

clearanceGauge and related

Fact: <clearanceGauge_infraAttributes>, <clearanceGauge_clearanceGaugeChange>, <clearanceGaugeChange> and <clearanceGaugeChanges> have been introduced.
Reason:
Missinginformation.png In this article there is information missing. Please help improving the railML® wiki by filling the gaps. Possibly, you will find further details on the discussion pageFerri Leberl (talk) 13:14, 13 June 2017 (CEST)
Recommendation:
Missinginformation.png In this article there is information missing. Please help improving the railML® wiki by filling the gaps. Possibly, you will find further details on the discussion pageFerri Leberl (talk) 13:14, 13 June 2017 (CEST)
Related Development Tickets: #3
Related Commits:
Missinginformation.png In this article there is information missing. Please help improving the railML® wiki by filling the gaps. Possibly, you will find further details on the discussion pageFerri Leberl (talk) 13:14, 13 June 2017 (CEST)
Example:
Missinginformation.png In this article there is information missing. Please help improving the railML® wiki by filling the gaps. Possibly, you will find further details on the discussion pageFerri Leberl (talk) 13:14, 13 June 2017 (CEST)

trainRadio, trainRadioChange

Fact: The <trainRadio> element and <trainRadioChange> element have been introduced.
Recommendation: Use the new <trainRadio> and <trainRadioChange> elements for defining conditions describing the train radio conditions along the track.
Related Development Tickets: #43
Related Commits: [630] (Note on legacy SVN commits)
Example:
ocs element sample
<ocsElements>
  <trainRadioChanges>
    <trainRadioChange id="trc01" pos="57.46" dir="up" radioSystem="GSM-R" broadcastCalls="true">
    </trainRadioChange>
  </trainRadioChanges>
</ocsElements>
infra attributes sample
<infraAttrGroups>
  <infraAttributes id="ia01">
    <trainRadio radioSystem="GSM-R" broadcastCalls="true" />
  </infraAttributes>
</infraAttrGroups>

speedChange/@vMax

Fact: The parameter vMax in the <speedChange> element has been modified so that it can also handle the value "end".
Recommendation: Use the new value "end" in order to mark the end of a temporary speed restriction.
Related Development Tickets: #97
Related Commits: [609] (Note on legacy SVN commits)
Example:
<speedChange id="sc7" pos="256.7" vMax="end" dir="up" />

radiusChange/@geometryElementDescription

Fact: A new attribute named geometryElementDescription has been added to the <radiusChange> element. It is an enumeration parameter, which provides the following entries that enable a more detailed description of transition curves:
  • TS_cubicParabola
  • TS_parabola4
  • TS_clothoide; the usually used transition curve in modern railways, see Euler spiral (Wiki banner.png) and Klothoide (German) (Wiki banner.png) description
  • TS_WienerBogen; a special transition curve used in Austria and Germany, see Wiener Bogen (German) (Wiki banner.png) description
  • TS_BlossBogen; a special transition curve widely in Germany, see Blossbogen (German) (Wiki banner.png) description
  • TS_Sinusoide
  • TS_Cosinusoide
  • SC
  • (any other)
Reason: So far, it was not possible to model transition curves in railML® although they represent a basic track alignment feature.
Recommendation: Use the new geometryElementDescription attribute in the <radiusChange> element for modelling the begin and end points of transition curves.
Related Development Tickets: #251
Related Commits: [616] (Note on legacy SVN commits)
Example:
sample for transition curve begin
<radiusChange ... geometryElementDescription='TS_clothoide' />
sample for transition curve end
<radiusChange ... geometryElementDescription='SC' />

tsi

Fact: The element <tsi> has been marked deprecated.
Reason: Elements dedicated for the usage in conjunction with TAP TSI shall be replaced by a more generic approach.
Recommendation: Instead of the element <tsi>, please use the <designator> element with the new register entry "PLC" (Primary Location Code) for referencing a TAF TSI relevant name of an operational control point.
Related Development Tickets: #252
Related Commits: [611] (Note on legacy SVN commits)
Example:
old sample (railML® 2.2)
<ocp ... name='Buchs (SG)' ...>
  <tsi country='85' location='09404' check='' />
</ocp>
new sample (railML® 2.3)
<ocp ... name='Buchs (SG)' ...>
  <designator register='PLC' entry='CH9404' />
</ocp>

line/@lineCategory

Fact: The optional attribut lineCategory has been added to the parameters of the element <line>.
Reason: The European standard EN 15528 defines several line categories for classification of railway lines depending on allowed maximum axle load and meterload paramters.
Recommendation: Use the new paramter lineCategory within the element <line> to define a line category according to EN 15528. The following values are possible:
  • A
  • B1, B2
  • C2, C3, C4
  • D2, D3, D4, D4xL
  • E4, E5
  • (any other)
Related Development Tickets: #259
Related Commits: [620] (Note on legacy SVN commits), [621] (Note on legacy SVN commits), [622] (Note on legacy SVN commits)
Example:
<line ... lineCategory='E4' />

additionalName/@xml:lang

Fact: Although being optional, the attribut xml:lang should always be given in the <additionalName> element.
Reason: In order to being able to correctly read the given additional name e.g. for an OCP, it is necessary to know in which language the additional name has been written.
Recommendation: Always use the optional paramter xml:lang when using the element <additionalName>.
Related Development Tickets: #263
Related Commits: [629] (Note on legacy SVN commits)
Example:
<ocp id="ocp_ΑΘΗΝ" name="ΑΘΗΝΑ">
  <additionalName name="Ἀθῆναι" xml:lang="grc"/>
  <additionalName name="ΑΘΗΝΑ" xml:lang="el-Grek"/>
  <additionalName name="ATHINA" xml:lang="el-Latn"/>
  <additionalName name="Athens" xml:lang="en"/>
  <additionalName name="Athen" xml:lang="de"/>
  <additionalName name="Athènes" xml:lang="fr"/>
</ocp>

crossedElement

Fact: New optional element crossedElement has been added for the elements levelCrossing, brigde and tunnel.
Reason: This implementation allows to model more specific information about natural and infrastructure landmarks that are crossed by a river, a railway line or a street.
Recommendation: If you want to define information about a natural or infrastructure landmark that you are going to cross with your track, please use the new element <crossedElement>.
Related Development Tickets: #271
Related Commits: [629] (Note on legacy SVN commits)
Example:
sample for brigde[Sic!]
<brigde id="br01" name="Marienbrücke" pos="2050">
  <crossedElements>
    <crossedElement type="highway:cycleway" id="cw01" name="Elberadweg" pos="2200" />
    <crossedElement type="highway:road" id="rd01" name="B6" pos="2150" />
    <crossedElement type="natural:river" id="ri01" name="Elbe" pos="2100" />
  </crossedElements>
</brigde>

Rollingstock subschema

vehicleIdentification

Fact: The vehicleIdentification element in the <operator> was introduced for storing UIC numbers.
Reason: The UIC has developed two variants for unique identification numbers of vehicles, i.e. locomotives and wagons. Both types consists of 12 digits. As the identification encodes also the vehicle owner/operator it was included as part of the <operator> element to have a clear relation to validity period.
Recommendation: Use the new <vehicleIdentification> element for each <operator> element defined for the particular vehicle.
Related Development Tickets: #271
Related Commits: [643] (Note on legacy SVN commits)
Example:
New sample (railML® 2.3)
<operator ...>
  <vehicleIdentification uicIdentNumber='978081940527' countryCode='D' vehicleKeeperMarking='LEG' />
</operator>

trainClearanceGauge

Fact: The trainClearanceGauge element in the <wagon> was introduced for storing the vehicle clearance gauge(s) in a unified way.
Reason: There are several clearance gauges for railway vehicles defined in national or international regulations and standards. They are taken from the prepared code list to be comparable with similar data of a railway line.
Recommendation: The use of the new <trainClearanceGauge> shall only take elements out of the given list TrainClearanceGauges.xml.
Related Development Tickets: #3
Related Commits: [627] (Note on legacy SVN commits), [623] (Note on legacy SVN commits)
Example:
New sample (railML® 2.3)
<wagon ...>
  <trainClearanceGauge code='GC' />
  <trainClearanceGauge code='DE2' />
</wagon>

maintenanceIntervals

Fact: The maintenanceIntervals element in the <vehicle> was introduced for storing individual maintenance intervals of railway vehicles.
Reason: For the asset management of railway vehicles it shall be possible to store individual maintenance intervals with the vehicle data.
Related Development Tickets: #77
Related Commits: [624] (Note on legacy SVN commits)
Example:
New sample (railML® 2.3)
<vehicle ...>
  <maintenanceIntervals>
    <maintenanceInterval id='RSMI1' name='R1' maximumIntervalDays='365' maximumIntervalDistance='20000'/>
    <maintenanceInterval id='RSMI2' name='S1' maximumIntervalDays='730' maximumIntervalDistance='50000'/>
  </maintenanceIntervals>
</vehicle>

Common subschema

Codelists

Fact: Codelist XSD and XML files have been moved to a common folder called codelists. Each codelist will get the name describing its content.
Recommendation: Update references to the new codelists folder as well as the updated file names:
  • codelists/InfrastructureManagers.xml
  • codelists/InfrastructureManagers.xsd
  • codelists/ListBaseTypes.xsd
  • codelists/Registers.xml
  • codelists/Registers.xsd
  • codelists/TrainProtectionSystems.xml
  • codelists/TrainProtectionSystems.xsd .
Related Development Tickets: #272
Related Commits: [631] (Note on legacy SVN commits), [632] (Note on legacy SVN commits), [637] (Note on legacy SVN commits), [653] (Note on legacy SVN commits)

companyCode

Fact: The codelist for infrastructure managers has been extended to include a 'TAF TAP TSI / UIC company code' -
Recommendation: Existing codes have been added to the InfrastructureManagers.xml file and can be used by importing systems.
Related Development Tickets: #272
Related Commits: [632] (Note on legacy SVN commits), [653] (Note on legacy SVN commits), [656] (Note on legacy SVN commits), [657] (Note on legacy SVN commits)
Updated XSD file(s):
  • InfrastructureManagers.xsd
    <xs:element name="companyCode" type="railcode:tCompanyCode" minOccurs="0">
      <xs:annotation>
        <xs:documentation>company codes according TAP TSI B.8 and UIC IRS/leaflet 920-1:2006</xs:documentation>
      </xs:annotation>
    </xs:element>
    ...
    <xs:simpleType name="tCompanyCode">
      <xs:restriction base="xs:string">
        <xs:length value="4"/>
        <xs:pattern value="[0-9]{4}"/>
      </xs:restriction>
    </xs:simpleType>
  • InfrastructureManagers.xml
    <infrastructureManager code="ADF">
      <name xml:lang="es">Administrador de Infraestructuras Ferroviarias</name>
      <name xml:lang="en">Administrator of Railway Network</name> 
      <isoCountryCode>ES</isoCountryCode>
      <companyCode>0071</companyCode>
    </infrastructureManager>

New attributes for places and services

Fact: Additional commercial attributes from TAP TSI
  • rail:aPlaces shall be modified in such a way that the values of the corresponding TAP TSI code list B.4.9039 can be accomodated.
  • rail:aServices shall be modified in such a way that the values of the corresponding TAP TSI code list B.4.7161 can be accomodated.
Reason: The elements for places (RS:places, TT:places) and services (RS:service, TT:service) shall be extended to allow specification of TAP TSI specific codes.

The new attribute will be available for both the definition for rolling stock (RS) as well as for timetable (TT).

Related Development Tickets: #250
Related Commits: [618] (Note on legacy SVN commits), [633] (Note on legacy SVN commits), [634] (Note on legacy SVN commits), [635] (Note on legacy SVN commits), [636] (Note on legacy SVN commits), [654] (Note on legacy SVN commits)
Updated XSD file(s): railwayBaseTypes.xsd
New attribute(s):
  • /rollingstock/vehicles/vehicle/wagon/passenger/places/@tapTsiType9039Code
  • /rollingstock/vehicles/vehicle/wagon/passenger/service/@tapTsiType7161Code
  • /timetable/trainParts/trainPart/formationTT/passengerUsage/places/@tapTsiType9039Code
  • /timetable/trainParts/trainPart/formationTT/passengerUsage/service/@tapTsiType7161Code