February 13, 2002 - Writing A DTD for An XML File
February 13, 2002 Writing A DTD for An XML File Tips: February 2002
Yehuda Shiran, Ph.D.
|
DOCTYPE
declaration. The DOCTYPE
declaration can either point to an inline DTD or can be a reference to an external DTD file.Our mydvd XML file can be validated against the following DTD:
<!ELEMENT sales (summary, data)>
<!ELEMENT summary (heading, subhead, description, author)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT subhead (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT author (#PCDATA)>
<!ELEMENT data (month*)>
<!ELEMENT month (name, week*)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT week (#PCDATA)>
<!ATTLIST week number CDATA #REQUIRED>
<!ATTLIST week dvds_rented CDATA #REQUIRED>
<!ENTITY preparedby "John Smith">
<!ENTITY month "April">
Here is our mydvd
XML file:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="mydvd7.xsl"?>
<!DOCTYPE sales SYSTEM "mydvd7.dtd">
<sales>
<summary>
<heading>MyDVD Rental Store</heading>
<subhead>Periodical Sales Report</subhead>
<description>Sales Report for January, February, and March of 2001</description>
<author>author: John Smith</author>
</summary>
<data>
<month>
<name>January 2001</name>
<week number="1" dvds_rented="12000" />
<week number="2" dvds_rented="15000" />
<week number="3" dvds_rented="18000" />
<week number="4" dvds_rented="11800" />
</month>
<month>
<name>February 2001</name>
<week number="1" dvds_rented="11500" />
<week number="2" dvds_rented="12390" />
<week number="3" dvds_rented="19050" />
<week number="4" dvds_rented="11200" />
</month>
<month>
<name>March 2001</name>
<week number="1" dvds_rented="15300" />
<week number="2" dvds_rented="12390" />
<week number="3" dvds_rented="10050" />
<week number="4" dvds_rented="11230" />
</month>
</data>
</sales>