DTD:Document Type Definition
A Document Type Definition (DTD) defines the legal building blocks of an XML document. It defines the document structure with a list of legal elements and attributes.
A DTD can be defined inside a XML document, or a external reference can be declared .
Internal DTD
If the DTD is defined inside the XML document, it should be wrapped in a DOCTYPE definition with the following syntax:
<!DOCTYPE root-element [element-declarations]> |
Example of a XML document with an internal DTD: E-mail.xml
<?xml version="1.0"?> <!DOCTYPE E-mail[ <!ELEMENT E-mail (To,From,subject,Body)> <!ELEMENT To (#PCDATA)> <!ELEMENT From (#PCDATA)> <!ELEMENT Subject (#PCDATA)> <!ELEMENT Body (#PCDATA)> ]> <E-mail> <To>Rohan</To> <From>Amit</From> <Subject>Surprise....</Subject> <Body>Be ready for a cruise...i will catch u tonight</Body> </E-mail> |
Open the file E-mail.xml in a web-browser . you will see the following :
External DTD
If the DTD is defined in an external file, it should be wrapped in a DOCTYPE definition with the following syntax:
<!DOCTYPE root-element SYSTEM "filename"> |
This is the same XML document as above,(but with an external DTD ) : E-mail.xml
<?xml version="1.0"?> <!DOCTYPE E-mail SYSTEM "E-mail.dtd"> <E-mail> <To>Rohan</To> <From>Amit</From> <Subject>Surprise....</Subject> <Body>Be ready for a cruise...i will catch u tonight</Body> </E-mail> |
And this is the file "E-mail.dtd" which contains the following DTD:
<!ELEMENT E-mail (To,From,subject,Body)> <!ELEMENT To (#PCDATA)> <!ELEMENT From (#PCDATA)> <!ELEMENT Subject (#PCDATA)> <!ELEMENT Body (#PCDATA)> |
Open the file E-mail.xml in a web-browser. It will display the following :
Importance of a DTD?
- With a DTD, a XML file carries a description of its own format.
- With a DTD, independent groups of people can agree to use a standard DTD for interchanging data.
- User application can use a standard DTD to verify that the data he receives from the outside world is valid.
- User can also use a DTD to verify his own data.