DTD-Tutorial

Die Dokumenttypdefinition (DTD) kann die Bausteine eines gültigen XML-Dokuments definieren. Sie verwendet eine Reihe gültiger Elemente, um die Struktur des Dokuments zu definieren.

DTD kann in Zeilenform in einem XML-Dokument deklariert werden oder als externer Verweis.

Interne DOCTYPE-Deklaration

Wenn das DTD in Ihrer XML-Quelldatei enthalten ist, sollte es in einer DOCTYPE-Deklaration wie folgt verpackt werden:

!DOCTYPE Wurzelelement [Elementdeklarationen]>

Beispiel eines XML-Dokuments mit DTD (Öffnen Sie es im IE5 und höheren Versionen und wählen Sie "Quellcode anzeigen"):

<?xml version="1.0"?>
!DOCTYPE note [
  !ELEMENT note (to,from,heading,body)>
  !ELEMENT to      (#PCDATA)>
  !ELEMENT from    (#PCDATA)>
  !ELEMENT heading (#PCDATA)>
  !ELEMENT body    (#PCDATA)>
]>
<note>
  <to>George</to>
  <from>John</from>
  <heading>Erinnerung</heading>
  <body>Denken Sie daran, die Sitzung nicht zu vergessen!</body>
</note>

Öffnen Sie diese XML-Datei in Ihrem Browser und wählen Sie den Befehl "Quellcode anzeigen" aus.

Die obige DTD wird wie folgt erläutert:

!DOCTYPE note (Zeile 2) Definition dieses Dokuments ist note Dokumenttypen.

!ELEMENT note (Zeile 3) Definition note Das Element hat vier Elemente: "to, from, heading, body"

!ELEMENT to (Zeile 4) Definition to Elemente vom Typ "#PCDATA"

!ELEMENT from (Zeile 5) Definition from Elemente vom Typ "#PCDATA"

!ELEMENT heading (Zeile 6) Definition heading Elemente vom Typ "#PCDATA"

!ELEMENT body (Zeile 7) Definition body Elemente vom Typ "#PCDATA"

Außendokumentdeklaration

Falls die DTD sich außerhalb der XML-Quelldatei befindet, sollte sie in der folgenden Syntax in einer DOCTYPE-Definition eingeschlossen werden:

!DOCTYPE Wurzelelement SYSTEM "Dateiname">

Dieser XML-Dokument ist identisch mit dem obigen XML-Dokument, aber mit einer externen DTD: (Öffnen Sie es im IE5und wählen Sie den Befehl "Quellcode anzeigen" aus.)

<?xml version="1.0"?>
!DOCTYPE note SYSTEM "note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Erinnerung</heading>
<body>Denken Sie daran, die Sitzung nicht zu vergessen!</body>
</note>

Dies ist die Datei "note.dtd", die DTD enthält:

!ELEMENT note (to,from,heading,body)>
!ELEMENT to (#PCDATA)>
!ELEMENT from (#PCDATA)>
!ELEMENT heading (#PCDATA)>
!ELEMENT body (#PCDATA)>

Why use DTD?

Through DTD, each XML file can carry a description of its own format.

Through DTD, independent groups can use a standard DTD to exchange data consistently.

And your application can also use a standard DTD to validate data received from external sources.

You can also use DTD to validate your own data.