Dev:versions: Difference between revisions

From railML 2 Wiki
Jump to navigation Jump to search
[checked revision][checked revision]
No edit summary
No edit summary
Line 7: Line 7:
; Decision : Tagging a major release after railML conferences' consensus
; Decision : Tagging a major release after railML conferences' consensus
; Version number : Increasing first digit, e.g. <code>version="2.0"</code>
; Version number : Increasing first digit, e.g. <code>version="2.0"</code>
; Namespace : Changing the year in the namespace string, e.g. <code>xmlns="<nowiki>https://www.railml.org/schemas/2009</nowiki>"</code>
; Namespace : Changing the year in the namespace string, e.g. <code>xmlns="<nowiki>https://schemas.railml.org/2009</nowiki>"</code>


=== Minor Release ===
=== Minor Release ===
Line 14: Line 14:
; Decision : Tagging a minor release after railML coordinators' consensus
; Decision : Tagging a minor release after railML coordinators' consensus
; Version number : Increasing second digit, e.g. <code>version="2.1"</code>
; Version number : Increasing second digit, e.g. <code>version="2.1"</code>
; Namespace : Up to railML 2.x the year changed in the namespace string. This policy will be changed from railML 3.1 on the way it was originally intended: not changing the namespace string. e.g. <code>xmlns="<nowiki>https://www.railml.org/schemas/2011</nowiki>"</code>.
; Namespace : Up to railML 2.x the year changed in the namespace string. This policy will be changed from railML 3.1 on the way it was originally intended: not changing the namespace string. e.g. <code>xmlns="<nowiki>https://schemas.railml.org/2011</nowiki>"</code>.


=== Corrigendum ===
=== Corrigendum ===
Line 21: Line 21:
; Decision : Tagging a corrigendum after railML coordinators' consensus
; Decision : Tagging a corrigendum after railML coordinators' consensus
; Version number : Increasing third digit, e.g. <code>version="2.0.1"</code>
; Version number : Increasing third digit, e.g. <code>version="2.0.1"</code>
; Namespace: No influence on the namespace string, e.g. <code>xmlns="<nowiki>https://www.railml.org/schemas/2009</nowiki>"</code>
; Namespace: No influence on the namespace string, e.g. <code>xmlns="<nowiki>https://schemas.railml.org/2009</nowiki>"</code>


=== Unofficial/Developers Version ===
=== Unofficial/Developers Version ===
Line 28: Line 28:
; Decision : User requirements from the forum are kept in the {{rml}} Trac tickets. The railML coordinators prioritize them, code each single topic in a {{rml}}ish way and commit changed files into the Subversion repository. See also [[CO:versioning|Officially released versus developer version]] for more information.
; Decision : User requirements from the forum are kept in the {{rml}} Trac tickets. The railML coordinators prioritize them, code each single topic in a {{rml}}ish way and commit changed files into the Subversion repository. See also [[CO:versioning|Officially released versus developer version]] for more information.
; Version number : Each atomic Subversion commit is tagged with the increasing Subversion number. The last official version number is expanded by the Subversion release number. e.g. <code>version="2.1r460"</code>
; Version number : Each atomic Subversion commit is tagged with the increasing Subversion number. The last official version number is expanded by the Subversion release number. e.g. <code>version="2.1r460"</code>
; Namespace : No influence on the namespace string, e.g. <code>xmlns="<nowiki>https://www.railml.org/schemas/2011</nowiki>"</code>
; Namespace : No influence on the namespace string, e.g. <code>xmlns="<nowiki>https://schemas.railml.org/2011</nowiki>"</code>


