XML , XLink et XPointer
XLink est utilisé pour créer des hyperliens dans des documents XML.
|
Prise en charge du navigateur XLink
Il n'y a pas de support de navigateur pour XLink dans les documents XML.
Cependant, tous les principaux navigateurs prennent en charge les XLinks en SVG .
Syntaxe XLink
En HTML, l'élément <a> définit un lien hypertexte. Cependant, ce n'est pas ainsi que cela fonctionne en XML. Dans les documents XML, vous pouvez utiliser les noms d'éléments de votre choix - il est donc impossible pour les navigateurs de prédire quels éléments de lien seront appelés dans les documents XML.
Vous trouverez ci-dessous un exemple simple d'utilisation de XLink pour créer des liens dans un document 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>
Pour avoir accès aux fonctionnalités XLink, nous devons déclarer l'espace de noms XLink. L'espace de noms XLink est : "http://www.w3.org/1999/xlink".
Les attributs xlink:type et xlink:href des éléments <homepage> proviennent de l'espace de noms XLink.
Le xlink:type="simple" crée un simple lien "de type HTML" (signifie "cliquez ici pour y aller").
L'attribut xlink:href spécifie l'URL vers laquelle établir le lien.
Exemple XLink
Le document XML suivant contient les fonctionnalités 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>
Exemple expliqué :
- L'espace de noms XLink est déclaré en haut du document (xmlns:xlink="http://www.w3.org/1999/xlink")
- Le xlink:type="simple" crée un simple lien "de type HTML"
- L'attribut xlink:href spécifie l'URL à lier (dans ce cas - une image)
- Le xlink:show="new" spécifie que le lien doit s'ouvrir dans une nouvelle fenêtre
XLink - Aller plus loin
Dans l'exemple ci-dessus, nous avons démontré des XLinks simples. XLink devient plus intéressant lors de l'accès à des emplacements distants en tant que ressources, au lieu de pages autonomes.
Si nous définissons la valeur de l'attribut xlink:show sur "embed", la ressource liée doit être traitée en ligne dans la page. Lorsque vous considérez qu'il peut s'agir d'un autre document XML, vous pouvez, par exemple, créer une hiérarchie de documents XML.
Vous pouvez également spécifier QUAND la ressource doit apparaître, avec l'attribut xlink:actuate.
Référence des attributs 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 |
XPointerName
|
Prise en charge du navigateur XPointer
Il n'y a pas de support de navigateur pour XPointer. Mais XPointer est utilisé dans d'autres langages XML.
Exemple XPointer
Dans cet exemple, nous utiliserons XPointer en conjonction avec XLink pour pointer vers une partie spécifique d'un autre document.
Nous allons commencer par examiner le document XML cible (le document auquel nous sommes liés) :
<?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>
Notez que le document XML ci-dessus utilise des attributs id sur chaque élément !
Ainsi, au lieu de créer un lien vers le document entier (comme avec XLink), XPointer vous permet de créer un lien vers des parties spécifiques du document. Pour créer un lien vers une partie spécifique d'une page, ajoutez un signe dièse (#) et une expression XPointer après l'URL dans l'attribut xlink:href, comme ceci : xlink:href="https://dog.com/dogbreeds.xml #xpointer(id('Rottweiler'))". L'expression fait référence à l'élément dans le document cible, avec la valeur d'id "Rottweiler".
XPointer permet également une méthode abrégée pour créer un lien vers un élément avec un identifiant. Vous pouvez utiliser directement la valeur de l'identifiant, comme ceci : xlink:href="https://dog.com/dogbreeds.xml#Rottweiler".
Le document XML suivant contient des liens vers plus d'informations sur la race de chien pour chacun de mes chiens :
<?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>