Dev:changes/2.4

From railML 2 Wiki
Jump to navigation Jump to search
RailML Trademark RGB V2.png
XML Railway exchange format
https://railML.org
Latest release: 2.5
(September 1st, 2021)
 
Main Menu
 
Subschemas
XML tree
UML diagrams
Use cases
Versions & Changes

railML® schema changes between railML® 2.3 and railML® 2.4
 

This site is intended to collect the schema changes between railML® 2.3 and railML® 2.4.

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

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

For changes with other version upgrades see Dev:changes.

Timetable Subschema

Missinginformation.png In this article there is information missing with respect to last TT changes after June 1st, 2018 between railML® 2.3 and 2.4. Please help improving the railML® wiki by filling the gaps. Possibly, you will find further details on the discussion pageCoordination (talk) 15:59, 11 October 2018 (CEST)
Fact: <places>@category has been extended to allow for values related to TAF TAP categories
Reason: The demand for more distinguished categories appeared in this discussion (link to the railML® website)
Related Development Tickets: #250
Related Commits: [618] (Note on legacy SVN commits)
New attribute(s): <places>@tapTsiType9039Code
Updated attribute(s): <places>@category
Updated element(s): <places>

Element <stopDescription> has been expanded by the children <stopActivities>

Fact: The new element <stopActivities> can be used to group <stopActivity>-elements which describe the purposes of a stop more detailed. The detailed purpose of a stop is described in the attribute type of a <stopActivity>. For the possible values for attribute type, a list of values has been drawn up to illustrate the most common holding purposes of various companies.
Recommendation: Use the new <stopActivity>-elements to describe the detailed purposes of a stop. Use if possible the standard values for the attribute type of <stopActivity>-elements.
ocpTT element sample:
<ocpTT offset="383.220001" alignment="center" ocpType="begin" ocpRef="ocp-35154097">
	<times scope="published" departure="00:22:00"/>
	<sectionTT>
		<trackRef ref="gleiskante1027"/>
		<runTimes minimalTime="PT84S"/>
	</sectionTT>
	<stopDescription onOff="both" commercial="true">
		<stopTimes minimalTime="PT180S"/>
		<stopActivities>
			<stopActivity type="reverse"/>
			<stopActivity type="crewChange"/>
		</stopActivities>
	</stopDescription>
</ocpTT>
Updated XSD file(s): timetableTypes.xsd
New attributes:
  • /ocpTT/stopDescription/stopActivities/stopActivity@type
New elements:
  • /ocpTT/stopDescription/stopActivities
  • /ocpTT/stopDescription/stopActivities/stopActivity

Element <stopDescription> has been expanded by the children <trackInfo>

Fact: The new element <trackInfo> can be used to specify seasonal track usage. That means that it is now possible to specify a train to arrive at a station at one track in general but during a certain time, specified via a reference to an operating period, to arrive at a different track without the need to break apart the <trainPart>.
ocpTT element sample:
<trainPart id="..." >
    <operatingPeriodRef ref="op_Daily" />
      <ocpsTT>
	...
        <ocpTT sequence="23" ocpRef="ocp_FF" ocpType="stop">
	  <times scope="scheduled" arrival="12:23:36" departure="12:25:48"/>
	  <stopDescription commercial="true">
	    <trackInfo operatingPeriodRef="op_Monday-Friday" track="Track 4" />
	    <trackInfo operatingPeriodRef="op_Saturday+Sunday_in_Winter" track="Track 7" platform="7A" />
	    <trackInfo operatingPeriodRef="op_Saturday+Sunday_in_Summer" track="Track 5" platform="5.1" />
	  </stopDescription>
	</ocpTT>
        ...
    </ocpsTT>
</trainPart>
Updated XSD file(s):
  • timetable.xsd
  • timetableTypes.xsd
New attributes:
  • /ocpTT/stopDescription/trackInfo@operatingPeriodRef
  • /ocpTT/stopDescription/trackInfo@track
  • /ocpTT/stopDescription/trackInfo@platform
New elements:
  • /ocpTT/stopDescription/trackInfo

