Dev:Versions

From railML 2 Wiki
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.

Private-cloud-icon.png 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 (Wiki banner.png) 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 Service Release[1] Wiki adapted since
1.0 no namespace different schema locations for sub-schemas no 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 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 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 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 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 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 Final 2019
2.5 https://www.railml.org/schemas/2021 https://schemas.railML.org/2021/railML-2.5/schema/railML.xsd yes, mandatory SR2 SR2: July 28th 2025
3.0 (alpha & beta only) https://www.railml.org/schemas/2015 Alpha & Beta phases finished no 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 Final 2019
3.2 https://www.railml.org/schemas/3.2 https://schemas.railML.org/3.2/railml3.xsd yes, mandatory SR4 SR4: July 28th 2025
3.3 https://www.railml.org/schemas/3.3 https://schemas.railML.org/3.3/railml3.xsd yes, mandatory SR1 SR1: July 28th 2025

The XML file should declare the same XML Namespace (Wiki banner.png) (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 (Wiki banner.png) (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 (Wiki banner.png) 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 (Wiki banner.png) 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.