The Downsides of Ambiguous and Nondeterministic Content Models
Again, if you’re interested in using a RELAX NG schema only for validation—which, after all, is the primary goal of RELAX NG—it is perfectly fine to design and use nondeterministic and even ambiguous schemas. The downsides of ambiguous schemas appear when using RELAX NG schemas for adding validation information to instance documents or using a RELAX NG schema for guided editing. The downsides of nondeterministic schemas appear only when translating schemas into a W3C XML Schema.
Instance Annotations
For the purposes of RELAX NG, instance annotation is the ability to attach information gathered during validation to facilitate instance document processing. Instance annotation is one of the more promising paths to automating XML document processing. Its applications cover domains from datatype assignment (the basis of XQuery 1.0, XPath 2.0, and XSLT 2.0), to data binding (automating the creation of objects from XML documents and the creation of XML documents from objects), to XML guided editing.
Some tools may have more stringent requirements, depending on their algorithms (for instance, a SAX-based streaming tool might require deterministic schemas), but in theory (and in general), it is sufficient for the applications of instance annotations to ensure that the annotations are consistent. Consistency can be achieved if the schema is unambiguous.
Note that even this freedom from ambiguity isn’t always required. These requirements ...
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.