Kurzform-Pointer

(Auszug aus "XML in a Nutshell" von Elliotte Rusty Harold & W. Scott Means)

XPointer bieten eine ganze Zahl bequemer Erweiterungen zu XPath. Zu den einfachsten gehören Kurzform-Pointer. Ein solcher XPointer ähnelt einem benannten Anker in HTML, d.h., er identifiziert das Element, auf das er verweist, anhand des ID-Attributs des Elements. Die ID wird durch ein ID-Attribut des Elements zur Verfügung gestellt, auf das verwiesen wird, nicht anhand eines speziellen a-Elements mit einem name-Attribut. Um mit einem Kurzform-Pointer auf ein Element zu verweisen, hängen Sie das übliche Trennzeichen # an die URL an, gefolgt von der ID des Elements, auf das Sie verweisen. Zum Beispiel erzeugt "http://www.w3.org/TR/1999/REC-xpath-19991116.xml#NT-AbsoluteLocationPath" einen Link auf das Element in der XPath 1.0-Spezifikation, das ein ID-Attribut mit dem Wert NT-AbsoluteLocationPath besitzt.

Das ID-Attribut ist ein Attribut, das in der DTD des Dokuments mit dem Typ ID deklariert wurde. Es muss nicht mit ID oder id bezeichnet werden. Kurzform-Pointer können nicht dazu verwendet werden, auf Elemente in Dokumenten zu verweisen, die keine DTDs besitzen, da solch ein Dokument kein Attribut vom Typ ID haben kann.

Anmerkung: Dass man IDs nicht in Dokumenten ohne DTD verwenden kann, ist ein schwerwiegender Mangel von XML. Es wird aber weiter daran gearbeitet, diese Unzulänglichkeit auszuräumen. Vielleicht kann ein allgemeines ID-Attribut wie xml:id die Lösung sein oder ein Namensraum, der ID-Attribute identifiziert.

Nehmen Sie beispielsweise einmal an, Sie wollen auf den Abschnitt »Motivation and Summary« der Empfehlung Namespaces in XML unter http://www.w3.org/TR/1999/REC-xml-names-19990114/xml-names.xml verweisen. Ein schneller Blick auf den Quellcode dieses Dokuments zeigt, dass es ein id-Attribut mit dem Wert sec-intro besitzt und dass dieses Attribut tatsächlich in der zugehörigen DTD mit dem Typ ID deklariert wurde. Sein Start-Tag sieht etwa so aus:

<div1 id='sec-intro'>

Daher ist "http://www.w3.org/TR/1999/REC-xml-names-19990114/xml-names.xml#sec-intro" eine URL, die auf diesen Abschnitt verweist. Der Name muss nicht (und sollte eigentlich auch nicht) in xpointer( ) eingeschlossen werden, damit dies funktioniert. Der ID-Wert allein ist ausreichend. Dieser Link ist auch eine schöne Abkürzung für einen XPointer, der auf einem XPath-Ausdruck basiert, der die Funktion id( ) benutzt. Die gleiche URL könnte auch genauso "http://www.w3.org/TR/1999/REC-xml-names-19990114/xml-names.xml#xpointer(id(sec-intro))" lauten.

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema XML bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

  


Copyright © 2005 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XML in a Nutshell" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de