www.xml-xslt.de


Startseite

Das Buch

Auszeichnungssprachen

XML-Dokument

Struktur: dtd
Dokumenttypendefinition
Elemente
Attribute

Retrieval: XSLT

5. Struktur: DTD

5.1    Struktur und Dokumenttypendefinition

Die Dokumenttypendefinition (DTD) eines Dokumentes ist seine Grammatik. Wie die Grammatik der Sprache die Regeln enthält, nach welchen wir die Sprachelemente (die Wörter) zu Sätzen mit Inhalten verbinden können, so enthält die DTD die Regeln, welche Elemente in welcher Gruppierung und Häufigkeit in einem XML-Dokument zur Darstellung der Inhalte verwendet werden dürfen oder müssen.


    Die DTD schränkt damit die Beliebigkeit der XML-Elemente in einem Dokument ein. Ohne eine DTD wäre ein XML-Dokument für eine Email in vielen Formen denkbar:

<?xml version="1.0" encoding="UTF-8"?>
<email>
    <from>
        hans@mustermann.de
    </from>
    <to>
        fred@mustermann.de
    </to>
    <text>
        Hallo Hans!
        Gruß Fred
    </text>
</email>

Wohlgeformtes XML wäre aber auch folgendes Beispiel, doch ist dies - ohne einen Adressaten - keine sinnvolle Email:

<?xml version="1.0" encoding="UTF-8"?>
<email>
    <from>
        hans@mustermann.de
    </from>
    <text>
        Hallo Hans!
        Gruß Fred
    </text>
</email>

    
Damit stellt hier eine fiktive DTD sicher, dass in der XML-Instanz “Email” stets alle Elemente enthalten sind, die enthalten sein müssen. Weiterhin können durch die DTD auch fakultative Elemente angeboten werden. Auch die Reihenfolge der Elemente kann festgeschrieben werden oder sie wird als beliebig gekennzeichnet.


    Eine DTD alleine ist kein wohlgeformtes XML-Dokument. Dies ist ein wesentlicher Unterschied zu XML-Schemata, einer weiteren Form der Erstellung von Dokumentgrammatiken (siehe Kapitel 7 in diesem Buch).


Eine DTD kann direkt in eine XML-Instanz eingebunden werden. Damit ist die DTD Teil der XML-Instanz (siehe Kapitel 3.5.3). Diese Vorgehensweise empfiehlt sich für XML-Instanzen, die einzigartig sind und auf deren Grammatik damit keine anderen Dokumente zugreifen wollen. Auch beim Datenaustausch kann es sinnvoll sein, die DTD direkt in eine XML-Instanz einzubinden, und damit dem Empfänger der Daten die Inhalte und die Regeln zur Erstellung dieser Inhalte zu übergeben.


    Die DTD kann aber auch extern vorliegen, in einer eigenen Datei, die dann nur die DTD enthält. Auf diese Weise können viele verschiedene XML-Instanzen auf eine DTD zugreifen - auch z.B. über das Internet. In diesem Fall liegt in der XML-Instanz lediglich eine Referenz auf die DTD vor.

 

 

 


 
 
 
 
 
 
 
 
 
 

Das XML/XSLT-Seminar
(zur Zeit als Buch nicht lieferbar)