Schemas and validation play a major role in reliable application communication. Developing a firm understanding of how to express document relationships within a schema is crucial to using them effectively. In this chapter, we concentrate on DTDs, but the concepts presented here apply to all schema languages. See the discussion of alternate schema languages in Chapter 2 for pointers to Python modules that support schema languages other than the DTD language defined as part of XML 1.0.
The DTD is represented in the internal DTD subset, the external DTD subset, or the combination of the two. As the name suggests, the internal subset rides along with the XML document instance, whereas the external subset is stored as a link telling the parser where to find the DTD.
xmlproc package is
a validating parser for Python. As of this writing, it is the only
validating parser available for Python that is also
implemented in Python. If you have the PyXML
package installed, as we assume throughout this book, you already have
xmlproc available and may already use
it in your programs. The
package can be imported from the
>>> from xml.parsers import xmlproc
There is a good chance that if you have been working
with XML for a while, you are able to easily pick up the basic syntax
of DTDs just by seeing a few examples. The
xmlproc package features a command-line
routine called xvcmd.py. This simple utility ...