![]() |
|
||||||||||||||||||||||
|
XML Pointer Language (XPointer)Status: W3C Recommendation vom 25.03.2003Homepage: http://www.w3c.org/XML/Linking Verfasser: W3C XPointer definiert eine Sprache, mit der man beliebige Teile eines XML-Dokuments adressieren kann. Dabei ist es nicht, wie etwa in HTML, nötig, dass das Dokument entsprechende Anker besitzt. XPointer bauen auf XPath auf. Es wird mit XPointer auch möglich sein, Bereiche von Dokumenten zu beschreiben (etwa den Text vom zweiten <div>-Tag bis zum ersten < bold>). Zusätzlich zu XPath werden auch Strings innerhalb von Textknoten adressiert werden können statt nur Textknoten insgesamt. Der XPointer-Rahmen ist bereits eine W3C Empfehlung. Er erlaubt die Benutzung von drei Schemata: xmlns() für die Interpretation von Namensräumen, element() für die Adressierung von Elementen und xpointer() für erweiterte Funktionalität, das aber noch keine Empfehlung ist. XPointer können in drei Varianten beschrieben werden: Abkürzungen (Shorthand Pointer oder Bare Names), Relative Adressierung (Child Sequences) und Full Pointer Es ist möglich ein Element direkt über sein ID-Attribut zu adressieren. Das ID-Attribut muß in einer DTD oder einem Schema definiert sein. Dieser Ansatz ist vergleichbar mit den Ankern, die innerhalb eines HTML Dokuments möglich sind. Zum zweiten kann man Elemente auch anhand ihrer Position im XML-Dokument auswählen. So verweist die Sequenz #3/2/1 auf das erste Kind des zweiten Kindes des dritten Kindes des Wurzelknotens. Und schliesslich kann man auch Full Pointer der Form xpointer(XPath-Ausdruck) verwenden. Full Pointer können ID Referenzen oder Relative Positionen enthalten. Das Framework sieht weiterhin vor, mehrere Pointer hinter einander zu schreiben: schema(Ziel1)schema(Ziel2)schema(Ziel3) In diesem Fall entspricht das Ergebnis genau dem ersten Verweis, der erfolgreich ausgewertet werden kann. Ist Ziel 1 nicht erreichbar wird statt dessen Zeil 2 versucht und Ziel 3 ggf. ignoriert. Dadurch wird die Robustheit von XPointern weiter erhöht. Dieser Ansatz wird auch verwendet, um Namesräume zu behandeln. (s. Beispiel 2)
| ||||||||||||||||||||||
|
|||||||||||||||||||||||