Certification of your railML® interface

Update 2023: Current Status and reworking of the manual

The reworking of the certification manual is currently underway.

An updated version (v1.2) of the Certification Manual can now be downloaded below. This version contains only redactional changes (e.g., updating list of certifiable railML versions, correction of grammatical errors, etc.). It does not contain any changes to the certification procedure nor to the costs in comparison to previous versions. Please note that v1.1 was only an internal comment collector and therefore was not published.

Please have a look to the frequently asked questions (FAQ) below as well.

An updated version of the certification manual is planned for 2023-2024 with the support of railML.org partner NEAT. An improved certification process will benefit you and the whole railML.org community in the future. We would like to hear about your experiences and of any remarks regarding the clarity and intelligibility of the document, the certification process itself and how to improve it, which parts might be obsolete and what might be missing. Please direct your feedback to manual@governance.railml.org, a copyable version (no scans) with references to the current certification manual (page/topic/part) will facilitate the collection of feedback a lot.

Updated: July 10, 2023 with new timeline and schema certifications for 2.3 and 3.2


railML as an exchange format for rail data depends on the correct use by rail-IT applications. The process of certification concludes in a mutual benefit for railML.org and our partners. Main aspects are the quality assurance and interoperability for our partners and the recognition of the needs of our partners for railML.org. The evaluation of a railML interface is based on the review of the results of export and import of such applications.

As the railML standard is subdivided in various subschemas, according to the main purpose of rail-IT applications, the certification accordingly considers only the scheme or the schemes used by the applicant.

Would you like to get additional information or do you have to certify your railML® interface? Contact us!

Important: If your company needs a certification quickly, then please inform us as soon as possible, otherwise, there might not be enough resources and a speedy processing might not be possible within the desired timeframe.

Download - The further content is only available for registered partners

The download is intended for the main contact person of registered partners. Please login as railML.org main company contact or register at railML.org

Should you be unable to get acces to the certification manual via the main contact person of your company, please contact railML.org.

Frequently asked questions about certification

Can we use railML in our systems and resell them to third parties without suddenly having to pay license fees?

Yes, the use of railML is possible without the payment of one-time or repetitive license fees – railML is royalty-free.

Before an interface can be used productively (for exceptions see certification manual), railML.org has to approve its correct function once (certification; procedures and efforts see certification manual). As long as the interface remains unchanged, it can be used and sold for any length of time at no additional cost.

How is commercial use regulated?

Unproblematic and covered by Creative Commons license. This sometimes raises questions, because the EuPL, BSD and other licenses common in the software sector are not used. (This is because railML is not a software nor source code ... it is a computer language or exchange definition.) railML.org also offers the stakeholders a separate contract, which could explicitly confirm this once again.

Why is a certification required?

A certification is required in order to avoid incompatibility of railML interfaces. This can be caused by design differences, omissions or vendor-specific additions.

See page 8 of certification manual.

What is the railML certification?

railML certification is a public acknowledgment of a software interface’s compliance with a specific scope of the railML data exchange standard, based on an impartial and independently verifiable test administered by railML.org, the certification body. Successful certification is a prerequisite for the use of railML in a software solution, and is confirmed by a certificate issued by railML.org, along with a certification protocol.

See page 12 of certification manual.

When is a certification required?

Any applicant wishing to include railML support in their products is required to certify the railML interface(s) of their software release to demonstrate compliance with the standard. Certification is mandatory for all vendors who intend to use railML as a data interchange medium within or in relation to their software solution, regardless of whether railML support is publicly acknowledged or not.

See page 13 of certification manual.

Which railML versions need certification?

A certification is mandatory for all railML interfaces released or registered to railML.org after July 1st, 2013. Only railML 1.x as well as 2.0 and 2.1 interfaces finished before this data are exempt from the certification obligation. (Please note: Due to the End of Life for railML 1.x as well as various 2.x versions, certifications for these versions are not possible anymore. Check the timeline for further information)

See page 13 and 14 of certification manual.

Who is responsible for the certification?

As a rule, the vendor who releases a software solution becomes the applicant and is responsible for proper railML certification prior to the product’s general availability, including when a product is not available to the general public, such as when a solution is delivered to a specific customer or a limited audience.

See page 15 of certification manual.

What is the certification scope?

railML certification for a software interface is available in two key functional areas that may be subject to certification independently or combined:

Export: A product’s ability to correctly represent structured abstract data into the corresponding railML schema and output the result in a fully railML-compliant file that could be correctly read and interpreted by another railML-certified software interface;

Import: A product’s capacity to correctly parse and understand railML-compliant data, provided as a railML file for import.

Based on the specific interfaces being certified, two types of certification are available to applicants: export and import certification. Both certification paths evaluate a fixed set of criteria that must be met for a software interface to be successfully certified.