== Version numbers and corresponding namespaces ==
== Version numbers and corresponding namespaces ==
Line 78: Line 78:
|-
|-
| 1.1
| 1.1
| <nowiki>https://www.railml.org/schemas/2007</nowiki>
| <nowiki>https://schemas.railml.org/2007</nowiki>
| https://www.railml.org/schemas/2007/railML-1.1/railML.xsd
| https://schemas.railml.org/2007/railML-1.1/railML.xsd
| no
| no
|-
|-
| 2.0
| 2.0
| <nowiki>https://www.railml.org/schemas/2009</nowiki>
| <nowiki>https://schemas.railml.org/2009</nowiki>
| https://www.railml.org/schemas/2009/railML-2.0/railML.xsd
| https://schemas.railml.org/2009/railML-2.0/railML.xsd
| yes, optional
| yes, optional
|-
|-
| 2.1
| 2.1
| <nowiki>https://www.railml.org/schemas/2011</nowiki>
| <nowiki>https://schemas.railml.org/2011</nowiki>
| https://www.railml.org/schemas/2011/railML-2.1/railML.xsd
| https://schemas.railml.org/2011/railML-2.1/railML.xsd
| yes, optional
| yes, optional
|-
|-
| 2.2
| 2.2
| <nowiki>https://www.railml.org/schemas/2013</nowiki>
| <nowiki>https://schemas.railml.org/2013</nowiki>
| https://www.railml.org/schemas/2013/railML-2.2/railML.xsd
| https://schemas.railml.org/2013/railML-2.2/railML.xsd
| yes, optional
| yes, optional
|-
|-
| 2.3
| 2.3
| <nowiki>https://www.railml.org/schemas/2016</nowiki>
| <nowiki>https://schemas.railml.org/2016</nowiki>
| https://www.railml.org/schemas/2016/railML-2.3/schema/railML.xsd
| https://schemas.railml.org/2016/railML-2.3/schema/railML.xsd
| yes, optional
| yes, optional
|-
|-
| 2.4
| 2.4
| <nowiki>https://www.railml.org/schemas/2018</nowiki>
| <nowiki>https://schemas.railml.org/2018</nowiki>
| https://www.railml.org/schemas/2018/railML-2.4/schema/railML.xsd
| https://schemas.railml.org/2018/railML-2.4/schema/railML.xsd
| yes, mandatory
| yes, mandatory
|-
|-
| 3.0 (alpha & beta only)
| 3.0 (alpha & beta only)
| <nowiki>https://www.railml.org/schemas/2015</nowiki>
| <nowiki>https://schemas.railml.org/2015</nowiki>
| ''Alpha & Beta phases finished''
| ''Alpha & Beta phases finished''
| no
| no
|-
|-
| 3.1
| 3.1
| <nowiki>https://www.railml.org/schemas/3.1</nowiki>
| <nowiki>https://schemas.railml.org/3.1</nowiki>
| https://www.railml.org/schemas/3.1/railml3.xsd
| https://schemas.railml.org/3.1/railml3.xsd
| yes, mandatory
| yes, mandatory
|}
|}
Line 132: Line 132:
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<railml version="2.0"
<railml version="2.0"
   xmlns="https://www.railml.org/schemas/2009"
   xmlns="https://schemas.railml.org/2009"
   xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"  
   xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"  
   xsi:schemaLocation="https://www.railml.org/schemas/2009 https://www.railml.org/schemas/2009/railML-2.0/railML.xsd">
   xsi:schemaLocation="https://schemas.railml.org/2009 https://schemas.railml.org/2009/railML-2.0/railML.xsd">
   ...
   ...
</railml>
</railml>
Line 144: Line 144:
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<railml version="2.1r416"
<railml version="2.1r416"
   xmlns="https://www.railml.org/schemas/2011"
   xmlns="https://schemas.railml.org/2011"
   xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
   xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="https://www.railml.org/schemas/2011 https://trac.railml.org/browser/railML/trunk/schema/railML.xsd?rev=416">
   xsi:schemaLocation="https://schemas.railml.org/2011 https://trac.railml.org/browser/railML/trunk/schema/railML.xsd?rev=416">
   ...
   ...
</railml>
</railml>

Revision as of 18:47, 16 April 2021

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
🗒️ The subject of this article are official version releases. If you are interested in accessing, setting and naming developer versions, see dev:versioning.

Release Policy

Major Release

Reason
Commited changes have affects on XML-instance files and should be announced in advance in corresponding railML-newsgroups.
Decision
Tagging a major release after railML conferences' consensus
Version number
Increasing first digit, e.g. version="2.0"
Namespace
Changing the year in the namespace string, e.g. xmlns="https://schemas.railml.org/2009"

Minor Release

Reason
Commited changes have no affects on XML-instance files, but on other coordinators' XSD-schema files.
Commits of new elements, types and/or attributes are allowed.
Decision
Tagging a minor release after railML coordinators' consensus
Version number
Increasing second digit, e.g. version="2.1"
Namespace
Up to railML 2.x the year changed in the namespace string. This policy will be changed from railML 3.1 on the way it was originally intended: not changing the namespace string. e.g. xmlns="https://schemas.railml.org/2011".

Corrigendum

Reason
Corrigendum commits and cosmetic changes with no affect on XML-instance files are allowed.
Decision
Tagging a corrigendum after railML coordinators' consensus
Version number
Increasing third digit, e.g. version="2.0.1"
Namespace
No influence on the namespace string, e.g. xmlns="https://schemas.railml.org/2009"

