RELAX NG by Eric van der Vlist will be published by O'Reilly & Associates (ISBN: 0596004214)
You are welcome to use our annotation system to give your feedback.
Table of Contents
In the last chapter, we saw how information could be added to RELAX NG schemas to make them more readable. The information could also improve our ability to extract information from the schemas or to transform them into other useful documents such as documentation, diagrams, or applications. So far, the underlying assumption in this book has been that schema designers will work directly in RELAX NG. This is certainly a reasonable point of view. However, a RELAX NG schema (and any XML schema in general) is a fairly concrete model of a class of instance documents. We may also want to work with our information in more abstract or more concrete ways and generate our RELAX NG schemas based on our results from these other approaches.
RELAX NG shines as an ideal choice for a target language since it almost completely lacks restrictions. This lack of restrictions means that during the transformation of a model into a RELAX NG schema, you won't have to remind yourself of these kinds of things: "I must declare all my attributes after my elements", "I should disallow unordered models in such and such circumstances", "if I have already declared this content here, I can't declare it again here". In other words, using RELAX NG as your target language will make your life much easier by letting you concentrate on your document structures instead of worrying about the constraints of the schema language.
What other levels might we want to work on? We have the option of taking either a more concrete or more abstract approach than RELAX NG. It could either have a "bottom up" or "top down" approach. Proponents of a "bottom up" approach suits those who would enjoy working with instance documents rather than with schemas. Examplotron has been designed for these people. Those adept at using a "top down" approach will want to work at a higher level of abstraction and use a methodology such as UML to model their documents. These two approaches may lead to many other variants. We will also see how developers using literate programming techniques can include RELAX NG patterns in their documentation or replace their RELAX NG schema with a simple spreadsheet.
You are welcome to use our annotation system to give your feedback.
[Annotations for this page]
All text is copyright Eric van der Vlist, Dyomedea. During development, I give permission for non-commercial copying for educational and review purposes. After publication, all text will be released under the Free Software Foundation GFDL.