Chapter 4. Introducing the Compact Syntax
Although the schema shown in Chapter 3 is simple, its XML representation is rather verbose. This is neither surprising nor uncommon for XML vocabularies. In fact it conforms to the basic principles of XML; the W3C Recommendation’s design goals state that “XML documents should be human-legible and reasonably clear” and that “terseness in XML markup is of minimal importance.” Our schema is a good example of a “human-legible and reasonably clear” document that’s definitely not terse!
The principal goal of RELAX NG’s XML syntax is to provide a serialization of RELAX NG schemas that can be processed by computers using standard XML toolkits. To make it easier for people to read and write RELAX NG schemas, however, James Clark introduced a second syntax that is strictly equivalent to the XML syntax, a more concise compact syntax .[1]
RELAX NG processors can support this compact syntax, but they aren’t required to do so. If a RELAX NG processor doesn’t support the compact syntax, you can translate the XML syntax to and from the compact syntax using existing translators. Because these two forms are strictly equivalent, there’s no loss of information during translation. Even comments and annotations (presented in Chapter 13) are preserved in the process.
Tip
Syntactical details of XML, such as entity references or processing instructions, are lost when the XML syntax is translated into the compact syntax, but this is a limitation of the XML processing ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access