La communauté ALL HTML c'est 58234 membres à ce jour dont 2 inscrits aujourd'hui et 35 depuis une semaine.

XLINK simple et étendue

Photo de ALL HTML Article publié le mardi 16 mars 2004 par ALL HTML.
Cet article est classé dans les catégories « XML »

L’attribut xlink:type


N’importe quel élément XML peut être un lien. Pour cela, il suffit qu’il contienne certains attributs comme : xlink:type, xlink:href, …

Un élément qui est un lien est un élément liant ou appelé "linking element"
. L’attribut xlink:type est l’attribut qui va définir le type de lien que représente l’élément. Il peut prendre six valeurs :

a ) Simple
b ) Extended
c ) Locator
d ) Resource
e ) Arc
f ) Title


Voici un horizon des liens dits "simples".

xlink:type = "simple"

Ces éléments liants définissent des liens semblables à des liens HTML avec la possibilité d’exercer un contrôle minimum sur leur comportement.

<langages xmlns:xlink="http://www.w3.org/1999/xlink/namespace/" xlink:type="simple" xlink:href="http://www.allhtml.com/langages/">Langages</langages> <img xmlns:xlink="http://www.w3.org/1999/xlink/namespace/" xlink:type="simple" xlink:href="langage.gif" xlink:actuate="onLoad" xlink:show="embed"/><details xmlns:xlink="http://www.w3.org/1999/xlink/namespace/" xlink:type="simple" xlink:href="detail.xml"/>

Par cet exemple, nous remarquons plusieurs choses :

- Premièrement, tous ces éléments ont l’attribut xmlns:xlink qui les lie à un "espace de nommage" spécifique
- Deuxièmement, du fait qu’ils sont des éléments liants de type simple, tous ont l’attribut xlink:type qui prend la valeur simple
- Ensuite, nous voyons que l’attribut xlink:href ne diffère pas de son cousin HTML, il s’utilise en effet de maniere identique

Sinon, deux attributs font leur apparition xlink:actuate et xlink:show. Ces derniers définissent le comportement du lien. Nous les verrons plus en détail par la suite.

Note : le préfixe xlink n’est pas obligatoire mais l’omettre sans raison serait en dépit du bon sens. Il suffit d’imaginer un élément ayant déjà comme attribut "type", si vous voulez qu’il soit un élément liant, vous êtes obligé de définir l’attribut "type" et de l’écrire sous la forme xlink:type afin d’éviter toute confusion.

xlink:show

Cet attribut décrit comment le lien sera affiché quand il sera activé, il peut prendre 4 valeurs :

- Replace : Lorsque le lien est activé (par un click de souris par exemple), la cible du lien (déterminée par xlink:href) remplace le document à l’intérieur de la fenêtre de visualisation
- New : Lorsque le lien est activé, l’application ouvre une nouvelle fenêtre dans laquelle la cible est affichée
- Embed : Lorsque le lien est activé, la cible est insérée à l’intérieur du document courant
- Undefined : Cette valeur donne à l’application (qui interprète les XLINKS) le libre choix de faire ce qu'elle veut

xlink:actuate

Cet attribut décrit comment l’activation du lien se déroulera, il peut prendre 3 valeurs :

- onRequest : Le lien ne sera exécuté que si l’utilisateur le souhaite
- onLoad : Le lien sera exécuté automatiquement sans contrôle de l’utilisateur
- undefined : Cette valeur donne à l’application le libre choix de faire ce qu'elle veut.

Il existe deux autres attributs, xlink:title et xlink:role, qui donnent des informatins sur le document ciblé.

<actualites xmlns:xlink="http://www.w3.org/1999/xlink/namespace/" xlink:href="http://www.allhtml.com/actualites/index.php" xlink:title="Actu Webmasters" xlink:role="7 jours sur 7 l’actu Webmasters sur ALL HTML">Actu Webmasters</actualites> xlink:title

Comme son nom le laisse à penser, cet attribut donne un nom générique au document ciblé qui peut être une image ou du texte. Cela peut être, dans le cas d’une page HTML, le titre de cette page par exemple.

xlink:role

Comme son nom le laisse à penser, cet attribut essaie de présenter le rôle du document ciblé.

xlink:type="extended"


Les liens étendus permettent de créer des liens multidirectionnels, de construire une grappe de liens reliant des dizaines de documents entre eux.

<website xmlns:xlink="http://www.w3.org/1999/xlink/namespace/" xlink:type="extended"> <nom xlink:type="resource">ALL HTML</nom> <homesite xlink:type="locator" xlink:href="http://www.allhtml.com/"/> <mirror xlink:type="locator" xlink:href="http:// [url=www.allhtml.org/"/>]www.allhtml.org/"/>[/url] <mirror xlink:type="locator" xlink:href="http:// [url=www.allhtml.net/"/>]www.allhtml.net/"/>[/url] </website>

Cet exemple illustre le fait de pouvoir créer des graphes dont les éléments sont des liens. Ce graphe doit commencer par l’élément liant de type étendu puis il regroupe les différentes cibles liées à cet élément. Deux valeurs de l’attribut xlink:type font leur apparition : resource et locator.

xlink:type="resource"

Ceci définit la cible de l’élément liant comme un document local.

xlink:type="locator"

Ceci définit la cible de l’élément liant comme un document distant.

