XML, XLink i XQuery

XLink jest używany do tworzenia hiperłączy w dokumentach XML

XPath

  • XLink jest używany do tworzenia hiperłączy w dokumentach XML
  • Każdy element w dokumencie XML może pełnić rolę linku
  • Przez XLink, można zdefiniować linki poza plikiem, do którego są one linkowane
  • XLink jest zalecanym standardem W3C

Wsparcie przeglądarek dla XLink

Przeglądarki nie wspierają XLink w dokumentach XML.

Jednakże, wszystkie główne przeglądarki go wspierają XLink w SVG.

Gramatyka XLink

W HTML, element <a> definiuje hiperłącze. Jednakże, w XML działa inaczej.

W dokumencie XML możesz używać dowolnej nazwy elementu - zatem przeglądarka nie może przewidzieć, które elementy będą używane jako elementy linków.

Poniżej znajduje się prosty przykład, jak używać XLink do tworzenia linków w dokumentach XML:

<?xml version="1.0" encoding="UTF-8"?>
<homepages xmlns:xlink="http://www.w3.org/1999/xlink">
  <homepage xlink:type="simple" xlink:href="https://www.codew3c.com">Odwiedź CodeW3C.com</homepage>
  <homepage xlink:type="simple" xlink:href="http://www.w3.org">Odwiedź W3C</homepage>
</homepages>

Jeśli potrzebujemy dostępu do funkcji XLink, musimy zadeklarować przestrzeń nazw XLink. Przestrzeń nazw XLink to: "http://www.w3.org/1999/xlink".

Atrybuty xlink:type i xlink:href w elemencie <homepage> pochodzą z tej przestrzeni nazw XLink.

xlink:type="simple" tworzy prosty "podobny do HTML" link (oznacza to "kliknij tutaj, aby przejść gdzie indziej").

Atrybut xlink:href określa URL do którego ma być linkowany.

Przykład XLink

Poniższy dokument XML zawiera funkcje XLink:

<?xml version="1.0" encoding="UTF-8"?>
<bookstore xmlns:xlink="http://www.w3.org/1999/xlink">
<book title="雅舍谈吃">
  <description
  xlink:type="simple"
  xlink:href="/images/cswd.jpg"
  xlink:show="new">
  『雅舍谈吃』to przewodnik po potrawach Chaozhou, który oferuje potrzebne wskazówki i pomoc dla miłośników jedzenia i poszukiwaczy smaku;
  Ta książka może być również uznana za humanistyczną lekturę o potrawach Chaozhou, w której przedstawia się potrawy Chaozhou, a nie tylko zwyczaje żywieniowe Chaozhou, głęboko odkrywając i prezentując ukrytą kulturę miejscową, zwyczaje żywieniowe i szczegóły historyczne ukryte za jedzeniem.
  </description>
</book>
<book title="Niesamowity ojciec liska">
  <description
  xlink:type="simple"
  xlink:href="/images/mrfox.jpg"
  xlink:show="new">
  Bogis, Bons i Bean to najżałosnejsze i najmniej hojne osoby, jakich możesz spotkać, nienawidzą pana Liska i zdecydowali się usunąć jego całą rodzinę.
  I tak, ci trzej ludzie, trzymając broń, podstępnie czekali przed norą pana Liska…… Ale pan Lisek miał na to swoje sprytne plany!
  I tak, zaczęła się rywalizacja o mądrość i siłę……
  </description>
</book>
</bookstore>

Przykład wyjaśnienia:

  1. Przestrzeń nazw XLink jest deklarowana na górze dokumentu (xmlns:xlink="http://www.w3.org/1999/xlink")
  2. xlink:type="simple" tworzy prosty link "podobny do HTML"
  3. Atrybut xlink:href określa URL do połączenia (w tym przypadku obraz)
  4. xlink:show="new" wskazuje, że link powinien się otworzyć w nowym oknie

XLink - Idź dalej

W powyższym przykładzie pokazaliśmy prosty XLink.

Kiedy używamy zdalnej lokalizacji jako zasobu zamiast dostępu do niezależnej strony, XLink staje się bardziej interesujący.

