Knotengattungen im Dokumentbaum

(Auszug aus "XSLT 2.0 & XPath 2.0" von Frank Bongers, Kapitel 1.)

Eine Besonderheit fällt an dem Dokumentbaum aus der Abbildung Eltern-Kind-Beziehung in einem Baumdiagramm auf: Seine Wurzel besteht aus einem Knoten (symbolisiert durch ein ovales Symbol), für den es im XML-Dokument keine Entsprechung gibt. Er repräsen­tiert auch nicht, wie man vielleicht meinen könnte, die XML-Deklaration!

Man kann, etwas lässig formuliert, sagen, dass dieser Knoten für das Dokument »an sich« steht; das Dokument ist in ihm vollständig enthalten bzw. verkapselt. Dieser Knoten wird daher als Dokumentknoten (document node) bezeichnet. Bei diesem Knoten setzt stets der Verarbeitungsprozess an, nicht etwa bei dem ihm stets untergeordneten eigentlichen Wurzelelement. (Anmerkung: Die etwas abstrakte Notwendigkeit einer solchen, außerhalb des Dokuments liegenden Instanz wird deutlicher, wenn man zulassen möchte, dass ein »Dokument« nicht strikt ein einzelnes Wurzelelement besitzen muss. Überhaupt fasst XSLT 2.0 den Begriff »Doku­ment« recht weit.)

Direkt unterhalb des Dokumentknotens, also als dessen Kindknoten, findet man das Wurzelelement <a> des XML-Dokuments. Ein Knoten, der ein Element repräsentiert, wird als Elementknoten bezeichnet. Dieser kann als Inhalt wie­der andere Elementknoten, jedoch auch andere Arten von Knoten enthalten.

In diesem einfachen Beispiel besteht der Inhalt der Elemente <c> und <d> nur aus Text, der im Baumdiagramm folgerichtig in Form zweier Textknoten erscheint. Kommentare werden durch Kommentarknoten vertreten, Proces­sing Instructions durch PI-Knoten.

Nicht im Baum dargestellt (aber als Information für XPath zugänglich!) wer­den üblicherweise die Attribute und Namensräume, für die aber dennoch entsprechende Knotengattungen existieren.

Begründung: Attribut- und Namensraumknoten sind keine Kindknoten
Dass weder Attribut- noch Namensraumknoten im Baum auftreten, liegt daran, dass der Baum strikt nach Eltern-Kind-Prinzip aufgebaut ist. Attribut- und Namensraumknoten gelten jedoch nicht als Kindknoten der Elemente, denen sie zugeordnet sind. Ein Attribut steht auch nicht im Inneren eines Element-Containers, sondern in der Startmarke.

Ebenfalls nicht als Knoten im Baum enthalten ist die XML-Deklaration des Prologs. (Anmerkung: Die XML-Deklaration gilt trotz identischen Aussehens nicht als Processing Instruction! Sie daher auch nicht als solche zu behandeln, ist somit folgerichtig.) Im Gegensatz zu Attributwerten und Namensräumen ist sie für XPath nicht zugänglich. Sie ist für uns glücklicherweise auch nicht weiter von Bedeu­tung. Lediglich der XML-Parser verwendet sie, unter anderem um zu bestimmen, auf wel­che Art das Dokument in Bezug auf das Zeichen-Encoding zu lesen ist.

Wir unterscheiden in XPath sieben verschiedene Knotengattungen anhand der unterschiedlichen in XML-Dokumenten auftretenden Arten von Informati­onseinheiten. Alle besitzen jeweils individuelle Eigenschaften und werden im XSLT-Prozess dementsprechend unterschiedlich behandelt:

Ein paar der oben aufgelisteten Knotentypen sollen auf den folgenden Seiten etwas näher betrachtet werden

   

<< zurück vor >>
Tipp der data2type-Redaktion:
Zum Thema XSLT bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

Copyright © Galileo Press, Bonn 2008
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XSLT 2.0 & XPath 2.0 ― Das umfassende Handbuch" denselben Bestimmungen wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Galileo Press, Rheinwerkallee 4, 53227 Bonn