Building an XML DTD
Now that we've emerged from the gory details of XML DTDs, let's see how they work by creating a simple example. You can create a DTD with any text editor and a clear idea of how you want to mark up your XML documents. You'll need an XML parser and processing application to actually interpret and use your DTD, as well as a stylesheet to permit XML-capable browsers to display your document.
An XML Address DTD
Let's create a simple XML DTD that defines a markup language for
specifying documents containing names and addresses. We start with an
address element, which contains
other elements that tag the address contents. Our address element has a single attribute
indicating whether it is a work or a home address:
<!ELEMENT address (name, street+, city, state, zip?)>
<!ATTLIST address type (home|business) #REQUIRED>
Voilà! The first declaration creates an
element named address that contains
a name element, one or more street elements, a city and state element,
and an optional zip element. The address element has a single attribute,
type, which must be specified and
can have a value of either home or
business.
Let's define the name
elements first:
<!ELEMENT name (first, middle?, last)>
<!ELEMENT first (#PCDATA)>
<!ELEMENT middle (#PCDATA)>
<!ELEMENT last (#PCDATA)>
The name element also contains other elements—a first name, an optional middle name, and a last name—each defined in the subsequent DTD lines. These three elements have no nested tags and contain only parsed ...