XPointer instance
Let's learn some basic XPointer syntax by studying an example.
XPointer Example
In this example, we will show you how to use XPointer combined with XLink to point to a specific part of another document.
We'll start by looking at the target XML document (the one we want to link to).
Target XML document
The target XML document is called "dogbreeds.xml" and it lists a number of different dog species:
<dogbreeds>
<dog breed="Rottweiler" id="Rottweiler">
<picture url="http://dog.com/rottweiler.gif" />
<history>The Rottweiler's ancestors were probably Roman
drover dogs....</history>
<temperament>Confident, bold, alert and imposing, the Rottweiler
is a popular choice for its ability to protect....</temperament>
</dog>
<dog breed="FCRetriever" id="FCRetriever">
<picture url="http://dog.com/fcretriever.gif" />
<history>One of the earliest uses of retrieving dogs was to
help fishermen retrieve fish from the water....</history>
<temperament>The flat-coated retriever is a sweet, exuberant,
Lively dog that loves to play and retrieve....</temperament>
</dog>
</dogbreeds>
View the "dogbreeds.xml" file in your browser.
Note that the XML document above uses the id attribute on each element we need to link to!
XML Linked Document
In addition to being able to link to the entire document (when using XLink), XPointer allows you to link to specific parts of the document. To link to a specific part of the page, add a pound sign (#) and an XPointer expression after the URL in the xlink:href attribute.
Expression: #xpointer(id("Rottweiler")) can refer to the element with the id value "Rottweiler" in the target document.
So, the xlink:href attribute would look like this: xlink:href="http://dog.com/dogbreeds.xml#xpointer(id('Rottweiler'))"
However, XPointer allows abbreviations when linking to an element using an id. You can use the value of id directly, like this: xlink:href="http://dog.com/dogbreeds.xml#Rottweiler".
The following XML document can reference the breed information of each dog, both through XLink and XPointer:
<mydogs xmlns:xlink="http://www.w3.org/1999/xlink">
<mydog xlink:type= "simple"
xlink:href="http://dog.com/dogbreeds.xml#Rottweiler">
<description xlink:type="simple"
xlink:href="http://myweb.com/mydogs/anton.gif">
Anton is my favorite dog. He has won a lot of.....
</description>
</mydog>
<mydog xlink:type="simple"
xlink:href="http://dog.com/dogbreeds.xml#FCRetriever">
<description xlink:type="simple"
xlink:href="http://myweb.com/mydogs/pluto.gif">
Pluto is the sweetest dog on earth......
</description>
</mydog>
</mydogs>