XML DTD

Ein syntaktisch korrektes XML-Dokument wird als "gut formatiert" bezeichnet.

Ein XML-Dokument, das nach DTD validiert wird, ist sowohl "gut formatiert" als auch "gültig".

Was ist eine DTD?

DTD stellt die Dokumenttypdefinition (Document Type Definition) dar.

DTD definiert die Struktur von XML-Dokumenten sowie gültige Elemente und Attribute.

Gültiges XML-Dokument

Ein "gültiges" XML-Dokument ist sowohl "gut formatiert" als auch den Regeln der DTD entsprechen:

<?xml version="1.0" encoding="UTF-8"?>
!DOCTYPE note SYSTEM "Note.dtd">
<note>
<to>George</to>
<from>John</from>
<heading>Erinnerung</heading>
<body>Denken Sie nicht daran, das Treffen zu vergessen!</body>
</note>

Das obige DOCTYPE-Deklaration enthält eine Referenz auf die DTD-Datei. Im Folgenden wird der Inhalt der DTD-Datei gezeigt und erläutert.

XML DTD

DTD hat zum Ziel, die Struktur von XML-Dokumenten sowie gültige Elemente und Attribute zu definieren:

Note.dtd:

!DOCTYPE note
[
!ELEMENT note (to,from,heading,body)
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>

Die obige DTD wird wie folgt erläutert:

!DOCTYPE note - Definiert den Wurzelelement des Dokuments als note
!ELEMENT note - Definiert, dass das note-Element die folgenden Elemente enthalten muss: "to, from, heading, body"
!ELEMENT to - Definiert das to-Element als "#PCDATA"-Typ
!ELEMENT from - Definiert das from-Element als "#PCDATA"-Typ
!ELEMENT heading - Definiert den heading-Element als "#PCDATA"-Typ
!ELEMENT body - Definiert den body-Element als "#PCDATA"-Typ

Hinweis:#PCDATA stellt charakteristische Daten (parseable character data) dar.

Entity-Deklaration mit DTD

Die DOCTYPE-Deklaration kann auch verwendet werden, um spezielle Zeichen oder Zeichenfolgen in einem Dokument zu definieren:

Beispiel

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note [
<!ENTITY nbsp " ;">
<!ENTITY writer "Writer: Bill Gates.">
<!ENTITY copyright "Copyright: CodeW3C.com.">
]>
<note>
<to>George</to>
<from>John</from>
<heading>Erinnerung</heading>
<body>Denken Sie nicht daran, das Treffen zu vergessen!</body>
<footer>&writer; ©right;</footer>
</note>

Hinweis:Ein Entity besteht aus drei Teilen: Es beginnt mit einem Ampersand (&), gefolgt vom Entity-Namen und endet mit einem Semikolon (;).

Wann sollte DTD verwendet werden?

Mit DTD können unabhängige Gruppen eine Einigung über Standards für den Datenaustausch erzielen.

Mit DTD können Sie überprüfen, ob die von außen empfangenen Daten gültig sind.

Sie können auch DTD verwenden, um Ihre eigenen Daten zu validieren.

If you want to learn DTD, please read our DTD Tutorial.

When not to use DTD?

DTD is not necessary for XML.

If you are testing XML or using a very small XML file, creating DTD may be a waste of time.

If you are developing an application, wait until the specification is stable before adding DTD. Otherwise, your software may stop working due to validation errors.