Element <trainPartSequence> has been expanded by the children <topologyReference>

Fact: With the new <topologyReference> element, the underlying topology used to determine the route and calculate journey times can be referenced. A <topologyReference> can be set for a <trainPartSequence>. By specifying the attributes register and entry, the version(s) and/or variant(s) to be used are referenced within the external topology. This presupposes that the reading system also knows the topology register and can interpret the version(s)/variant(s). If the validity periods are not uniquely defined by the specifications register and entry, they must be specified using the attributes startDate and EndDate. If several references are specified, they must have disjoint validity periods and, in combination, cover at least the operating days of the train.
train element sample:
<train type="operational" id="train-1455532037" processStatus="actual">
    <trainPartSequence sequence="1">
        <trainPartRef ref="train-part-1" />
        <topologyReference register="UNO" entry="183000-01012017" startDate="2017-02-01" endDate="2017-08-31" />
        <topologyReference register="UNO" entry="120000-08012017" startDate="2017-09-01" endDate="2017-12-31" />
    </trainPartSequence>
</train>
Updated XSD file(s): timetableTypes.xsd
New attributes:
  • /train/trainPartSequence/topologyReference@register
  • /train/trainPartSequence/topologyReference@entry
  • /train/trainPartSequence/topologyReference@startDate
  • /train/trainPartSequence/topologyReference@endDate
New elements:
  • /train/trainPartSequence/topologyReference

Element <train> has been expanded by the children <replacements>

Fact: The new <replacements> element is used to group <replacementOf> elements within <train> elements. Using the element <replacementOf> a relationship is defined between the train described in the XML tree and a train that has been cancelled or partially cancelled. The meaning of the relationship is that the train described in the XML tree replaces the cancelled train or the cancelled parts of a train (specified by <uniqueTrainKey> or <tafTapTsiTrainID>) on the specified operating days (specified by <operatingPeriodRef>)
train element sample:
<train id="train-zug-BLSP-90111-001" 
    trainNumber="90111" 
    additionalTrainNumber="1" 
    cancellation="false"
    processStatus="actual"
    description="Bern-Muensingen-Thun">
     <trainPartSequence sequence="1">
          <trainPartRef ref="trainPart1001"/>
     </trainPartSequence>
     <replacements>
         <replacementOf>
             <operatingPeriodRef ref="operating-period-KW47-MoFr-18" />
             <uniqueTrainKey trainNumber="111" scope="primary" additionalTrainNumber="1" />
         </replacementOf>
     </replacements>
</train>
Updated XSD file(s):
  • timetable.xsd
  • timetableTypes.xsd
New attributes:
  • /train/replacements/replacementOf/operatingPeriodRef@ref
  • /train/replacements/replacementOf/uniqueTrainKey @trainNumber
  • /train/replacements/replacementOf/uniqueTrainKey@scope
  • /train/replacements/replacementOf/uniqueTrainKey@additionalTrainNumber
  • /train/replacements/replacementOf/tafTapTsiTrainID@objectType
  • /train/replacements/replacementOf/tafTapTsiTrainID@companyCode
  • /train/replacements/replacementOf/tafTapTsiTrainID@core
  • /train/replacements/replacementOf/tafTapTsiTrainID@variant
  • /train/replacements/replacementOf/tafTapTsiTrainID@timetableYear
New elements:
  • /train/replacements
  • /train/replacements/replacementOf
  • /train/replacements/replacementOf/operatingPeriodRef
  • /train/replacements/replacementOf/uniqueTrainKey
  • /train/replacements/replacementOf/tafTapTsiTrainID

Element <blocks> in <rostering> has been made optional

Fact: Element <blocks> in <rostering> has been made optional
Reason: See the forum discussion: https://www.railml.org/forum/index.php?t=msg&th=571&start=0& (link to the railML® website)
Related Development Tickets: #331
Related Commits: [618] (Note on legacy SVN commits)
Updated XSD file(s): timetable.xsd
Updated element(s): /railml/timetable/rosterings/rostering/blocks

Infrastructure Subschema