Unofficial/Developers Version

Reason
Depending on the current policy only Subversion commits for corrigendum, minor or major railML® releases are checked into the repository for further feature development.
Decision
User requirements from the forum are kept in the railML® Trac tickets. The railML coordinators prioritize them, code each single topic in a railML®ish way and commit changed files into the Subversion repository. See also Officially released versus developer version for more information.
Version number
Each atomic Subversion commit is tagged with the increasing Subversion number. The last official version number is expanded by the Subversion release number. e.g. version="2.1r460"
Namespace
No influence on the namespace string, e.g. xmlns="https://schemas.railml.org/2011"

Version numbers and corresponding namespaces

How to describe the version number of a railML® file? Or to find out which version a railML® file belongs to?

Version numbers

You will find a version attribute in the railML® root element <railml> as well as in the root elements of the sub-schemas as <infrastructure>, <rollingstock>, <timetable>. This attribute is to be used for the version number of the railML® schema the XML file is based on.

Major, minor and corrigendum version are separated by a dot, the release number is separated by r. Corrigendum and release number are optional:

<major version>.<minor version>[.<corrigendum>][r<release number>]

The following rules apply:

  • The release number is required to be omitted if a railML® file is based on an official released railML® version. This applies to railML®'s release numbers
 * 2.0r270 has to be given as 2.0,
 * 2.1r409 has to be given as 2.1,
 * 2.2r602 has to be given as 2.2,
 * 2.4r668 has to be given as 2.3,
 * 2.4r862 has to be given as 2.4 and
 * 3.1r989 has to be given as 3.1, all respectively without release number.
  • The release number shall be considered mandatory in all other cases, e. g. if it is "an unofficial release version" but an intermediate. For more information on the relevance of intermediate versions see Officially released versus developer version.
  • The attribute version of the root element of the railML® file shall be considered mandatory. If the root element of the railML® file is <railml>, the attribute version of the subsequent elements <infrastructure>, <rollingstock>, <timetable> are optional. If they are used, they have to be identical to the version of <railml>.
  • The corrigendum release number is mandatory, if the release is tagged this way. Otherwise it shall be ommited.

This official railML® version number should not be confused with an implementation dependent software version in the metadata elements dc:format and/or dc:identifier.

railML® namespace declarations

As above mentioned the XML namespace does also change with the railML version. The following table shows this relationship for all official railML versions.

railML version number railML namespace string remote schema location HTTPS access
1.0 no namespace different schema locations for sub-schemas no
1.1 https://schemas.railml.org/2007 https://schemas.railml.org/2007/railML-1.1/railML.xsd no
2.0 https://schemas.railml.org/2009 https://schemas.railml.org/2009/railML-2.0/railML.xsd yes, optional
2.1 https://schemas.railml.org/2011 https://schemas.railml.org/2011/railML-2.1/railML.xsd yes, optional
2.2 https://schemas.railml.org/2013 https://schemas.railml.org/2013/railML-2.2/railML.xsd yes, optional
2.3 https://schemas.railml.org/2016 https://schemas.railml.org/2016/railML-2.3/schema/railML.xsd yes, optional
2.4 https://schemas.railml.org/2018 https://schemas.railml.org/2018/railML-2.4/schema/railML.xsd yes, mandatory
3.0 (alpha & beta only) https://schemas.railml.org/2015 Alpha & Beta phases finished no
3.1 https://schemas.railml.org/3.1 https://schemas.railml.org/3.1/railml3.xsd yes, mandatory

The XML file should declare the same XML namespace (identical string) as defined by its corresponding XML Schema. For general information about namespaces see Defining namespaces and validating railML files.

A railML® file based on an intermediate release with remote schema location shall refer to the Subversion repository of the release. This is

https://trac.railml.org/browser/railML/trunk/schema/railML.xsd?rev=<release number>

Examples

railML file of official released railML version 2.0, remote schema location:

<?xml version="1.0" encoding="UTF-8"?>
<railml version="2.0"
  xmlns="https://schemas.railml.org/2009"
  xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="https://schemas.railml.org/2009 https://schemas.railml.org/2009/railML-2.0/railML.xsd">
  ...
</railml>

railML file of intermediate release #416 (between official releases 2.1 and 2.2) , remote schema location:

<?xml version="1.0" encoding="UTF-8"?>
<railml version="2.1r416"
  xmlns="https://schemas.railml.org/2011"
  xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="https://schemas.railml.org/2011 https://trac.railml.org/browser/railML/trunk/schema/railML.xsd?rev=416">
  ...
</railml>