Websiteentwicklung: XML: Dokumenttypdefinition (DTD)
Aus Wikibooks
Inhaltsverzeichnis |
[Bearbeiten] Erstellen von Regeln
Damit ein XML-Dokument wohlgeformt ist, muss es sich an die Wohlgeformtheitsregel halten (richtige Verschachtelung, geschlossene Tags, usw.). Die Dokumenttypdefinition, kurz DTD genannt, regelt, welche Elemente und Attribute in einem XML-Dokument gültig sind, wie oft sie verwendet werden können, oder welche Daten sie umfassen dürfen. Dies ist nötig, da, wie unter Aufbau eines XML-Dokumentes beschrieben, die Namensvergabe für Elemente freigestellt ist. Hält sich ein wohlgeformtes XML-Dokument an die in einer DTD formulierten Regeln, ist es auch gültig.
Dieser Bereich ist für Fortgeschrittene gedacht und für den Anfänger noch nicht notwendig.
Ein Beispiel für eine DTD:
<!ELEMENT Person (Name,Kind*)> <!ELEMENT Kind (Name)> <!ELEMENT Name (#PCDATA)>
Diese DTD sagt aus, dass es ein Element Person gibt, mit den Unterelementen Name und Kind, wobei Kind öfter als einmal vorkommen darf. Desweiteren bestimmt diese DTD, dass Name nur mit Zeichendaten gefüllt sein darf.
Ein wohlgeformtes gültiges XML-Dokument sähe dann so aus:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Person SYSTEM "Person.dtd">
<Person>
<Name>Manfred Müller</Name>
<Kind>
<Name>Olivia Müller</Name>
</Kind>
<Kind>
<Name>Marc Müller</Name>
</Kind>
</Person>
[Bearbeiten] Erstellen eines DTD-Schemas
Zur Erstellung einer DTD wird lediglich ein Texteditor benötigt. Speichern Sie im Anschluss die Datei mit der Erweiterung .dtd.
[Bearbeiten] Einbinden einer DTD in ein XML-Dokument
Es gibt zwei Wege eine DTD in ein XML-Dokument einzubinden. Entweder über Interne DTDs oder über Externe DTDs.
[Bearbeiten] Interne DTD
Eine DTD kann auch direkt in ein XML-Dokument integriert werden. Sämtliche Deklarationen werden dann von <!DOCTYPE Wurzelelement [ sowie ]> umklammert.
Beispiel:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Person [
<!ELEMENT Person (Name,Kind*)>
<!ELEMENT Kind (Name)>
<!ELEMENT Name (#PCDATA)>
]>
<Person>
<Name>Manfred Müller</Name>
<Kind>
<Name>Olivia Müller</Name>
</Kind>
<Kind>
<Name>Marc Müller</Name>
</Kind>
</Person>
[Bearbeiten] Externe DTD
Beispiel:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE Person SYSTEM "Person.dtd">
<Person>
<Name>Manfred Müller</Name>
<Kind>
<Name>Olivia Müller</Name>
</Kind>
<Kind>
<Name>Marc Müller</Name>
</Kind>
</Person>
[Bearbeiten] Markup-Deklaration
[Bearbeiten] Elementtyp-Deklaration
Eine DTD beginnt zunächst mit der Deklarartion von Elementen eines XML-Dokumentes. Alle in einer DTD deklarierten Elemente können in einem XML-Dokument genutzt werden. Im Umkehrschluss bedeutet dies, dass nicht-deklarierte Elemente nicht verwendet werden dürfen.

