SELFHTML/Navigationshilfen XML/DTDs Regeln für XML-Dateien | |
Baumstruktur und Knoten einer XML-Datei |
|
Die Baumstruktur von XML-Dokumenten |
|
Ein XML-gerechtes Dokument besteht aus Elementen, Attributen, ihren Wertzuweisungen, und dem Inhalt der Elemente, der aus Text oder aus untergeordneten Elementen bestehen kann, die ihrerseits wieder Attribute mit Wertzuweisungen und Inhalt haben können. Es gibt Elemente mit und ohne Attribute, Elemente, innerhalb deren viele andere Elemente vorkommen können, und solche, innerhalb deren nur Text vorkommen kann, und sogar leere Elemente, die keinen Inhalt haben können. Die Struktur, die aus diesen Bestandteilen und ihren Grundregeln entsteht, lässt sich als Baumstruktur begreifen.
<spielfilme> <film regie="Tom Tykwer" titel="Lola rennt"> <beschreibung> <name typ="w">Lola</name> rennt für <name typ="m">Manni</name>, der 100000 Mark liegengelassen hat und noch 20 Minuten Zeit hat, das Geld auszuliefern. </beschreibung> </film> </spielfilme>
Anstelle von "Baumstruktur" zu reden, könnte man auch den Vergleich zu einer Verzeichnis- und Dateistruktur verwenden.
Die Datenstruktur einer XML-Datei lässt sich nicht nur genauso abbilden wie eine Verzeichnis- und Dateistruktur, sie wird von der verarbeitenden Software auch ganz ähnlich gehandhabt.
Ein XML-Parser arbeitet eine XML-Datei ab, indem er der Hierarchie folgt, die sich durch die Baumstruktur der Daten ergibt. Jedes Element, jedes Attribut, jede Wertzuweisung an ein Attribut, jeder Zeicheninhalt eines Elements wird dabei zu einem eigenen Bestandteil des Baums. Jeder dieser Bestandteile ist einzeln adressierbar.
Um über die Bestandteile einer XML-Baumstruktur korrekt reden zu können, gibt es die beiden Begriffe Knoten und Knoten-Set. Beide Begriffe beleuchten die Baumstruktur einfach nur aus unterschiedlichen Blickwinkeln.
Wenn man von Knoten redet, meint man die Bestandteile der Baumstruktur.
Jedes XML-Dokument beginnt mit einem Wurzelknoten. Dieser hat jedoch keine konkrete Ausprägung, sondern ist nur der abstrakte "Ursprung" der Daten. Erst sein unmittelbarer Abkömmling in der Baumstruktur hat eine konkrete Ausprägung: nämlich das Dokument-Element, also das äußerste, den gesamten übrigen Inhalt umfassende Element. Im obigen Beispiel ist dies das Element spielfilme
. Dieser oberste Knoten unterhalb des abstrakten Wurzelknotens hat im Beispiel einen Kindknoten namens film
. Aus Sicht des Knotens film
ist der Knoten spielfilme
der Elternknoten. Der Knoten film
hat drei untergeordnete Knoten, nämlich die Attribute regie
und titel
sowie das Element beschreibung
. In der XML-Praxis werden jedoch Attribute eines Elements anders eingestuft als der Inhalt des Elements. Bei Attributknoten spricht man von assoziierten Knoten, beim Inhalt dagegen von Kindknoten. Diese feine Unterscheidung bleibt in der obigen Abbildung unberücksichtigt.
Ein Attribut wie regie
hat zwar selber noch mal einen eigenen Kindknoten, nämlich den Text Tom Tykwer
, aber der Wert eines Attributes kann in XML nicht direkt adressiert werden. Jeder andere in der Baumstruktur abbildbare Bestandteil ist also ein Knoten.
Wenn man von Knoten-Sets redet, denkt man aus Sicht der Wege zu den einzelnen Knoten.
Um einzelne Knoten zu adressieren, kann man den Pfad dorthin angeben, ganz ähnlich wie in einer Struktur aus Verzeichnissen, Unterverzeichnissen und Dateien. So hat im Beispiel das erste vorkommende Element name
, das ja auch ein Knoten ist, den Pfad /spielfilme/film/beschreibung
. Das zweite vorkommende Element name
hat allerdings den gleichen Pfad, ebenso wie der restliche Text, der den Inhalt des Elements beschreibung
bildet. Wenn man also aus Sicht eines Pfades in der Baumstruktur denkt, gibt es unterhalb eines solchen Pfades keinen, einen oder mehrere Knoten. Diese zunächst unbestimmte Anzahl Knoten, die unterhalb eines bestimmten Pfades liegen, bezeichnet man als Knoten-Set.
XML-Namensräume | |
Wohlgeformtheit, Gültigkeit und Vollständigkeit einer XML-Datei | |
SELFHTML/Navigationshilfen XML/DTDs Regeln für XML-Dateien |
© 2005 Impressum