A compliant XML processor must check that XML documents have the proper structure?called well-formedness?and may also check for validity, i.e., whether the markup in a document matches a schema definition for that document. A schema describes the structure and semantics an XML document must satisfy, and is usually a separate document, written in a specific language. An instance of a given schema is an XML document that is said to be valid or invalid with regard to that schema.
This chapter contains hacks using schema languages such as XML 1.0's native Document Type Definition or DTD [Hack #68], W3C's XML Schema [ [Hack #69], OASIS' RELAX NG [Hack #72], and Academia Sinica Computing Centre's Schematron [Hack #77] .
Another hack shows you how to validate multiple documents with XML Schema at one time [Hack #70], while another helps you check the integrity of an XML Schema [Hack #71] . A special, advanced hack helps you create DTD customizations with RELAX NG [ [Hack #78] .
You'll also see how to create a DTD from a sample XML document [Hack #73], an XML Schema file from a document [Hack #74], and a RELAX NG schema from a document [Hack #75] . If you prefer, you can develop schemas with RELAX NG and then convert them into XML Schema [Hack #76] along the way. The last hack in this group introduces a tool that lets you generate sample documents based on schemas [Hack #79] .
Files mentioned in this chapter are in the book's file archive, available for downloading from http://www.oreilly.com/catalog/xmlhks/.