XML , XLink en XPointer
XLink wordt gebruikt om hyperlinks in XML-documenten te maken.
|
XLink-browserondersteuning
Er is geen browserondersteuning voor XLink in XML-documenten.
Alle grote browsers ondersteunen echter XLinks in SVG .
XLink-syntaxis
In HTML definieert het <a>-element een hyperlink. Dit is echter niet hoe het werkt in XML. In XML-documenten kunt u elke gewenste elementnaam gebruiken - daarom is het voor browsers onmogelijk om te voorspellen welke linkelementen in XML-documenten zullen worden aangeroepen.
Hieronder ziet u een eenvoudig voorbeeld van hoe u XLink kunt gebruiken om koppelingen in een XML-document te maken:
<?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>
Om toegang te krijgen tot de XLink-functies moeten we de XLink-naamruimte declareren. De XLink-naamruimte is: "http://www.w3.org/1999/xlink".
De xlink:type en de xlink:href attributen in de <homepage> elementen komen uit de XLink namespace.
De xlink:type="simple" creëert een eenvoudige "HTML-achtige" link (betekent "klik hier om daarheen te gaan").
Het xlink:href attribuut specificeert de URL waarnaar gelinkt moet worden.
XLink-voorbeeld
Het volgende XML-document bevat XLink-functies:
<?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>
Voorbeeld uitgelegd:
- De XLink-naamruimte wordt bovenaan het document gedeclareerd (xmlns:xlink="http://www.w3.org/1999/xlink")
- De xlink:type="simple" maakt een eenvoudige "HTML-achtige" link
- Het xlink:href attribuut specificeert de URL waarnaar gelinkt moet worden (in dit geval - een afbeelding)
- De xlink:show="new" geeft aan dat de link in een nieuw venster moet openen
XLink - Verder gaan
In het bovenstaande voorbeeld hebben we eenvoudige XLinks gedemonstreerd. XLink wordt interessanter bij het benaderen van externe locaties als bronnen, in plaats van op zichzelf staande pagina's.
Als we de waarde van het xlink:show attribuut op "embed" zetten, moet de gekoppelde bron inline binnen de pagina worden verwerkt. Als je bedenkt dat dit een ander XML-document zou kunnen zijn, zou je bijvoorbeeld een hiërarchie van XML-documenten kunnen bouwen.
U kunt ook specificeren WANNEER de bron moet verschijnen, met het xlink:actuate attribuut.
XLink-kenmerkreferentie
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
|
XPointer-browserondersteuning
Er is geen browserondersteuning voor XPointer. Maar XPointer wordt gebruikt in andere XML-talen.
XPointer-voorbeeld
In dit voorbeeld gebruiken we XPointer in combinatie met XLink om naar een specifiek deel van een ander document te verwijzen.
We beginnen door te kijken naar het doel-XML-document (het document waarnaar we linken):
<?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>
Merk op dat het bovenstaande XML-document id-attributen gebruikt voor elk element!
Dus in plaats van naar het hele document te linken (zoals bij XLink), kun je met XPointer linken naar specifieke delen van het document. Om naar een specifiek deel van een pagina te linken, voegt u een hekje (#) en een XPointer-expressie toe na de URL in het xlink:href attribuut, zoals dit: xlink:href="https://dog.com/dogbreeds.xml #xpointer(id('Rottweiler'))". De uitdrukking verwijst naar het element in het doeldocument, met de id-waarde "Rottweiler".
XPointer staat ook een stenomethode toe om te linken naar een element met een id. U kunt de waarde van de id direct gebruiken, zoals dit: xlink:href="https://dog.com/dogbreeds.xml#Rottweiler".
Het volgende XML-document bevat links naar meer informatie over het hondenras voor elk van mijn honden:
<?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>