# Notes on implementing RELAX NG

This page contains pointers to documents describing various aspects of implementing RELAX NG.

The following are available:

- a description of how to implement validation using an algorithm based on the idea of a derivative; this corresponds to the algorithm implemented in Jing
- notes on how to handle the tricky parts of simplifying the full syntax into simple syntax, specifically how to deal with `grammar`, `define`, `ref` and `parentRef`
- a note on how to detect whether two name classes overlap

For some background on implementing validation of schemas in XML, see Taxonomy of XML Schema Languages using Formal Language Theory.