XML , XLink i XPointer
XLink służy do tworzenia hiperłączy w dokumentach XML.
|
Obsługa przeglądarki XLink
Nie ma obsługi przeglądarki XLink w dokumentach XML.
Jednak wszystkie główne przeglądarki obsługują XLinks w SVG .
Składnia XLink
W HTML element <a> definiuje hiperłącze. Jednak tak nie działa w XML. W dokumentach XML możesz używać dowolnych nazw elementów — dlatego przeglądarki nie mogą przewidzieć, jakie elementy łącza będą wywoływane w dokumentach XML.
Poniżej znajduje się prosty przykład wykorzystania XLink do tworzenia łączy 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="https://www.w3schools.com">Visit W3Schools</homepage>
<homepage xlink:type="simple"
xlink:href="http://www.w3.org">Visit W3C</homepage>
</homepages>
Aby uzyskać dostęp 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 elementach <homepage> pochodzą z przestrzeni nazw XLink.
xlink:type="simple" tworzy prosty link "w stylu HTML" (oznacza "kliknij tutaj, aby tam przejść").
Atrybut xlink:href określa adres URL do linku.
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="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śniony:
- Przestrzeń nazw XLink jest zadeklarowana na górze dokumentu (xmlns:xlink="http://www.w3.org/1999/xlink")
- xlink:type="simple" tworzy prosty link "w stylu HTML"
- Atrybut xlink:href określa adres URL do linku (w tym przypadku - obraz)
- Xlink:show="new" określa, że link powinien otworzyć się w nowym oknie
XLink - Idź dalej
W powyższym przykładzie zademonstrowaliśmy proste XLinki. XLink staje się coraz bardziej interesujący podczas uzyskiwania dostępu do zdalnych lokalizacji jako zasobów, zamiast samodzielnych stron.
Jeśli ustawimy wartość atrybutu xlink:show na „embed”, połączony zasób powinien zostać przetworzony wewnętrznie na stronie. Biorąc pod uwagę, że może to być inny dokument XML, możesz na przykład zbudować hierarchię dokumentów XML.
Możesz również określić KIEDY zasób powinien się pojawić, używając atrybutu xlink:actuate.
Dokumentacja atrybutów XLink
Attribute | Value | Description |
---|---|---|
xlink:actuate | onLoad onRequest other none |
Defines when the linked resource is read and shown:
|
xlink:href | URL | Specifies the URL to link to |
xlink:show | embed new replace other none |
Specifies where to open the link. Default is "replace" |
xlink:type | simple extended locator arc resource title none |
Specifies the type of link |
XPointer
|
Obsługa przeglądarki XPointer
XPointer nie obsługuje przeglądarki. Ale XPointer jest używany w innych językach XML.
Przykład XPointera
W tym przykładzie użyjemy XPointer w połączeniu z XLink, aby wskazać konkretną część innego dokumentu.
Zaczniemy od spojrzenia na docelowy dokument XML (dokument, do którego prowadzimy link):
<?xml version="1.0" encoding="UTF-8"?>
<dogbreeds>
<dog breed="Rottweiler" id="Rottweiler">
<picture url="https://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="https://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>
Zauważ, że powyższy dokument XML używa atrybutów id dla każdego elementu!
Tak więc, zamiast linkowania do całego dokumentu (jak w XLink), XPointer pozwala na linkowanie do określonych części dokumentu. Aby utworzyć link do określonej części strony, dodaj znak liczby (#) i wyrażenie XPointer po adresie URL w atrybucie xlink:href, na przykład: xlink:href="https://dog.com/dogbreeds.xml #xpointer(id('Rottweiler'))". Wyrażenie odwołuje się do elementu w dokumencie docelowym o wartości identyfikatora „Rottweiler”.
XPointer umożliwia również skróconą metodę łączenia z elementem o identyfikatorze. Możesz użyć wartości identyfikatora bezpośrednio, na przykład: xlink:href="https://dog.com/dogbreeds.xml#Rottweiler".
Poniższy dokument XML zawiera łącza do większej ilości informacji o rasie 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="https://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="https://dog.com/dogbreeds.xml#FCRetriever">
Fact about flat-coated Retriever
</fact>
</mydog>
</mydogs>