XPointers
(Auszug aus "XML in a Nutshell" von Elliotte Rusty Harold & W. Scott Means)
Aus verschiedenen architektonischen Gründen dürfen die URLs, die in den href-Attributen von XIncludes stehen, keine Fragment-Identifier haben. Es ist in der Tat ein fataler Fehler, wenn das der Fall ist. Dann legt der XInclude-Prozessor einfach die Hände in den Schoß und stellt die Arbeit ein. Stattdessen kann jedes xi:include-Element ein xpointer-Attribut haben. Dieses Attribut enthält einen XPointer, der anzeigt, welcher Teil des Dokuments, das vom href-Attribut referenziert wird, eingeschlossen werden soll. Beispielsweise lädt dieses xi:include-Element die Schlagzeilen des Tages von Cafe con Leche (die von einem today-Element im Namensraum "http://www.w3.org/1999/xhtml" eingeschlossen werden), aber nicht den Rest der Seite:
<xi:include href="http://www.cafeconleche.org/" xpointer="xmlns(pre=http://www.w3.org/1999/xhtml) xpointer(//pre:today)"/>
Sie könnten auch das element( )-Schema verwenden:
<xi:include href="http://www.cafeconleche.org/" xpointer="element(/1/2/4/1/1/4)"/>
Wenn das href-Attribut fehlt, referenziert der XPointer das aktuelle Dokument.
XInclude-Prozessoren müssen nicht alle XPointer-Schemas unterstützen. Insbesondere wird von ihnen nicht verlangt, dass sie die xpointer( )- oder xmlns( )-Schemas unterstützen, obwohl einige Prozessoren, wie libxml2 beispielsweise, diese Unterstützung bieten. Alle Prozessoren müssen das element( )-Schema und Klartext-XPointers unterstützen. In der Praxis ist es jedoch so, dass einige Implementierungen, insbesondere solche, die auf Streaming-APIs wie SAX basieren, überhaupt keine Unterstützung für XPointer bieten.
Ein Syntax-Fehler im XPointer ist ein Ressourcen-Fehler, der bewirkt, dass das xi:fallback-Kindelement verarbeitet wird, wenn eines vorhanden ist. Das ist nicht notwendigerweise ein fataler Fehler.
Da XPointers nur auf XML-Dokumente anwendbar sind, können sie nur verwendet werden, wenn parse="xml" angegeben ist. Es ist ein fataler Fehler, wenn ein xi:include-Element zugleich ein xpointer- und ein parse="text"-Attribut hat.
<< 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