Certification of your railML® interface

Update 2023: Current Status and reworking of the manual

The current version (v1.2) of the Certification Manual can now be downloaded below. This version contains only redactional changes (i.e. minor amendments to correct grammatical errors etc.). The changes do not affect the certification procedure or the cost of certification. Please note that v1.1 was created for internal use only and has not been published.

A list of frequently asked questions (FAQs) with respect to certification can be found at the bottom of this page.

Please note, we are working on an updated certification manual.

An updated version of the certification manual is planned for 2023-2024 with the support of railML.org partner NEAT. We are working towards improving the certification process and would be grateful to have feedback on your experience with our certification process. Please send your feedback to manual@governance.railml.org to let us know how we can make it better and easier for you (the more detail, the better!).

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


The effectiveness of railML as a data exchange format relies on its correct implementation within rail-IT applications. Our primary objective is to ensure quality and interoperability for our partners when using railML Our experts will undertake a thorough review of the results of your export and import railML to ensure there are no faults or errors.

The railML standard is subdivided into subschemas with respect to the intended purpose of use. The certification process is specific to the individual schema/s you are using.  A different certification process is therefore required for each subschema.

If you need additional information or you need to certify your railML® interface, please contact railML.org!

Important: Lead times for certification can vary; please contact railML.org at the earliest opportunity to avoid any delay to your project.

Download - The further content is only available for registered partners

Access to the download is limited to the key contact person of the registered organisation. Please use the appropriate login information or, if you or your organisation has not yet registered as a partner at railML.org, you can register here.

If you have any problems accessing the certification manual using your key contact login information, please contact railML.org.

Frequently asked questions about certification

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 14 of certification manual.

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 9 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 15 of certification manual.

Can we use railML in our systems and resell them to third parties?

Before an interface can be used commercially (for exceptions see certification manual), it must be certified by railML.org to ensure its correct implementation (please refer to the Certification Manual). As long as the interface remains unchanged, it can be used and sold to third parties for any length of time at no additional cost (railML can be used royalty-free).

How is commercial use regulated?

Unlike many of the licenses required for use in the software sector (e.g. the EuPL, BSD etc.), railML is neither a software nor a source code; it is a computer language or exchange definition. The regulation on the commercial use of railML is explicitly detailed on our licencing page.

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 16 of the 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 18 of the 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 19 of the 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 21 of the 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 23 of the 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 24 of the 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 24 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 28 of the 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 36 of the certification manual.

Can I complete the certification process step by step?

Yes, the certification can indeed be completed in stages. Each stage, referred to as a "cycle", is a mandatory phase in the process, primarily designated for import/export activities. Typically, obtaining full certification involves a minimum of two cycles and every cycle is required to be paid separately. It is important to note that depending on your tool/software, more cycles may be  necessary to complete the certification process. This structure ensures thoroughness and compliance with all requirements.

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.

Please see page 14 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.4, you may use this version productively/commercially. However the other versions of railML, e.g. 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.4 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.