Dev:Versions
|
Version numbers and corresponding namespaces
|
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 in the <metadata> elements dc:format and/or dc:identifier.
|
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 | 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 (
) (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>
railML file of official released railML version 3.1, remote schema location:
<?xml version="1.0" encoding="UTF-8"?>
<railML xmlns="https://www.railml.org/schemas/3.1"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:gml="http://www.opengis.net/gml/3.2/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="https://www.railml.org/schemas/3.1 https://www.railml.org/schemas/3.1/railml3.xsd"
version="3.1">
...
</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 and xmlns=”https://www.railml.org/schemas/3.1” for railML 3.1.
Minor Release
railML2
- 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.
railML 3
Up to railML 3.2
- Reason - removal and renaming of elements that exist in the previous version can only be removed after a deprecation phase. Changes that only add elements, even mandatory ones are allowed.
- Decision - tagging a minor release after railML® conference.
- Version number - increasing second digit, e.g. version="3.1".
- Namespace - the namespace is changed with each minor version, e.g. xmlns="https://www.railml.org/schemas/3.2".
From railML 3.3 on
- Reason - changes from one minor version to the next are allowed without a deprecation phase. This allows changes that may happen without a deprecation phase, such as:
- Decision - tagging a minor release on railML® conference.
- Version number - increasing second digit, e.g. version="3.3".
- Namespace - the namespace is changed with each minor version, e.g. xmlns="https://www.railml.org/schemas/3.3".
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
railML2
- 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.
railML 3
- Reason - beta is needed for testing and reviewing. For railML 3final version is abbreviated as railML-3.2-final.
- Decision - user requirements from the forum are kept in the railML® ticket system. For railML 3 they can be found https://development.railml.org/railml/version3/-/issues. The railML® coordinators prioritize them, code each single topic in Enterprise Architect (software) (
) and commit changes into the Git (
) repository. The XSDs and documentation are generated from the Enterprise Architect model. - Version number - tagging a beta after railML® coordinators' consensus.
- Namespace - namespace does not change for Beta version.