Chapter 15. Simplification and Restrictions

Simplification and restriction are two topics that I have generally avoided throughout this book. They’re deeply technical and don’t have much direct impact when you’re writing a RELAX NG schema. Still, this book wouldn’t be complete without describing simplifications and restrictions.

Why should you care at all about simplification if it’s so technical and looks like an implementation algorithm? To be honest, most of the time you don’t have to care about this stuff at all. Simplification can be seen as an intermediate step when a RELAX NG processor reads a schema. During this step, all the syntactical sugar is removed, and the processor can then work with a perfectly normalized schema. The few restrictions that exist when using RELAX NG are formalized relative to this normalized version of the schema. Because of the flexibility of RELAX NG, formalizing restrictions on schemas before simplification would be very complex and difficult to read. The downside of not having to worry about such things most of the time is that when you do hit one of these restrictions, you often need to understand the main principles of the simplification process to understand what’s happening. The good news is that it doesn’t happen very often!

Get RELAX NG now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.