Skip to content

A command line tool and library for validating TransXChange and NeTEx XML and Zip files

Notifications You must be signed in to change notification settings

ciaranmccormick/transidate

Repository files navigation

PyPI version test Dependencies Status codecov

Transidate

Transidate is a commandline tool for validating transit data files such as TransXChange NeTEx and SIRI.

Transidate can validate several transit data formats out of the box.

Compatibility

Transidate requires Python 3.7 or later.

Installing

Install transidate using pip or any other PyPi package manager.

pip install transidate

Validate an XML file

Transidate comes with a help guide to get you started. This will list all the options as well as the transit data formats that are supported.

transidate --help

To validate a data source just specify the path to the data and the schema to validate the data against. If the --version is not specified the data is automatically validated again TransXChange v2.4.

transidate validate --version TXC2.4 linear.xml

XML with no violations If transidate finds any schema violations it will print the details of the violation such as the file it occurred in, the line number of the violation and details.

XML with violations

Validate many files at once

You can also use transidate to validate a archived collection of files.

transidate validate --version TXC2.4 routes.zip

Zip with no violations This will iterate over each XML file contained within the zip and collate all the violations.

Zip with violations

Export violations to CSV

Schema violations can be saved to a CSV file using the --csv flag.

transidate validate --version TXC2.4 --csv routes.zip

Configuration

Transidate comes configured with several schemas out of the box. It is really easy to add your own schema validators to transidate. The first step is to create a configuration file e.g. touch transidate.cfg.

Transidate fetches schemas from web in a zip format, to add a schema you just need to define the name, url and root.

[MYSCHEMA] # The 'version'
url=http://linktoschema.url/schema.zip # where transidate can get the schema
root=schema_root_file.xml # the root of the schema

Then you can just pass the schema configuration using --schemas.

transidate validate --version MYSCHEMA --schemas transidate.cfg linear.xml

You can list all the avialble schemas list th list command.

transidate list

List schemas

About

A command line tool and library for validating TransXChange and NeTEx XML and Zip files

Resources

Stars

Watchers

Forks

Packages

No packages published