Missinginformation.png In this article there is information missing with respect to last IS changes after June 1st, 2018 between railML® 2.3 and 2.4. Please help improving the railML® wiki by filling the gaps. Possibly, you will find further details on the discussion pageCoordination (talk) 15:59, 11 October 2018 (CEST)

Subschema <infrastructureVisualizations> has been reintroduced

Fact: Subschema <infrastructureVisualizations> has been reintroduced
Reason: The scheme <infrastructureVisualization> has been marked DEPRECATED with version 2.1 without proper alternative implementation
Related Development Tickets: #104
Related Commits: [618] (Note on legacy SVN commits)
Updated element(s): <infrastructureVisualizations> and subsidiaries

OCP example added to wiki page <ocp>

Fact: OCP example Pulsnitz (from example file East Saxony) has been added to railML® wiki page IS:ocp
Related Development Tickets: #112
Related Commits: [618] (Note on legacy SVN commits)

<lineDescr> and <trackDescr> DEPRECATED

Fact: <lineDescr> and <trackDescr> are marked DEPRECATED with version 2.4
Reason: The elements are not being used
Recommendation: For additional description of line or track, please use the attributes <track>@description and <line>@description
Related Development Tickets: #113
Related Commits: [618] (Note on legacy SVN commits)
Updated attribute(s):
Updated element(s):

<signal>@sigSystem

Fact: <signal>@sigSystem is currently not used by the railML® community and thus is marked DEPRECATED with version 2.4
Related Development Tickets: #162
Related Commits: [618] (Note on legacy SVN commits)
Updated attribute(s): <signal>@sigSystem

Specification of <balise>@staticTelegram changed

Fact: The string data type is combined with a pattern for the HEX format: [0-9a-fA-F]*
Reason: The attribute shall be used to represent the binary balise telegram as HEX string
Related Development Tickets: #163
Related Commits: [618] (Note on legacy SVN commits)
Updated attribute(s): <balise>@staticTelegram

New target for <infraAttrGroupRef>

Fact: XSD inline documentation of element <infraAttrGroupRef> has been adapted to reference an <infraAttributes> instance
Reason: According to schema, the element <infraAttrGroupRef> shall provide a reference to a <infraAttrGroup> element, which does not exist
Related Development Tickets: #233
Related Commits: [618] (Note on legacy SVN commits)
Updated element(s): <infraAttrGroupRef>

New attributes for <controller>

Fact: <controller> has been extended with:
  • parentControllerRef: reference to parent controller [ref]
  • model: (product) name of the controller [string]
  • type: singleElement / local / regional / crossRegional
  • technologyType: manual / mechanical / electro-mechanical / electrical / electronic
  • swVersion: controller SW version [string]
Reason: <controller> used to be only an empty placeholder element. It needed further attributes for macroscopic description of the controller for operational purposes.
Related Development Tickets: #304
Related Commits: [618] (Note on legacy SVN commits)
New attribute(s):
  • parentControllerRef
  • model
  • type
  • technologyType
  • swVersion
Updated element(s): <controller>

New Element <ocpRef> as child of <controller>

Fact: Child <ocpRef> has been added to <controller>
Reason: Allows to reference one or multiple OCPs from one controller. One OCP can be referenced from more than one controller.
Related Development Tickets: #304
Related Commits: [618] (Note on legacy SVN commits)
New element(s): <ocpRef>

<ocsElements> extended with <locks><lock>

Fact: Implementation of <lock> with container element <locks> under <ocsElements>
Reason: It is not possible to model locks that are used for logical locking connections between switches, derailers, level crossings etc. Like a signal, the lock is a physical signalling element and shall be added to the model.
Related Development Tickets: #305
Related Commits: [618] (Note on legacy SVN commits)
New element(s): *<locks>
Updated element(s): <ocsElements>

<track>@type: value stationTrack deprecated

Fact: <track>@type: value stationTrack deprecated
Reason: Not used
Related Development Tickets: #318
Related Commits: [618] (Note on legacy SVN commits)
Updated attribute(s): <track>@type

New child element <maxTrainCurrent> for <electrificationChange> and <electrification>

