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.

|
Current Comments
0 comments so far (post your own) View All Comments Latest 10 Comments: