Up to now, I have simply provided XML and asserted that it is valid. Now you want to verify the structure using a Document Type Definition (DTD).
Write the DTD and refer to it in one or more XML documents.
This is not the place for a full dissertation on creating a Document
Type Definition. Briefly, a DTD consists of a header and a list of
the elements and any attributes. The DTD is written in a special
language that allows you to specify the elements and attributes.
Example 21-7 is
, a DTD for the
people.xml file used earlier in this chapter.
Example 21-7. people.dtd
<!ELEMENT people (person)*> <!ELEMENT person (name, email, country)> <!ELEMENT name (#PCDATA)> <!ATTLIST email type CDATA #IMPLIED> <!ELEMENT email (#PCDATA)> <!ELEMENT country (#PCDATA)>
To verify that a file conforms to a DTD, you do two things:
Refer to the DTD from within the XML file, as is sometimes seen in
HTML documents. The
<!DOCTYPE> line should
<?xml> line but precede any
<?xml version="1.0"?> <!DOCTYPE people SYSTEM "people.dtd"> <people> <person> <name>Ian Darwin</name> <email>email@example.com</email> <country>Canada</country> </person>
true as a second argument to the
createXMLDocument( ) method;
true means “enforce document
XmlDocument doc = XmlDocument.createXmlDocument(uri);
Now any elements found in the document that are not valid according to the DTD will result in an exception being thrown.