Fact: New child elements <maxTrainCurrent> for <electrificationChange> and <electrification>:

attributes @maxCurrent [A], @type [driving/standstill], @validFor [train/pantograph] and @##any for specific constraints

Related Development Tickets: #319
Related Commits: [618] (Note on legacy SVN commits)
New element(s):
Updated element(s):

Several Attributes of <signal> DEPRECATED

Fact: <signal>@maskableRoute, <signal>@maskableATC, <signal>@sight, <signal>@distNearestDangerPoint are currently not used by the railML® community and thus are marked DEPRECATED with version 2.4
Related Development Tickets: #322
Related Commits: [618] (Note on legacy SVN commits)
Updated attribute(s):
Updated element(s): <signal>

several default values in <levelCrossing> removed

Fact: Default values for <levelCrossing> attributes @length, @angle and @protection removed
Reason: Current implementation of a level crossing contains some attributes with default values that are source of errors
Related Development Tickets: #323
Related Commits: [618] (Note on legacy SVN commits)
Updated attribute(s):
Updated element(s): <levelCrossing>

Changed Value Set for <ocp><propOperational>@operationalType

Fact:
  • New value siding ADDED
Related Development Tickets: #327
Related Commits: [618] (Note on legacy SVN commits)
Updated attribute(s): <propOperational>@operationalType
Updated element(s): <propOperational>

Changed Value Set for <ocp><propOperational>@trafficType

Fact:
  • New value operational ADDED
Related Development Tickets: #328
Related Commits: [618] (Note on legacy SVN commits)
Updated attribute(s): <propOperational>@trafficType
Updated element(s): <propOperational>

Extension of time reference in <state>

Fact: <state> has been extended with new attributes @startTime, @endTime and @endDayOffset
Reason: Existing <state> implementation is missing a clear time reference. Currently, there is only the attribute @operatingPeriodRef that links to a (timetable focused) operating period
Related Development Tickets: #329
Related Commits: [618] (Note on legacy SVN commits)
New attribute(s):
  • startTime
  • endTime
  • endDayOffset
Updated element(s): <state>

<state> added to <infrastructure>

Fact: <infrastructure> gets child <states>, with the same specification as other occurances of <states>
Reason: railML® provides a <state> element already for several infrastructure elements. However, it is currently not possible to tag the whole <infrastructure> tree with a state.
Related Development Tickets: #337
Related Commits: [618] (Note on legacy SVN commits)
New element(s): <state> and successors
Updated element(s): <infrastructure>

<signal><levelCrossing>@type with new value "supervision"

Fact: <signal><levelCrossing>@type has been extended with new value "supervision"
Reason: railML® lacks a final level crossing supervision signal that is located immediately before the level crossing
Related Development Tickets: #338
Related Commits: [618] (Note on legacy SVN commits)
Updated attribute(s): {IS:Tag

<levelCrossing>@type

|nelem= |uelem={IS:Tag|signal}}<levelCrossing>@type }}

More sophisticated usage of <state>

Fact: Implementation of <state> has been fused with <ocp><propOther>@status:
  • New attribute <state>@status [conceptual / planned / operational / disabled / closed]
  • Attribute <state>@disabled [boolean] remains because it is mandatory
  • <ocp><propOther>@status is marked DEPRECATED
  • New element <ocp><propOther><states>
Reason: Current implementation of <state> allows only for distinguishing between disabled and not disabled; more states are needed
Related Development Tickets: #339
Related Commits: [618] (Note on legacy SVN commits)
New attribute(s): <state>@status
Updated attribute(s): <ocp><propOther>@status
New element(s): <propOther><states>
Updated element(s):

New attribute <crossSection>@ocpCenterSide to indicate the direction in which the train driver has to look to see the (virtual) operator

Fact: New attribute <crossSection>@ocpCenterSide to indicate the direction in which the train driver has to look to see the (virtual) operator (values: left / right / above / below / ahead / behind / none)
Reason: The center of the OCP is a virtual point and from operational perspective it is defined by the place where the operation/control is done. This can be, but it is not necessarily the station building.
Related Development Tickets: #340
Related Commits: [618] (Note on legacy SVN commits)
New attribute(s): <crossSection>@ocpCenterSide
Updated element(s): <crossSection>

