Freigestellt ist, ob die DTD innerhalb des Dokumentes, oder auch als externe Datei untergebracht wird. Wir werden Ihnen selbstverständlich beide Möglichkeiten zeigen, und beginnen einmal mit einer einfachen externen DTD. Erschrecken Sie nicht, falls Sie auf den ersten Blick nichts verstehen, wir erklären alles Schritt für Schritt.
XML-Schlüsselwörter schreiben wir in unseren Beispielen generell
GROSS, Attribute später generell mit einem
Grossen Anfangsbuchstaben und die Namen der Elemente, Attribute usw. generell
klein! Wie Sie später damit umgehen, bleibt Ihnen selbst überlassen, wir versuchen nur, Ihnen somit die Beispiele noch verständlicher zu machen!
<!-- DTD-Definition Adressen -->
<!ELEMENT adresse (vorname, nachname, strasse, plz, ort)>
<!ELEMENT vorname (#PCDATA)>
<!ELEMENT nachname (#PCDATA)>
<!ELEMENT strasse (#PCDATA)>
<!ELEMENT plz (#PCDATA)>
<!ELEMENT ort (#PCDATA)>
Mit dieser DTD könnte man folgendes Dokument mit externem Hinweis auf die DTD ("adressen.dtd") erstellen.
<?xml version="1.0" encoding="UTF-8"?>
<!-- Dann wird die DTD eingebunden -->
<!DOCTYPE adresse SYSTEM "adressen.dtd">
<!-- Jetzt kann das Schema folgen -->
<adresse>
<vorname> Hans </vorname>
<nachname> Mustermann </nachname>
<strasse> Musterweg 1 </strasse>
<plz> 12345 </plz>
<ort> Musterstadt </ort>
</adresse>
Nun zur Erläuterung:
In der DTD benennen wir als erstes das Element «adresse». Dies ist das sogenannte
Root-Element, das innerhalb eines XML-Dokumentes nur 1(!) mal vorkommen darf.
<!ELEMENT adresse ...
Beim Einbinden der DTD bezieht sich diese auf das Root-Element!
... adresse SYSTEM ...
Dann legen wir den Inhalt des Elementes «adresse» fest! Hier müssen innerhalb des Elementes die Unterelemente ("vorname, nachname usw.") vorkommen.
... (vorname, nachname, strasse, plz, ort)>
Nun wird der Inhalt dieser Elemente wiederum festgelegt
<!ELEMENT vorname #PCDATA>
<!ELEMENT nachname #PCDATA>
usw.
Mit Hilfe des Schlüsselwortes «#PCDATA» wird angegeben, dass der Inhalt des Elements aus beliebigen Zeichenfolgen bestehen darf.
»