xlink:type="arc"

Les arcs définissent les connections entre les documents. Il est donc important de définir l’origine et la fin du chemin symbolisant la connexion entre deux documents. Pour cela, les attributs xlink:from et xlink:to sont mis à notre disposition.

<website xmlns:xlink="http://www.w3.org/1999/xlink/namespace/" xlink:type="extended"> <nom xlink:type="resource" xlink:role="local">ALL HTML</nom> <homesite xlink:type="locator" xlink:role="com" xlink:href="http://www.allhtml.com/"/> <mirror xlink:type="locator" xlink:role="org" xlink:href="http://www.allhtml.org/"/> <mirror xlink:type="locator" xlink:role="net" xlink:href="http://www.allhtml.net/"/> <connexion xlink:type="arc" xlink:from="local" xlink:to="com" xlink:show="replace" xlink:actuate="onrequest"/> <connexion xlink:type="arc" xlink:from="local" xlink:to="org" xlink:show="replace" xlink:actuate="onrequest"/> <connexion xlink:type="arc" xlink:from="local" xlink:to="net" xlink:show="replace" xlink:actuate="onrequest"/> </website>

Nous voyons qu’à partir du document local, nous pouvons aller rechercher des documents distants, si nous le souhaitons, à différents endroits (liens multi-directionnel se propageant que dans un sens).
La connexion est réalisée grâce à l’attribut xlink:role mais cela peut être fait à partir de n’importe quel symbole qui identifie la balise.

<connexion xlink:type="arc" xlink:from="nom" xlink:to="mirror" xlink:show="replace" xlink:actuate="onrequest"/>

Cette connexion est faite à partir du nom des éléments. Les arcs permettent également de dresser un historique d’une navigation, à travers de multiples documents.

Pour en finir avec les liens étendus, nous présenterons brièvement les liens "out-of-line" qui ne contiennent aucune information locale et ne stockent des informations qu’entre des documents distants. Ils ne sont pas dans le document courant, ils sont sauvegardés dans des documents externes. Leur utilisation se justifie pour la création de tables de matières. Ainsi, lors de la mise à jour de celle-ci, il est possible de ne toucher à aucun document autre que celui qui contient les liens "out-of-line".

<livre xmlns:xlink="http://www.w3.org/1999/xlink/namespace/" xlink:type="extended"> <toc xlink:type="locator" xlink:href="toc.xml" xlink:role="index"/> <chap xlink:type="locator" xlink:href="chap1.xml" xlink:role="chapitre"/> <chap xlink:type="locator" xlink:href="chap2.xml" xlink:role="chapitre"/> <chap xlink:type="locator" xlink:href="chap3.xml" xlink:role="chapitre"/> <chap xlink:type="locator" xlink:href="chap4.xml" xlink:role="chapitre"/> <chap xlink:type="locator" xlink:href="chap5.xml" xlink:role="chapitre"/> <connexion xlink:type="arc" from="index" to="chapitre"/> <connexion xlink:type="arc" from="chapitre" to="index"/> </livre>

Si vous voulez rajouter un chapitre correspondant au fichier essai.xml, il suffit de rajouter cet élément dans le document présenté ci-dessous :

<chap xlink:type="locator" xlink:href="essai.xml" xlink:role="chapitre"/>

Ainsi, vous pouvez vous déplacer dans la table des matières, sans avoir à manipuler les documents qui la composent.

DTD


Si vous souhaitez associer à votre document XML contenant les XLINKS, une DTD, il est d’usage de déclarer les linking elements de cette manière :

<img xmlns:xlink="http://www.w3.org/1999/xlink/namespace/" xlink:type="simple" xlink:href="photo.gif" xlink:actuate="onLoad" xlink:show="embed"/> <!element img empty> <!attlist img xmlns:xlink cdata #fixed "http://www.w3.org/1999/xlink/namespace/" xlink:type cdata #fixed "simple" xlink:href cdata #required xlink:show cdata #fixed "onLoad" xlink:actuate cdata #fixed "embed"> <connexion xlink:type="arc" xlink:from="local" xlink:to="fr" xlink:show="replace" xlink:actuate="onrequest"/> <!element connexion empty> <!attlist connexion xlink:type (arc) #fixed "arc" xlink:from cdata #implied xlink:to cdata #implied xlink:show (replace) #implied "replace" xlink:actuate (onrequest | onload) #implied "onrequest"> <mirror xlink:type="locator" xlink:role="org" xlink:title="main page" xlink:href="http://www.allhtml.com/"/> <!element mirror (#pcdata)> <!attlist mirror xlink:type (locator) #fixed "locator" xlink:role cdata #required* xlink:title cdata #implied xlink:href cdata #required>

VOS COMMENTAIRES ...

Commenter cette publication

Aucun commentaire pour le moment ...

Commenter cette publication

Vous devez obligatoirement vous identifier en tant que membre pour participer à cette discussion.

Forums de discussions associés

Discutez et échangez sur ce thème dans notre forum XML - XSL - WML (WAP) - MATHML.

Liens sponsorisés

ACCÉS COMMUNAUTÉ

Rejoignez ALL HTML

Publiez vos articles, actualités, communiqués ... Donnez votre avis, partagez votre réseau, rencontrez d'autres membres et participez à la vie de la communauté.