Deprecated Attributes of <propOther>

Fact: @frontier and @chargeFrontier of <propOther> have been declared deprecated.
Reason: The attributes are currently not used by railML® community and lack obvious applications.
Related Development Tickets: #341
Related Commits: [618] (Note on legacy SVN commits)
Updated attribute(s):
  • frontier
  • chargeFrontier
Updated element(s): <propOther>

Rolling stock Subschema

New element <technicalStopActivity> at <formation>

Fact: New element <technicalStopActivity> at <formation> introduced
Related Development Tickets: #342 (technical stopping times for formation)
Related Commits: [618] (Note on legacy SVN commits)
Updated element(s):

Extension of list of tPlaceCategory

Fact: Extension of list of tPlaceCategory, adding service.types and places.categories
Updated elements: <places>
Updated attributes: category

service@name and service@count optional instead mandatory in schema

Fact: <service>@name and <service>@count optional instead mandatory in schema
Updated elements: <service>
Updated attributes:
  • name
  • count

Change <vehicleBrakeOperation> to optional [0..*] to maintain backwards compatibility

Fact: Change <vehicleBrakeOperation> to optional [0..*] to maintain backwards compatibility
Updated Elements:

@etcsTrainCategory as new attribute at formation

Fact: @etcsTrainCategory as new attribute at <formation>
Updated Elements: <formation>
Updated Attributes: etcsTrainCategory

Adding speedProfileRef in formation

Fact: Adding <speedProfileRef> in <formation>
Related Development Tickets: #336
Related Commits: [618] (Note on legacy SVN commits)
Updated element(s):

New attributes and sub element for <doors>

Related Development Tickets: #335
Related Commits: [618] (Note on legacy SVN commits)
Updated attribute(s):
Updated element(s):

Added <trainBrakeOperation> for <formation> and <vehicleBrakes>

Fact: Added <trainBrakeOperation> for <formation> and <vehicleBrakes>
Related Development Tickets: #313 (RS: Deceleration table)
Related Commits: [618] (Note on legacy SVN commits)
Updated element(s):

Adding resistance factors for calculating train resistance by well-known formulas as alternative

Fact: Adding resistance factors for calculating train resistance by well-known formulas as alternative
Related Development Tickets: #312 (RS: Resistance factors for calculating train resistance)
Related Commits: [618] (Note on legacy SVN commits)
Updated attribute(s):
  • strahlFactor
  • daviesMassDependent
  • daviesFactorA
  • daviesFactorB
  • daviesFactorC
Updated element(s): <trainResistance>

Adding <formation>/<trainEngine>@trainMinTimeHoldSpeed

Fact: <formation>/<trainEngine>@trainMinTimeHoldSpeed
Related Development Tickets: #311 (RS: Minimum time to hold speed)
Related Commits: [618] (Note on legacy SVN commits)
Updated attribute(s): trainMinTimeHoldSpeed
Updated element(s): <trainEngine>

Descriptive names included in TrainProtectionSystems

Fact: Descriptive names have been added to the codelist TrainProtectionSystems

tEffortNewton migrated to tForceNewton

Fact: Attribute type tEffortNewton has been migrated to tForceNewton
Reason: railML® simple data types, e.g. for physical units, are not consistently being used
Related Development Tickets: #332
Related Commits: [618] (Note on legacy SVN commits)
Updated attribute(s):
Updated element(s):

Common parts

Missinginformation.png In this article there is information missing with respect to Changes in common parts between railML® 2.3 and 2.4. Please help improving the railML® wiki by filling the gaps. Possibly, you will find further details on the discussion pageCoordination (talk) 15:59, 11 October 2018 (CEST)

Codelists

Missinginformation.png In this article there is information missing with respect to Changes in codelists between railML® 2.3 and 2.4. Please help improving the railML® wiki by filling the gaps. Possibly, you will find further details on the discussion pageCoordination (talk) 15:59, 11 October 2018 (CEST)