source beim
Element <Buchcover>) bestehen. Durch die Verschachtelung werden die Elemente
in eine hierarchische Ordnung gebracht, die sich als Baumstruktur darstellen
lässt.
Es gibt zwei verschiedene Arten von XML-Dokumenten, zwischen denen
unterschieden wird. Zum einen handelt es sich hierbei um wohlgeformte (well-formed)
Dokumente. Diese müssen lediglich den syntaktischen Regeln der XML-Spezifikation
entsprechen.55
Das bedeutet explizit, dass solche Dokumente ein ausgezeichnetes Root-Element (Wurzelelement)
besitzen. Zusätzlich müssen die weiteren Unterelemente korrekt ineinander verschachtelt sein. Das
heißt, dass jeder geöffnete Tag auch wieder in entsprechend umgekehrter Reihenfolge geschlossen
werden muss.
|
Zum anderen existieren die so genannten gültigen (valid) XML-Dokumente. Ein solches
Dokument erfordert zusätzlich das Vorhandensein einer so genannten Document Type Definition
(DTD)56 .
Diese sind aber aus zwei Gründen sehr sinnvoll und nützlich. Auf der einen
Seite sagen sie den Verfassern von Dokumenten, welche Strukturen in dem
entsprechenden Dokument überhaupt vorkommen dürfen. Auf der anderen Seite sagen
sie Programmierern von Anwendungen, welche Struktur bei der Erstellung
entsprechender Anwendungen zu berücksichtigen ist.
Im Folgenden wird nun darauf eingegangen, was genau eine DTD ist und wie sich
deren Deklaration gestaltet.
15.6.2. Die Document Type Definition (DTD)
In einer Document Type Definition wird festgelegt, welche Elementtypen in den
Dokumenten eines bestimmten Dokumenttyps verwendet werden dürfen. Vom Prinzip
her wird hier auch der strukturelle Aufbau eines XML-Dokumentes festgelegt. Eine
Dokumentenklasse ›Brief‹ wird aller Voraussicht nach Elemente wie <Adresse>,
<Absender>, <Anrede> sowie <Text> enthalten. Die Elemente <Adresse> und
<Absender> besitzen wahrscheinlich noch Unterelemente wie z. B. <Vorname>,
<Nachname> bzw. <Straße> und <Ort>. Des Weiteren wird in der DTD festgelegt, welche
Attribute zu einem Element gehören und welchen Wert sie annehmen können. In
Abbildung 15.3 ist eine zum Beispiel zur Literaturkartei (vgl. Abbildung 15.2) passende
DTD dargestellt.
Die Definition einer DTD erfolgt immer durch die Einleitung <!DOCTYPE..>. Dann
werden zunächst die verschiedenen Elemente und schließlich die dazugehörigen Attribute
deklariert. In unserem Beispiel ist das Wurzel-Element (<Literatur.Kartei>).
Dieses enthält ein Element <Buch>. Das (+) bedeutet, dass dieses Element
Unterelemente enthält. Diese sind in der nächsten Zeile aufgeführt: <Name> (enthält
wiederum Unterelemente), <Titel>, <Verlag>, <Jahr>, <Ort>, <Photocover> und
<Zusammenfassung>. Zudem kann an dieser Stelle auch festgelegt werden, ob diese
Elemente optional (?) (vgl. Photocover>) oder alternativ (/) sind und wie oft sie
auftreten können: einmal () oder beliebig oft (*). Schließlich wird der Inhalt für jedes
Element definiert. Viele Elemente haben den Inhalt #PCDATA (Parsed Charakter Data).
Solche Elemente dürfen nur reinen Text und keine weiteren Unterelemente enthalten.
Eine Ausnahme bildet in unserem
|