XML-Know How

Dateibäume

Baumstrukturen sind jedem von uns durch den täglichen Umgang mit Computern geläufig. Schon das Dateisystem eines Computers ist als Baumstruktur organisiert[1]. Über das Symbol „Arbeitsplatz“ gelangt man in die Übersicht der zur Verfügung stehenden Laufwerke eines Rechners. Von dieser untersten Ebene aus lässt sich nun ein Laufwerk auswählen (z. B. „c:\“) und in tiefere Verzeichnisstrukturen navigieren. Der Windows-Explorer protokolliert während dieser Navigation jeden Navigationsschritt durch die Windows-typische Notation, wie die folgende Abbildung zeigt:

Der Ausdruck „C:\saxon“ gibt an, dass sich der Nutzer auf dem Laufwerk „C:“ und innerhalb dessen im Verzeichnis „saxon“ befindet. Verzeichnisse sind Container, die andere Verzeichnisse und Dateien beinhalten können und dadurch in ihrer Gesamtheit einen Verzeichnisbaum entstehen lassen.

Ein Dateibaum kann nun aus einem Laufwerk, Verzeichnissen und Dateien bestehen; also aus drei unterschiedlichen Typen von Baumbestandteilen, die später noch eine wichtige Rolle spielen werden und jeweils unterschiedliche Eigenschaften aufweisen:

     

  • Ein Laufwerk steht immer am Beginn eines Dateibaums. Es kann Verzeichnisse oder Dateien beinhalten.
  • Ein Verzeichnis kann Verzeichnisse oder Dateien beinhalten und daher direkt unterhalb eines Laufwerks stehen, aber auch auf jeder anderen Hierarchieebene des Dateibaumes.
  • Eine Datei nimmt eine Sonderstellung ein, da sie – anders als ein Verzeichnis – nicht als Container agieren kann. Eine Datei bildet daher immer das Ende des Pfades eines Dateibaums.
  •  

Für das Anlegen von Dateibäumen gelten klare Regeln, so z. B. für die Benennung von Verzeichnissen und Dateien: Jedes Verzeichnis und jede Datei müssen auf gleicher Hierarchieebene unterschiedliche Namen tragen. Will man z. B. ein Verzeichnis „Daten“ anlegen und existiert bereits ein Verzeichnis mit diesem Namen auf gleicher Ebene, so wird das Betriebssystem das Anlegen des Verzeichnisses unterbinden.

Neben den unterschiedlichen Typen dieser Bestandteile eines Dateibaums und deren Eigenschaften, ist vor allem die Notation – also die Sprache – von Bedeutung, die den Pfad durch einen Dateibaum beschreibt. Wie im obigen Beispiel zu sehen, protokolliert Windows den Pfad mit „C:\saxon“. Wird nun eine Ebene tiefer navigiert, trennt Windows den nächsten Schritt mit einem „\“ (Backslash) ab. Darauf folgt der Name des neuen Unterverzeichnisses, z. B. „C:\saxon\samples“.

Dem Betriebssystem wird durch die Notation mit dem Backslash folglich ein Sprung signalisiert: Es soll im Dateibaum um genau eine Verzeichnisebene absteigen. Es existiert also so etwas wie eine Richtung – eine sogenannte Achse – beim Navigieren in Dateibäumen. Gibt die Richtung eine tiefere Ebene vor, so spricht man (wie in diesem Fall) von der Kind-Achse [2].

Neben der Kind-Achse, mit der sich in Dateibäumen absteigend navigieren lässt, gibt es auch die Eltern-Achse, mit deren Hilfe sich eine Ebene nach oben navigieren lässt. Erreicht wird dies durch die Notation „..“.

Ausgehend vom Verzeichnis „C:\saxon\samples“ wird nun durch „\..“ eine Ebene nach oben navigiert. Das aktuelle Verzeichnis ist dann wieder „C:\saxon“.

Wir sehen also, dass bereits das Windows-Dateisystem eine Sprache zur Navigation in (Datei-)Bäumen zur Verfügung stellt. Die Kind- und die Elternachse geben dabei die Navigationsrichtung vor. Nach ganz ähnlicher Notation erfolgt nun in der XML-Welt auch das Navigieren mit XPath – nur dass die Achsen zahlreicher sind und die Navigation nicht mehr auf Verzeichnisebene erfolgt, sondern innerhalb einer Datei.


     

  1. ↑  Der Übersichtlichkeit halber werden nachfolgend Begrifflichkeiten aus der Windows-Welt verwendet. Die Baumanalogie gilt selbstverständlich auch für Dateisysteme anderer Betriebssysteme.
  2. ↑  Hier hilft die Analogie zur Genealogie. Stammbäume drücken eben genau diese Beziehungen zwischen Familienmitgliedern aus. Beispiele für solche Beziehungen sind: „sind Eltern von“, „ist Vorfahre von“, „ist Geschwister von“, „ist Kind von“, usw.
  3.