XPointers
For various obscure architectural reasons, the URLs used in
XPointer href attributes must not have fragment identifiers. Indeed,
it is a fatal error if one does, in which case the XInclude processor
will simply throw up its hands and give up. Instead, each xi:include element may have an xpointer attribute. This attribute contains an XPointer
indicating what part of the document referenced by the href attribute should be included. For
example, this xi:include element
loads today’s news from Cafe con Leche (which is delimited by a
today element in the http://www.w3.org/1999/xhtml namespace), but
not the rest of the page:
<xi:include href="http://www.cafeconleche.org/"
xpointer="xmlns(pre=http://www.w3.org/1999/xhtml)
xpointer(//pre:today)"/>You could also use the element(
) scheme:
<xi:include href="http://www.cafeconleche.org/"
xpointer="element(/1/2/4/1/1/4)"/>If the href attribute is
absent, then the XPointer refers to the current document.
XInclude processors are not required to support all XPointer
schemes. In particular, they are not required to support the xpointer( ) or xmlns( ) schemes,
although some processors, notably libxml2, do
support it. All processors are required to support the element( ) scheme as well as bare-name XPointers, although in
practice some implementations, especially those based on streaming
APIs like SAX, do not support XPointers at all.
A syntax error in the XPointer is a resource error, which will
cause the xi:fallback child element ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access