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 style sheet 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 home
address:
<!ELEMENT address (name, street+, city, state, zip?)> <!ATTLIST address type (home|business) #REQUIRED>
Voila! 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
, that 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 of which are defined in the subsequent DTD lines. These three elements have no nested tags and contain ...
Get HTML & XHTML: The Definitive Guide, 5th Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.