XML-Know How

XPath – oder: „Klettern in Bäumen“

„XPath ist eine Hilfssprache zur Navigation in XML-Dokumenten“ – mit dieser präzisen, aber sehr abstrakten Formulierung erntet man in der Verlagsbranche häufig Unverständnis. Wozu bedarf es einer eigenen Sprache, um innerhalb eines Dokuments zu navigieren? Nun – solange wir das einzelne Dokument als die kleinste verwertbare Einheit betrachten (und XML vor allem als langzeitarchivierbares Speicherformat begreifen), gibt es hierfür in der Tat keine Notwendigkeit.
Aber XML kann mehr – und gerade unsere Branche hat immenses Interesse an der semantischen Auszeichnung ihrer Dokumente. Denn was nützt ein Dokument, das semantisch ausdifferenziert ist, wenn ich die Information nicht gezielt abfragen kann? „Zeige mir alle Lexikonartikel, die von Autor X geschrieben sind“ – „Wie viele Artikel sind redaktionell noch nicht freigegeben“ – „Wähle alle Rechenaufgaben, die in Klasse 10 in Bayern die Trigonometrie betreffen“ – solche und zahllose weitere Anfragen verlangen ein gezieltes Aufsuchen von Teilen einer XML-Datei. Für die Verarbeitung der XML-Daten selbst haben wir XSLT bereits als einen Standard kennen gelernt (vgl. Kap. II.A.5), für die automatische Formatierung steht mit XSL-FO ein weiterer Standard zur Verfügung. Der dritte Bestandteil des XSL-Standards, XPath, wird in diesem Artikel vorgestellt. Denn ohne zu wissen, welche Elemente ausgewählt, welche Textteile formatiert und nach welchen Attributwerten sortiert werden soll, sind die bislang vorgestellten Technologien „zahnlose Tiger“.

Was also ist XPath genau? Zunächst einmal nur eine Definition, nämlich eine Vereinbarung darüber, wie (d. h. durch die Verwendung welcher Syntax) ein bestimmter Teil eines XML-Dokuments aufgespürt werden kann. XPath ist also keine kompilierbare oder ausführbare (Programmier-)Sprache. Vielmehr benötigt XPath immer eine andere Sprache, die es einbettet oder ein Tool, das diese Sprache interpretieren kann. Anders herum: Andere Sprachen (z. B. XSLT beim Attribut match="…") benötigen XPath-Ausdrücke, um funktionieren zu können.

Verglichen mit einem Navigationssystem ist XPath quasi die standardisierte Adresseingabe, nicht jedoch die Navigationssoftware selbst.

Dieser Ansatz erscheint auf den ersten Blick sehr abstrakt. Nähern wir uns daher der „Hilfssprache XPath“ ganz behutsam und gehen zunächst auf die Baumstruktur von XML-Dokumenten näher ein, durch die wir navigieren wollen.