Jeśli ustalimy wartość atrybutu xlink:show na "embed", połączone zasoby będą przetwarzane wewnątrz strony. Na przykład, jeśli uważasz, że to może być inny dokument XML, możesz zbudować hierarchię dokumentu XML.

Możesz również użyć atrybutu xlink:actuate, aby określić, kiedy zasób powinien się pojawić.

Przegląd atrybutów XLink

Atrybut Wartość Opis xlink:actuate onLoad onRequest other none Definiowanie kiedy odczytywać i wyświetlać połączone zasoby: onLoad - Zasoby powinny być ładowane i wyświetlane podczas ładowania dokumentu onRequest - zasób nie zostanie odczytany ani wyświetlony przed kliknięciem linku xlink:href URL określa URL do którego ma być skierowany link. xlink:show embed new replace other none określa gdzie otworzyć link. Domyślnie jest "replace". xlink:type simple extended locator arc resource title none określa typ linku.

XPointer

XPath
  • XPointer pozwala na linki wskazujące na określone części dokumentu XML
  • XPointer używa wyrażeń XPath do nawigacji w dokumentach XML
  • XPointer jest rekomendowanym standardem W3C

Obsługa przeglądarek XPointer

Brak przeglądarek obsługujących XPointer. Ale XPointer jest również używany w innych językach XML.

Przykład XPointer

W tym przykładzie, będziemy łączyć używanie XPointer i XLink, aby wskazać na określony odcinek innego dokumentu.

Najpierw przyjrzyjmy się temu docelowemu dokument XML (do którego się odnosimy):

<?xml version="1.0" encoding="UTF-8"?>
<dogbreeds>
<dog breed="Rottweiler" id="Rottweiler">
  <picture url="https://dog.com/rottweiler.gif" />
  <history>Przodkowie Rottweilera prawdopodobnie byli Rzymianami
  drover dogs.....</history>
  <temperament>Confident, bold, alert and imposing, the Rottweiler
  jest popularnym wyborem ze względu na swoją zdolność do ochrony....</temperament>
</dog>
<dog breed="FCRetriever" id="FCRetriever">
  <picture url="https://dog.com/fcretriever.gif" />
  <history>Jednym z najwcześniejszych zastosowań psów wyłapywaczy było
  pomóc rybakom wyłapywać ryby z wody....</history>
  <temperament>The flat-coated retriever is a sweet, exuberant,
  żywiołowy pies, który lubi bawić się i odzyskiwać....</temperament>
</dog>
</dogbreeds>

Proszę zauważyć, że powyższy dokument XML używa atrybutu id w każdym elemencie!

Zatem XPointer pozwala na linkowanie do konkretnej części dokumentu, zamiast linkowania do całego dokumentu (jak w XLink).

Aby linkować do konkretnej części strony, dodaj znak # i wyrażenie XPointer do URL w atrybucie xlink:href, tak jak pokazano poniżej:

xlink:href="https://dog.com/dogbreeds.xml#xpointer(id('Rottweiler'))"

Wyrażenie to odnosi się do elementu w docelowym dokumencie o wartości id "Rottweiler".

xlink:href="https://dog.com/dogbreeds.xml #xpointer(id('Rottweiler'))"。

XPointer pozwala również na użycie skróconych metod linkowania do elementów z id. Możesz bezpośrednio użyć wartości id, tak jak pokazano poniżej:

xlink:href="https://dog.com/dogbreeds.xml#Rottweiler

Poniższy dokument XML zawiera linki do dodatkowych informacji na temat każdego psa:

<?xml version="1.0" encoding="UTF-8"?>
<mydogs xmlns:xlink="http://www.w3.org/1999/xlink">
<mydog>
  <description>
  Anton jest moim ulubionym psem. Wygrał mnóstwo.....
  </description>
  <fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#Rottweiler">
  Fakty o rottweilerze
  </fact>
</mydog>
<mydog>
  <description>
  Pluto jest najprzyjemniejszym psem na ziemi......
  </description>
  <fact xlink:type="simple" xlink:href="https://dog.com/dogbreeds.xml#FCRetriever">
  Fakt o Retrieverze o krótkiej sierści
  </fact>
</mydog>
</mydogs>