| # Baumstruktur und Knoten einer XML-Datei
| Die Baumstruktur von XML-Dokumenten Knoten und Knoten-Sets in der Baumstruktur

## 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.

### Beispiel-Code (XML):

    <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>

### Darstellung als Baumstruktur:

Anstelle von "Baumstruktur" zu reden, könnte man auch den Vergleich zu einer Verzeichnis- und Dateistruktur verwenden.

### Konsequenzen für die Datenverarbeitung:

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.

## Knoten und Knoten-Sets in der Baumstruktur

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.

### Knoten

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.

### Knoten-Sets

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

© 2007 Impressum