XPointer Example


Let's learn some basic XPointer syntax by studying an example.


XPointer Examples

In this example, we will show you how to use XPointer combined with XLink to point to a specific part of another document.

We will start by studying the target XML document (the document we want to link to).


Target XML Document

The target XML document is called "dogbreeds.xml" and it lists some different dog breeds:

<?xml version="1.0" encoding="ISO-8859-1"?>

<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 in your browser"dogbreeds.xml" file。

Note that the XML document above uses the id attribute on each element we want to link to!


XML Linking Document

Not only can you link to an entire document (when using XLink), XPointer allows you to link to a specific part of a document. To link to a specific part of a page, add a hash sign (#) and an XPointer expression after the URL in the xlink:href attribute.

Expression:#xpointer(id("Rottweiler"))Refers to the element with the id value "Rottweiler" in the target document.

Therefore, the xlink:href attribute will look like this:xlink:href="http://dog.com/dogbreeds.xml#xpointer(id('Rottweiler'))"

However, when linking to an element using an id, XPointer allows a shorthand form. You can directly use the value of the id, like this:xlink:href="http://dog.com/dogbreeds.xml#Rottweiler"。

The following XML document references each dog's breed information, all via XLink and XPointer:

<?xml version="1.0" encoding="ISO-8859-1"?>

<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>
Other Extensions