Dev:Versions

From railML 2 Wiki
(Redirected from Dev:versions)
Jump to navigation Jump to search

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. The attribute version of the root element of the railML® file shall be considered mandatory.

This official railML® version number should not be confused with an implementation dependent software version.

Semantic Constraint "CO:003":
 
@version shall correspond to the specified namespace of the <railml> element.
 
Proposed on October 13th 2025
Approved on October 13th 2025
https://www.railml.org/forum/index.php?t=msg&th=1101

Please, recognize our guidelines on semantic constraints 

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 Initial Release Service Release[1] Wiki adapted since
1.0 no namespace different schema locations for sub-schemas no December 2005 No longer supported No wiki documentation
1.1 http://www.railml.org/schemas/2007 https://schemas.railML.org/2007/railML-1.1/railML.xsd no November 2007 No longer supported No wiki documentation
2.0 http://www.railml.org/schemas/2009 https://schemas.railML.org/2009/railML-2.0/railML.xsd yes, optional November 2009 No longer supported No longer supported
2.1 http://www.railml.org/schemas/2011 https://schemas.railML.org/2011/railML-2.1/railML.xsd yes, optional July 2011 No longer supported No longer supported
2.2 http://www.railml.org/schemas/2013 https://schemas.railML.org/2013/railML-2.2/railML.xsd yes, optional June 11th 2ß11 No longer supported No longer supported
2.3 http://www.railml.org/schemas/2016 https://schemas.railML.org/2016/railML-2.3/schema/railML.xsd yes, optional March 10th 2016 No longer supported No longer supported
2.4 https://www.railml.org/schemas/2018 https://schemas.railml.org/2018/railML-2.4/schema/railML.xsd yes, mandatory October 07th 2018 Final 2019
2.5 https://www.railml.org/schemas/2021 https://schemas.railML.org/2021/railML-2.5/schema/railML.xsd yes, mandatory September 1st 2021 SR2 SR2: July 28th 2025
3.0 (alpha & beta only) https://www.railml.org/schemas/2015 Alpha & Beta phases finished no October 31st 2017 No longer supported No wiki documentation
3.1 https://www.railml.org/schemas/3.1 https://schemas.railML.org/3.1/railml3.xsd yes, mandatory February 19th 2019 SR1 SR1: February 26th 2026
3.2 https://www.railml.org/schemas/3.2 https://schemas.railML.org/3.2/railml3.xsd yes, mandatory April 26th 2022 SR4 SR4: July 28th 2025
3.3 https://www.railml.org/schemas/3.3 https://schemas.railML.org/3.3/railml3.xsd yes, mandatory November 09th 2024 SR2 SR2: February 26th 2026
3.4 https://www.railml.org/schemas/3.4 Not yet available yes, mandatory expected October th 2026 Not yet available Not yet available

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 a commit on our development platform. This is

  • for railML® 2: https://development.railml.org/railml/version2/-/commit/<commit hash>
  • for railML® 3: https://development.railml.org/railml/version3/-/commit/<commit hash>

For instance commit 5f735749 (railML® 2) can be found under https://development.railml.org/railml/version2/-/commit/5f735749. It corresponds to commit [416] of our legacy Apache Subversion Control () (SVN).
Commit 6e7d61fa (railML® 3) can be found under https://development.railml.org/railml/version3/-/commit/6e7d61fa and corresponds to SVN commit [1026].

Licenses

All currently supported railML® versions are licensed dually under a restricted form of the Creative Commons licence () CC-BY-NC-ND and (for certified programmes) in a commercial licence. To learn more about the licence terms see https://www.railml.org/en/licence (link to the railML® website).

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="http://www.railml.org/schemas/2009"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://www.railml.org/schemas/2009 https://schemas.railml.org/2009/railML-2.0/railML.xsd">
  ...
</railml>

Glossary

Major Release

  • Reason - major restructuring of the model or changes to the philosophy.
  • Decision - tagging a major release after railML® conferences' consensus.
  • Version number - increasing first digit, e.g. version="2.0", version="3.0".
  • Namespace - changing the year in the namespace string, e.g. xmlns="https://www.railml.org/schemas/2021” for railML 2.5.

Minor Release

  • Reason - you can add new elements and attributes but cannot remove them. Committed changes have no effect 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® conference.
  • Version number - increasing second digit, e.g. version="2.1".
  • Namespace - up to railML® 2.x the year and version changed in the namespace string. This means that for every minor version a new namespace is defined.

Service release

  • Reason - service releases contain an improved documentation of the XSD as well as to .xmi () and minor corrigendum[2], but unchanged data exchange structure. Therefore the existing interfaces with their results (by the partner programmes) remain unchanged as well as certifications and documentations.
  • Decision - usually, service release of a version is published when enough additional documentation or corrigendum is gathered.
  • Version number - version does not change for service release. ZIP archive is tagged.
  • Namespace - namespace does not change for service release.

Beta (release candidate)/Developers Version

  • Reason - beta is needed for testing and reviewing. In railML2 beta is called release candidate (e.g. railML-2.5-RC).
  • Decision - user requirements from the forum are kept in the railML® ticket system. For railML 2 they can be found at https://development.railml.org/railml/version2/-/issues . The railML® coordinators prioritize them, code each single topic in a XSD and commit changed files into the Git repository.
  • Version number - tagging a beta after railML® coordinators' consensus.
  • Namespace - namespace does not change for Beta version.

railml3::Dev:Versions