Announcing Reference4PT

A comprehensive reference for NeTEx, SIRI, OpRA and Transmodel, now up at Reference4PT.eu

Announcing Reference4PT

I've been doing some research into how to model things in NeTEx, the official European public transport timetable data format, and I ran into a particular problem: reading the documentation is hard.

There is an official standard, CEN/TS 16614, which retails for just shy of 2000€ if you buy all six parts. This gets you some very well-researched documents full of reference material and explanatory text that can help to understand the models. Some of it is visible in the tutorial videos.

However, the Data4PT project has helpfully provided all the XML schema files for free on their GitHub. This can apparently give you 80-90% of the information that you need, and there are a number of educational materials on the website that can help you understand the rest.

This is a proper XML schema: 1939 global elements and 4640 types that are specified over 458 separate XSD files. It has inheritance, it has abstract classes, it has substitution groups, in short, it's the sort of XML that you expect from a standards body that's been at this for 17 years, based on standards that were started in 1989.

It's also impossible to browse in a sensible manner. There don't seem to be any free or open source XSD browsers that can cope with that number of imports, or, for that matter, any of them. The closest you get to that is the Red Hat XML extension for Visual Studio Code, and that's mostly useful for inline documentation, rather than browsing. And it crashes on me half the time, as it's way too much for it to process.

There are dedicated IDEs available for this, with ways of browsing the schema. The cheapest I could find I think retails at about 550€, which is not exactly in the budget of many, and has a bunch of functionality that I don't necessarily need to use.

So I decided to create my own reference. You can find it at Reference4PT.eu.

As well as NeTEx, I've also included SIRI, the associated real-time data standard, and OpRA, the Operational Raw data standard that is still being defined. As I was using it, I noted that it made a lot of references to the original Transmodel standard, and, whilst there is a browsable version of the standard available, I decided to also include it in my version, with links to the related elements.

As I didn't want to spend too much time on this, I decided that I would throw this problem at Claude. Specifically, I got Claude to create the site generator, but I then throw the actual XSDs at it, and the documentation is only what is in those files. It's definitely needed some guidance to get all the details where they need to be, and I'm still finding ocasional weird layout issues. But it's already better than reading XML, and it's been useful for my own research.

So please, use it, enjoy it. If you spot anything that's wrong, send me an issue.