XPointer

XPointer oder XML Pointer Language ist eine vom World Wide Web Consortium (W3C) entwickelte Anfragesprache, um Teile eines XML-Dokumentes zu adressieren. Es handelt sich dabei um eine Erweiterung der XPath-Spezifikation, mit der sich ebenfalls Teile eines XML-Dokumentes adressieren lassen.

XPointer ermöglicht es insbesondere, in einer URI auf Teile eines XML-Dokumentes zu verweisen. Nachdem die ursprüngliche XPointer-Definition nur zögerlich implementiert wurde, entschied sich das W3C, die Definition in mehrere Dokumente aufzuspalten.

Einfache Verweise

Einfache Verweise ähneln lokalen Links i​n HTML-Dokumenten. Sie verweisen a​uf XML-Elemente, d​ie anhand e​iner ID identifiziert werden. Als Beispiel s​oll ein XLink dienen. Das „Rudolph“ i​st der eigentliche XPointer. Der Link z​eigt auf d​as Element m​it der ID „Rudolph“ i​n der Datei „Brief.xml“:

xlink:href="Brief.xml#Rudolph"

Einfache Verweise gehören zur shorthand notation von XPointer und werden in XPointer-Framework[1] spezifiziert. Dort werden auch die Grundlagen für komplexere XPointer in scheme-based notation geschaffen.

Das element()-Schema

Mit dem element()-Schema lassen sich Verweise auf bestimmte Kinder in der Baumstruktur eines XML-Dokumentes erstellen. Der XLink des folgenden Beispiels zeigt auf das 2. Unterelement des 1. (Wurzel)elements im XML-Dokument „index.xml“:

xlink:href="index.xml#element(/1/2)"

Das xpointer()-Schema

Beliebig komplexe Verweise auf Teile von XML-Dokumenten lassen sich mit dem xpointer()-Schema erstellen. Hierbei kann zur Adressierung der gewünschten Teile des Dokumentes ein XPath-Ausdruck verwendet werden. Darüber hinaus gibt es noch weitere Möglichkeiten, die in XPath nicht vorgesehen sind:

  • Punkte vor oder nach XML-Strukturelementen (start-point(), end-point(), …)
  • Bereiche zwischen XML-Strukturelementen (range(), range-to(), …)
  • Ausgewählte Bereiche in Freitext (string-range(), …)

Das folgende Beispiel liefert d​as 1. b​is 4. Element v​om Typ „Seite“ innerhalb d​es Elements „MobyDick“ i​n der Datei „Bücherregal.xml“:

xlink:href="Bücherregal.xml#xpointer(/MobyDick/Seite[position()=1]/range-to(/MobyDick/Seite[4]))"

Der Text ab der Raute (#) ist wieder der eigentliche XPointer. In der scheme-based notation können beliebig viele XPointer-Ausdrücke hintereinander geschrieben werden. Ergebnis des Ausdrucks ist das Ergebnis des ersten Teilausdrucks, der ein Ergebnis liefert. Beispiel:

element(/1/4)xpointer(//Buch[4])
Wiktionary: XPointer – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen

Einzelnachweise

  1. http://www.w3.org/TR/xptr-framework
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. The authors of the article are listed here. Additional terms may apply for the media files, click on images to show image meta data.