'Haven't you a penknife?' the voice asked. 'I most certainly have not!' cried Alice in exasperation, and then (after a second's further pondering) she added, 'But I've got something even betterer, even sharperer!' (In her excitement Alice had forgotten all about her grammar.)Das Zitat entstammt dem Roman
Automated Alice, in dem der Autor seine (geliehene) Heldin ins Manchester des Jahres 1998 versetzt. Übersetzt heißt es etwa: 'Hast du kein Taschenmesser?' fragte die Stimme. 'Ganz bestimmt habe ich keins!' rief Alice verzweifelt und fügte (nach einer weiteren Sekunde Nachdenkens) hinzu, 'aber ich habe etwas, das noch besserer ist, noch schärferer!' (In ihrer Aufregung hatte Alice ihre ganze Grammatik vergessen.) Der Autor bezieht sich hier auf das berühmtecuriouser and curiouserin Lewis Carrolls Original.Jeff Noon
Sind erst einmal wohlgeformte oder gar gültige XML-Dokumente vorhanden, drängt sich, wenn auch leise, die Frage auf, wie ein Browser sie darstellen soll/kann. Mittelfristig ist zu hoffen, dass sie schlicht generisches XML beherrschen, das heißt eine beliebige DTD einlesen und anschließend das die DTD referenzierende Dokument anzeigen. Die Transformation respektive Formatierung der Ausgabe wiederum kann in einem solchen Fall eine Processing Instruction (PI, Verarbeitungsanweisung) vorgeben, die in absehbarer Zeit aus XSL(T)-Stylesheets bestehen wird; mehr zu den Transformationen in Kapitel 10.
Innerhalb solcher Stylesheets ist es möglich, zu überprüfen, wo im Dokumentbaum "man" sich gerade befindet, ob Kindelemente existieren et cetera. Die Syntax, in der das geschieht, hat das W3C in einer Zusammenarbeit zweier Arbeitsgruppen definiert: diejenige, die die Linking-Spezifikation betreut, und die für die Formatierung von Dokumenten zuständige Gruppe haben sich zusammengesetzt und XPath (XML Path Language) entwickelt. Diese Adressierungssprache ist im November 1999 verabschiedet worden.
Grund der Zusammenarbeit war, dass sowohl bei der
Auswahl von Knoten für die Transformation eines Dokuments von
XML in ein anderes XML-Format
(beispielsweise XHTML, siehe dazu Kapitel 19) als auch bei Verweisen (Links) in ein
anderes Dokument dieselbe Art von Sprache
sinnvoll ist. Das
Ergebnis, XPath, fasst ein Dokument als Baum
beziehungsweise als einen Teilbaum oder Ast auf. Wie in einem
Dateisystem (ebenfalls eine Baumart ;-) lässt sich jedes
Bruchstück über einen Pfad oder Verweis wiedergeben:
/buch/kapitel/abschnitt/unterabschnitt
Diese Schreibweise ist für alle, die gelegentlich auf
Shell-Ebene arbeiten, ein selbstverständlicher
AnblickWindows-Vertraute müssen allerdings den
Schrägstrich nach links drehen.. Was in diesem
Beispiel noch unklar ist: um welchen einzelnen Unterabschnitt es
sich handeln soll; dazu unten mehr. Zunächst ein paar
grundsätzliche Bemerkungen zu den XML-Pfaden
(XPath).
Da die Spezifikationen für das Linking (XLink und XPointer) noch nicht verabschiedet sind, werden sich die folgenden Abschnitte auf Transformationen beziehen, wie sie mit XSLT möglich sind. Es sollte dabei jedoch immer mitgedacht sein, dass auch bei Verweisen auf interne wie externe Teile von Dokumenten XPath seine Bedeutung haben wird, sobald Implementierungen vorliegen.
Zunächst soll es darum gehen, das Datenmodell, auf dem XPath fußt, darzustellen. Daran schließt sich an, wie einzelne Ausdrücke auf die darunter liegenden Daten zugreifen beziehungsweise einen Teil des Knotensatzes (node-set) ansprechen. Schließlich soll eine Übersicht von Operatoren und der vorgesehenen Kernfunktionsbibliothek einen Eindruck davon vermitteln, welche Möglichkeiten XPath bietet.