Najnowsze tutoriale tworzenie stron internetowych
 

XML XLink i XPointer


XLink służy do tworzenia hiperłączy w dokumentach XML.


XPath
  • XLink służy do tworzenia hiperłączy w dokumentach XML
  • Każdy element w dokumencie XML mogą zachowywać się jako link
  • Z XLink, linki mogą być definiowane poza powiązanych plików
  • XLink jest rekomendacją W3C

Wsparcie Przeglądarka XLink

Nie ma wsparcia przeglądarki dla XLink w dokumentach XML. Jednak wszystkie główne przeglądarki obsługują XLinks w SVG .


XLink Składnia

W przypadku HTML, <a> element definiuje hiperłącze. Jednak to nie jest, jak to działa w XML. W dokumentach XML można używać niezależnie elementem nazwy chcesz - w związku z tym niemożliwe jest przewidzieć, co przeglądarek Link elementy będą uruchamiane w dokumentach XML.

Poniżej znajduje się prosty przykład, jak korzystać z XLink do tworzenia odnośników w dokumencie XML:

<?xml version="1.0" encoding="UTF-8"?>

<homepages xmlns:xlink="http://www.w3.org/1999/xlink">
  <homepage xlink:type="simple" xlink:href="http://www.w3ii.com">Visit w3ii</homepage>
  <homepage xlink:type="simple" xlink:href="http://www.w3.org">Visit W3C</homepage>
</homepages>

Aby uzyskać dostęp do funkcji xlink musimy zadeklarować nazw XLink. Przestrzeń nazw XLink jest: "http://www.w3.org/1999/xlink" .

Xlink: rodzaj i xlink:href atrybuty w <homepage> elementy pochodzą od nazw XLink.

Xlink: type = "proste" tworzy prosty "HTML-like" odnośnik (czyli "kliknij tutaj, aby tam").

xlink:href atrybut określa URL połączyć.


Przykład XLink

Poniższy dokument XML zawiera xlink funkcje:

<?xml version="1.0" encoding="UTF-8"?>

<bookstore xmlns:xlink="http://www.w3.org/1999/xlink">

<book title="Harry Potter">
  <description
  xlink:type="simple"
  xlink:href="/images/HPotter.gif"
  xlink:show="new">
  As his fifth year at Hogwarts School of Witchcraft and
  Wizardry approaches, 15-year-old Harry Potter is.......
  </description>
</book>

<book title="XQuery Kick Start">
  <description
  xlink:type="simple"
  xlink:href="/images/XQuery.gif"
  xlink:show="new">
  XQuery Kick Start delivers a concise introduction
  to the XQuery standard.......
  </description>
</book>

</bookstore>

Przykład wyjaśnił:

  • Przestrzeń nazw XLink jest zadeklarowane na początku dokumentu (xmlns:xlink="http://www.w3.org/1999/xlink")
  • Xlink: type = "proste" tworzy prosty "HTML-like" odnośnik
  • xlink:href atrybut określa URL do połączenia (w tym przypadku - obraz)
  • Xlink show = "nowa" określa, że ​​związek powinien otworzyć w nowym oknie

XLink - Dalsze badania

W przykładzie powyżej wykazaliśmy prostych XLinks. XLink jest coraz bardziej interesująca, gdy dostęp do zdalnych lokalizacji jako zasoby, zamiast samodzielnych stron.

Jeśli ustawiona wartość xlink:show przypisują "embed" , połączona zasób powinien być przetwarzane inline w obrębie strony. Jeśli wziąć pod uwagę, że może to być inny dokument XML można na przykład zbudować hierarchię dokumentów XML.

Można również określić, kiedy powinien pojawić się zasób, z xlink:actuate atrybut.


XLink Atrybut Reference

Atrybut Wartość Opis
xlink:actuateonLoad
onRequest
other
none
Definiuje kiedy związany zasób jest czytać i pokazano:
  • onLoad - zasób powinny być ładowane i wyświetlane podczas ładowania dokumentu
  • onRequest - zasób jest nie czytać lub pokazywane przed kliknięciu linku
xlink:href URL Określa adres URL, aby połączyć się
xlink:showembed
new
replace
other
none
Określa gdzie otworzyć łącze. Domyślnie jest "replace"
xlink:typesimple
extended
locator
arc
resource
title
none
Określa typ łącza

XPointer

XPath
  • XPointer pozwala wskazać linki do poszczególnych części dokumentu XML
  • XPointer używa wyrażeń XPath do poruszania się w dokumencie XML
  • XPointer jest rekomendacją W3C

Wsparcie Przeglądarka XPointer

Nie ma wsparcia przeglądarki dla XPointer. Jednak XPointer stosuje się w innych językach XML.


Przykład XPointer

W tym przykładzie użyjemy XPointer w połączeniu z XLink zwrócić się do konkretnej części innego dokumentu.

Zaczniemy patrząc na dokumencie docelowym XML (dokument jesteśmy z linkami do):

<?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 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>

Należy zauważyć, że dokument XML powyżej wykorzystuje atrybuty id na każdym elemencie!

Tak więc, zamiast z linkami do całego dokumentu (as with XLink) , XPointer umożliwia powiązanie poszczególnych części dokumentu. Aby połączyć się do konkretnej części strony, dodać znak numeru (#) i wyraz xpointer po URL w xlink:href atrybutu, na przykład: XLink: href = "http://dog.com/dogbreeds.xml #xpointer (id ( "Rottweiler")) ". Wyrażenie odnosi się do elementu w dokumencie docelowym, o wartości id "Rottweiler" .

XPointer pozwala również skrótowy sposób linkowania do elementu o id. Można użyć wartości identyfikatora bezpośrednio, na przykład: XLink: href = "http://dog.com/dogbreeds.xml#Rottweiler".

Poniższy dokument XML zawiera linki do dodatkowych informacji rasy psów dla każdego z moich psów:

<?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>