Converts RELAX NG schemata in Compact syntax (rnc) to the equivalent schema in the XML-based default RELAX NG syntax. Dependencies:
- Python 3.x (tested with 3.8, 3.9, 3.10, 3.11, 3.12)
- rply
Feedback welcome on GitHub. Please consider funding continued maintenance of this project through Patreon or GitHub Sponsors.
rnc2rng was originally written by David Mertz in 2003 and published as part of a collection of files around RELAX NG on his site into the Public Domain. Hartmut Goebel published it as a package on PyPI to make it easier to access. It was mirrored on GitHub by Dustin J. Mitchell in 2010 after he fixed some bugs. Timmy Zhu forked his repository and contributed further enhancements. Recently, I (Dirkjan Ochtman) was interested in playing with RELAX NG Compact and started making further updates. I asked Hartmut for maintainership on PyPI and received it. While I cannot promise many updates, I should be responsive to bug reports and (especially!) pull requests.
The usual should work:
$ sudo pip install .
$ python -m rnc2rng test.rnc > test.rng
All of the code is released under MIT License.