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.
Chapter 1: What RELAX NG Offers - This chapter explores the XML validation, what schema languages do, and what makes RELAX NG unique.
Chapter 2: Simple Is Beautiful - This chapter introduces the background of RELAX NG itself and explores the notion of a pattern, the elementary building block on which the whole language is built.
Chapter 3: First Schema - This chapter builds, step by step, a first complete RELAX NG schema using the XML syntax.
Chapter 4: Compact Syntax - The XML syntax is very useful, but it is also verbose. This chapter introduces an alternative, a compact (non-XML) syntax.
Chapter 5: Flattening Our First Schema - Our first schema followed the structure of our instance document to create what is called a Russian doll design. In this chapter we show how named patterns can be used to limit the depth of a schema, provide re-usability, and mimic DTD structures.
Chapter 6: More Patterns - Up to now, we have only seen ordered sequences of elements. In this chapter we introduce new compositors for defining choices between elements as well as unordered (interleaved) content models.
Chapter 7: Constraining Text Values - In this chapter we introduce the mechanisms used to constrain text values and the two datatypes (string and token) built into RELAX NG.
Chapter 8: Datatype Libraries - In this chapter we see how external datatype libraries may be used in RELAX NG schemas, and spend some type exploring the two datatype libraries which are most frequently used: the W3C XML Schema library and the DTD compatibility library.
Chapter 9: W3C XML Schema Regular Expressions - This chapter explores one of the most powerful aspects of datatypes, the pattern facet of the W3C XML Schema datatype library, and its particular flavor of regular expressions.
Chapter 10: Creating Building Blocks - Now that we have now all the building blocks, we see in this chapter how we can reuse and redefine them in grammars which can be merged.
Chapter 11: Namespaces - This chapter provides a brief explanation both of what XML namespaces are and how RELAX NG supports their use.
Chapter 12: Writing Extensible Schemas - This chapter covers both the extensibility of schemas themselves and the extensibility of the class of instance documents described by a schema.
Chapter 13: Annotating Schemas - Schema annotations are useful both for documentation targeted to human users and to provide additional information to software. We explore annotations and their applications, including projects like embedding Schematron rules in RELAX NG schemas, Bob DuCharme's schema document pipeline proposal, and my own xvif.
Chapter 14: Generating RELAX NG schemas - This chapter explores how to generate RELAX NG from different sources, including instance documents (Examplotron), UML diagrams, spreadsheets, and literate programming.
Chapter 15: Simplification And Restrictions - This chapter goes into the details of the simplification of RELAX NG schemas performed by RELAX NG processors. These details explain some obscure limitations.
Chapter 16: Determinism and Datatype Assignment - One of the strengths of RELAX NG is that it allows the creation of non-deterministic schemas. While this is extremely convenient for validation purposes, it creates issues for datatype assignment. This chapter examines schema determinism and ambiguity and their impact on the different uses of RELAX NG.
Chapter 17: RELAX NG Elements - This chapter is a short reference guide describing all the elements of the XML syntax with descriptions, synopses and examples.
Chapter 18: Compact Syntax Reference - This chapter is a short reference guide for all the components of the compact syntax including descriptions, synopses and examples.
Chapter 19: W3C XML Schema Datatypes - This chapter is a short reference guide to W3C XML Schema datatypes, often used as an external datatype library in RELAX NG schemas.
Chapter 20: Glossary - This chapter provides a concise explanation of terms used throughout the book.
Appendix A: DSDL - This appendix presents the ISO DSDL project which includes RELAX NG as its Part 2.
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.