XPointer позволяет определять гиперссылки на различные части (фрагменты) XML документа.
Что такое XPointer?
- XPointer позволяет создавать ссылки на различные части XML документа
- XPointer использует выражения XPath для навигации по XML документу
- XPointer является стандартом W3C
Поддержка браузерами XPointer
Браузеры не поддерживают XPointer, однако XPointer используется в других XML языках программирования.
Пример XPointer
В следующем примере мы используем XPointer совместно с XLink для ссылок на определенные части другого документа.
Начнем с целевого XML документа (документа, на который создаются ссылки):
<?xml version="1.0" encoding="UTF-8"?>
<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....
</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....
</history>
<temperament>
The flat-coated retriever is a sweet, exuberant, lively dog that loves to play....
</temperament>
</dog>
</dogbreeds>
Обратите внимание, что приведенный выше XML документ в каждом элементе использует атрибуты идентификации id!
Итак, вместо того, чтобы ссылаться на весь документ целиком (как в случае с XLink), XPointer позволяет создавать ссылки на конкретные фрагменты XML документа. Чтобы создать ссылку на определенную часть страницы, нужно добавить символ "хэша" (#) и выражение XPointer после URL в атрибуте xlink:href следующим образом: xlink:href="http://dog.com/dogbreeds.xml#xpointer(id('Rottweiler'))". Это выражение ссылается на определенный элемент заданного документа с id со значением "Rottweiler".
XPointer также предоставляет удобный метод создания ссылок на элементы с атрибутом id. Вы можете использовать значение атрибута id напрямую: xlink:href="http://dog.com/dogbreeds.xml#Rottweiler".
Следующий XML документ содержит ссылки на более подробную информацию:
<?xml version="1.0" encoding="UTF-8"?>
<mydogs xmlns:xlink="http://www.w3.org/1999/xlink">
<mydog>
<description>Anton is my favorite dog. He has won a lot of.....</description>
<fact xlink:type="simple" xlink:href="http://dog.com/dogbreeds.xml#Rottweiler">Fact about Rottweiler</fact>
</mydog>
<mydog>
<description>Pluto is the sweetest dog on earth......</description>
<fact xlink:type="simple" xlink:href="http://dog.com/dogbreeds.xml#FCRetriever">Fact about flat-coated Retriever</fact>
</mydog>
</mydogs>