Przykłady XPointer

Nauczmy się podstawowej gramatyki XPointer, badając przykład.

Przykłady XPointer

W tym przykładzie pokażemy, jak używać XPointer w połączeniu z XLink, aby wskazać na konkretną część innego dokumentu.

Zacznijmy od badania tego dokumentu XML (ten, do którego mamy odnośnik).

Dokument XML

Dokument XML o nazwie "dogbreeds.xml" zawiera różne rasy psów:

<?xml version="1.0" encoding="ISO-8859-1"?>
<dogbreeds>
<dog breed="Rottweiler" id="Rottweiler">
  <picture url="http://dog.com/rottweiler.gif" />
  <history>
  Przodkowie Rottweilera prawdopodobnie byli Rzymianami
  pasterze psów.....
  </history>
  <temperament>
  Pewny, odważny, czujny i imponujący, Rottweiler...
  jest popularnym wyborem dzięki swojej zdolności do ochrony...
  </temperament>
</dog>
<dog breed="FCRetriever" id="FCRetriever">
  <picture url="http://dog.com/fcretriever.gif" />
  <history>
  Jednym z najwcześniejszych zastosowań psów łownych było...
  pomagał rybakom w łowieniu ryb z wody...
  </history>
  <temperament>
  Flatt-coated retriever to słodki, ekscytujący...
  żywy pies, który lubi bawić się i przywracać...
  </temperament>
</dog>
</dogbreeds>

Otwórz plik "dogbreeds.xml" w swojej przeglądarce

Uwaga:Powyższy dokument XML używa atrybutu id w każdym elemencie, do którego chcemy linkować!

Dokument linkujący w XML

XPointer nie tylko pozwala na linkowanie do całego dokumentu (kiedy używa się XLink), ale również do określonych jego części. Jeśli chcesz linkować do konkretnej części strony, dodaj znak '#' oraz wyrażenie XPointer do URL w atrybucie xlink:href.

Wyrażenie:#xpointer(id("Rottweiler")) może odnosić się do elementu o wartości id "Rottweiler" w dokumencie docelowym.

Zatem, atrybut xlink:href będzie wyglądał coś takiego:xlink:href="http://dog.com/dogbreeds.xml#xpointer(id('Rottweiler'))"

Jednak gdy używasz linków id do elementu, XPointer pozwala na skróconą formę. Możesz bezpośrednio użyć wartości id, tak jak tutaj:xlink:href="http://dog.com/dogbreeds.xml#Rottweiler"

Poniższy dokument XML zawiera informacje o gatunkach każdego psa, które są odniesione za pomocą XLink i 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 jest moim ulubionym psem. Wygrał mnóstwo.....
  </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 jest najczulszym psem na ziemi......
  </description>
</mydog>
</mydogs>