info@a-coding-project.de

XPointer – Tutorial, Tipps & Tricks

XPointer ist ein relativ wenig bekannter und ebenso wenig verwendeter XML-Sprachteil. XPointer versteht sich als erweiterbares System um XML-Daten adressieren zu können. Obwohl es weitestgehend unbekannt ist, findet es jedoch Anwendung in den Bereichen XLink , XInclude (XML Inclusions), RDF oder SOAP. XPointer ist nicht sehr umfangreich und deshalb leicht zu erlernen.

Grundlagen

Die Grundlagen für XPointer wurden schon 1997 mit der Entwicklung von XLink gelegt. Man suchte nach einem Weg auf bestimmte Bestandteile eines XML-Datensatzes zeigen (engl. to point ~ zeigen) zu können um diese Verbindungen z.B. für XLink verwenden zu können.

XPointer an sich ist nicht als eigene Sprache oder dergleichen zu verstehen, sondern eher als ein Sprachzusatz zum bestehenden XML-, XPath - und XLink-System. Auch der Umfang des XPointer Satzes ist daher nicht sehr hoch - es werden lediglich einige wenige Ausdrücke verwendet, die jedoch ihren Zweck zureichend erfüllen.

Standards

Der "Gesamtsatz" von XPointer besteht aus 4 Teilen. Dazu gehört zum einen das XPointer Framework, dann das "element() Schema", das "xmlns() Schema" und zu letzt das "xpointer() Schema". Alle vier sind beim W3C als Spezifikationen eingereicht - die ersten drei sind seit März 2003 offizielle Empfehlung (Recommendation) und am "xpointer() Schema" wird derzeit noch gearbeitet (Working Draft), da es sich hierbei um den umfangreichsten Bestandteil handelt.

Begrifflichkeit

Im folgenden werden einige Begriffe auftreten, die hier kurz erläutert werden sollen.

  • Zeiger (engl. pointer) - Eine Zeichenkette (String), die mit dem XPointer Framework konform ist
  • Schema (engl. scheme) - Ein spezialisiertes Zeigerformat

Konformität und Syntax

XPointer kann prinzipiell in allen Dokumenten des Typs text/xml, application/xml, text/xml-external-parsed-entity oder application/xml-external-parsed-entity eingesetzt werden - es spricht aber auch nichts dagegen dies in anderen Dokumenten zu tun.

Damit XPointer korrekt eingesetzt werden kann, sollte das Dokument selbst, in dem XPointer verwendet wird, XML-konform sein (siehe XML-Dokumentation). Damit eine Zeichenkette als Zeiger fungieren kann, muss sie einige Eigenschaften erfüllen. Bei Kurzschreibweise sind dies:

  • Die Zeichenkette muss mit einem Buchstaben oder dem Unterstrich beginnen
  • Anschließend dürfen nur die folgenden Zeichen (in beliebiger Anzahl und Reihenfolge) verwendet werden:
Bei ausführlicher Schreibweise sind die zu erfüllenden Eigenschaften:

  • Die Zeichenkette muss mit dem Schemabezeichner beginnen, diesem folgen in Klammern die Schemadaten
  • Der Schemabezeichner kann einen Präfix (mit anschließendem Doppelpunkt) besitzen, muss aber einen festen Namen haben (also entweder Präfix:Name oder nur Name)
  • Die Schemadaten könne alle Zeichen des Unicode-Zeichensatzes beinhalten

Sonderzeichen

Da Zeichenketten in XPointer (wie auch in anderen Sprachen), durch die Verwendung von Sonderzeichen nicht mehr den Konformitätsregeln entsprechen können, sollten diese "verschlüsselt" werden. Als einfachstes Beispiel einer solchen Verletzung wäre hier z.B. die Verwendung von Hochkommas oder Anführungszeichen innerhalb einer Zeichenkette zu nennen: 'ich_bin_'ne_Zeichenkette' verletzt gewisse Regeln, da ein Programm nicht entscheiden kann, wo die Zeichenkette endet (ob beim ersten Hochkomma oder beim zweiten).

Da bei ausführlicher Schreibweise runde Klammern verwendet werden, kann auch hier eine Irregularität entstehen, sobald weitere Klammern innerhalb der Schemadaten verwendet werden sollen. Diese müssen, sofern sie nicht zu einem bestimmten Syntax gehören mit einem vorangestellten ^-Zeichen verschlüsselt werden (also z.B. Schemaname( Schemad^(aten ) usw.). Soll das ^-Zeichen selbst verwendet werden (also z.B. ohne den Zusammenhang mit einer Klammer), so muss dieses ebenfalls mit einem ^-Zeichen verschlüsselt werden. Beispiel: hier_kommt_das_^^_zeichen.

Außerdem müssen alle Vorkommen eines Prozentzeichens oder Zeichen des erweiterten Unicode-Satzes (diese aber nicht zwingend) mit %HH verschlüsselt werden, wobei HH der Hexadezimalwert des jeweiligen Zeichens nach UTF-8 ist. Ein einfaches % wird so zu %25.

Erweiterungen zu XPath

XPointer erweitert XPath , wie bereits angesprochen, um einige neue Funktionen und Typen. Dazu gehören die Typen point und range, sowie die Funktionen range-to(), string-range(), covering-range(), range-inside(), start-point(), end-point(), here() und origin().

Sprachschatz

Der Sprachschatz von XPointer umfaßt alle nötigen Anweisungen um auf einen bestimmten Bestandteil eines XML-Datensatzes zeigen zu können. Der Sprachschatz umfaßt eine Reihe von Zeigerdefinitionen, die einen XML-Datensatz als Quelle durchsuchen und auf einen treffenden Bereich verweisen.

Über uns

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Auch interessant