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).
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
people.dtd
, 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
follow the <?xml>
line but precede any
actual data.
<?xml version="1.0"?> <!DOCTYPE people SYSTEM "people.dtd"> <people> <person> <name>Ian Darwin</name> <email>[email protected]</email> <country>Canada</country> </person>
Pass true
as a second argument to the
createXMLDocument( )
method;
true
means “enforce document
validity.”
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.
3.135.200.14