Das zentrale Objekt, um das sich hier alles dreht, ist
das Dokument. Eine allgemeine Vorstellung davon, was
Dokumente sind, besitzt wohl jeder. XML will es
etwas genauer wissen. Oder besser gesagt: Ein Programm, das
ein Dokument verarbeiten soll, will es etwas genauer
wissen. Irgendwelche Dateien, die nicht das richtige
Format
besitzen, werden nicht akzeptiert. Dass
XML-Daten reine Textdateien (im Gegensatz zu
Binärdateien) sind, wissen Sie schon. Sie wissen auch, dass die Struktur
eines Textes darin abgespeichert ist. Damit der Rechner diese
Strukur auch erkennen kann, muss die XML-Instanz
den vorgegebenen Regeln exakt folgen. Die Regel für ein
Dokument sieht wie folgt aus:
Da sage noch jemand, XML sei kompliziert! Einfacher könnte ein Dokument doch gar nicht aussehen; nur zwei Kästchen. — Sie werden es schon erraten haben, hinter den beiden Kästchen versteckt sich noch etwas mehr. Bei dem Prolog handelt es sich nicht um die Vorrede für Ihren Text, sondern um eine Einleitung des XML-Dokuments, die dem verarbeitenden Programm einige Informationen liefert.
Der prolog [22] kann optional leer sein, besitzt aber üblicherweise mindestens folgende Form:
<?xml version="1.0"?>
Diese Zeile ist die XML-Deklaration. Falls notwendig, so enthält sie auch noch Informationen über die Kodierung des Dokuments. Das sieht dann etwa so aus:
<?xml version="1.0" encoding="UTF-8"?> oder auch <?xml version="1.0" encoding="ISO-8859-1"?>
Die Versionsnummer bezieht sich auf die
Version der XML-Spezifikation. Zurzeit darf dort
nur die Nummer 1.0
stehen. In Zukunft kann es auch
weitere Möglichkeiten geben, je nachdem, wie sich die
Weiterentwicklung der Sprache gestaltet.
Wenn sich ein Dokument an die Regeln der Spezifikation
hält, so nennt man es wohlgeformt. Neben
der Wohlgeformtheit gibt es eine zweite Eigenschaft, die ein
Dokument auszeichnen kann, die
Gültigkeit. Damit ein Dokument auch das
Gütesiegel gültig
erhält, muss im Prolog unbedingt eine
DTD angegeben werden, und zwar in der
Dokumenttyp-Deklaration. Sie kann entweder extern
oder intern vorhanden sein. Die beiden folgenden Beispiele
veranschaulichen dies.
<?xml version="1.0"?> <!DOCTYPE hallo SYSTEM "hallo.dtd"> <!-- extern --> <hallo>Hallo Welt!</hallo> <?xml version="1.0"?> <!DOCTYPE hallo [ <!ELEMENT hallo (#PCDATA)> <!-- intern --> ]> <hallo>Hallo Welt!</hallo>
Wenn das Dokument nun auch noch eine Struktur besitzt,
die durch die DTD beschrieben wird, dann handelt
es sich um eine gültige Instanz. Erste Voraussetzung dafür
ist, dass es sich bei dem in Klausel [1] gezeigten
element um das Wurzelelement aus
der DTD handelt. Im obigen Beispiel ist dies
das Element hallo. Die
HTML-DTD definiert als Wurzelelement das Element
HTML
Wahrscheinlich haben Sie das Prinzip schon
erkannt: Der Name des Wurzelelements stimmt meistens mit dem
Namen der DTD überein.. Wie eine
DTD im Einzelnen aufgebaut ist, erläutern wir
später. Zuvor bleiben wir noch einen Moment bei den Dokumenten
und zeigen, wie Elemente zu schreiben sind.