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.
Transidate requires Python 3.7 or later.
Install transidate using pip
or any other PyPi package manager.
pip install transidate
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
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.
You can also use transidate to validate a archived collection of files.
transidate validate --version TXC2.4 routes.zip
This will iterate over each XML file contained within the zip and collate all the violations.
Schema violations can be saved to a CSV file using the --csv
flag.
transidate validate --version TXC2.4 --csv routes.zip
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