I’ve created a syntax grammar XML validator script to help when I’m writing language definition extensions for Nova. I often make trivial mistakes in my XML, and I was using xmllint to check for well-formed XML whenever Nova refused to load my extension.
Now I also added Relax NG schemas based on the excellent extension documentation. With the schemas, xmllint can also detect misspelled element names, missing attributes, and other structural problems.
I put it on Github in case it is useful for other extension developers. It doesn’t require any other software to be installed since xmllint comes with macOS.
I just pushed an update to the syntax schemas to match the documentation for Nova 9.
When I run the validator on the included extensions in Nova.app/Contents/SharedSupport/Extensions, it finds a few bugs as well as some undocumented attributes and elements.