See page 16 of certification manual.

How long is the certification valid?

Certification is granted for a period of five years with a provision for free extensions, unless at least one re-certification condition is met in that time. If no relevant changes in the interface regading the data where made (e.g. a change in the user interface or logo layout does not affect the data) the certification is prolonged for another five years for free.

See page 18 of certification manual.

How much does the certification cost?

Until stated otherwise, railML.org invoices any vendor request for certification an amount of 2,225 EUR (plus VAT, if applicable) per certification unit (valid since 2017 and calculated with a unified effort of 2.5 man-days at 890 EUR per day; until further notice; discounts for associated and strategic partners apply). This is an administrative fee, which only covers expenses for the experts that arise in the context of certification.

See page 20 of certification manual.

How can I prepare for the certification?

railVIVID is a reference validation tool to be used by applicants in preparation for official certification. It is strongly recommended that applicants incorporate testing schedule into the development cycle early in the software delivery process, in order to ensure continuous adherence to the standard and consistency with the certification test expectations. It can be downloaded on the website.

Furthermore railML.org provides a set of official reference data samples via the website. These samples may be freely used to test import functionality of any software interface, serving as a mock import certification test for the applicants’ benefit. The sample files may also be used as point of reference for applicants working on railML export implementations to compare export outcomes with a file created according to best practices.

See page 21 and 22 of certification manual.

How do I apply for certification?

Applicants apply for certification by submitting a filled out certification application to railML.org. An application must always contain the following basic information:

  • railML schema version(s) for which compliance will be tested.
  • Application name and release version, build number (if applicable),
  • Technical contact responsible for application,
  • Description of the product’s primary usage scenario,
  • railML subschemas in use.
  • Requested certification type (import, export or both).

See page 22 of certification manual.

Please note: the certification application is only available to the main contact person of a registered partner. If you do not have access, please contact railML.org.

What requirements does my interface need to fulfill for the certification?

Preequisites for Export certification

An interface ready for certification must comply with the following requirements:

  • Provide means of control (outlined in Acceptable Input and Output Methods) that can initiate a data export for a given set of circumstances,
  • Generate consistent data output for a given set of input parameters, i.e. generating the same output twice at different points in time must generate a syntactically identical output file,
  • Output valid railML data without any additional conversion or translation, i.e. the export process must be a one-step experience in terms of data.

Preequisites for Import Certification

An interface admissible for railML import certification must:

Provide means to initiate data import from a railML data file (the interface may require a specific file name, which must have a .railml, railmlx or xml extension),

Be capable of reading and interpreting a valid railML data file without prior conversion or translation,

Possess means of data representation to verify that a data input has been successfully interpreted. Possible methods of data representation include:

  • Graphical user interface that renders a representation of the imported data,
  • Text output that can represent the imported data, but not output the original file verbatim,
  • Structured data object (e.g. relational database storage) that can be examined to verify that the imported data was properly interpreted,
  • Any other form of output that can reliably verify that the application has correctly understood the imported data sample.

Applicants are encouraged to consult specific import scenarios with railML.org prior to applying for import certification, to establish the correct procedure and agree upon acceptable means and goals to confidently verify that the interface’s import capability satisfies the certification criteria.

See page 25 of certification manual.

How long does the certification take?

railML.org strives to process all certification requests in timely manner without delay. Processing time may, however, still be variable based on available processing bandwidth and test complexity. Validation may take longer for large or complex data sets, especially when comprising multiple files. Keeping data samples and descriptions concise and to the point greatly contributes to the overall performance of the certification process.

See page 33 of certification manual.

Are file-based interfaces the only type of interface that can be certified?

No, file-based import or export is not a requirement for railML certification. Any type of interface that includes a valid railML payload can be certified, such as message queuing systems or point-to-point interfaces like REST, SOAP, or Protobuf.

However, it is important to ensure that the railML data contained within the communication frame is not contradicted by the frame itself. This means that there should be no inconsistencies between the information encoded in the frame and the information encoded in the included railML. Additionally, when extracting the payload from the frame, the resulting railML should be both semantically and syntactically correct.

Will be added in the next version of the certification manual.

Is it possible to obtain permission to use railML 2.x while planning to migrate to railML 3.x, and does the software require certification?

The successful certification of a scheme version (e.g., railML 2.x) allows the productive and/or commercial use of this specific scheme version (for example: If you certify version 2.3, you may use this version productively/commercially. However the other versions of railML, e.g. 2.0, 2.1, 2.4, 2.5 and 3.x, still need to be certified before being used productively/commercially. To reduce the effort for all sides we recommend certifying as much versions as possible (e.g., 2.3 and 2.5) in parallel, if possible. As we cared a lot about downward compatibility during development of railML 2.x, there are very few necessary changes between version in most cases. We offer help and guidance to all our railML partners.