Recommandation XLink du W3C en version française

Statut du document traduit

Ceci est une traduction de la recommandation du W3C portant sur le langage de liaison XML.

Cependant ce n'est pas la version officielle en français de la recommandation. Seul le document original en anglais a valeur de norme. On peut l'obtenir à : http://www.w3.org/TR/xlink/.

Avertissement

Des erreurs ont pu survenir malgré le soin apporté à ce travail.

Notes sur la traduction

Certains concepts sont difficiles à rendre en français ou peuvent nécessiter une explication, aussi les expressions originales en anglais viennent parfois en renfort dans le texte sous cette forme :
ex. traduction [ndt. translation]

D'autre part, certains liens renvoient sur des définitions contenues dans les recommandations originales du W3C. Ces liens sont doublés vers leur version française et sont signalés ainsi : vf.

Archives compressées et autres formats

Cette traduction est disponible sous forme d'archive compressée et, le cas échéant, dans d'autres formats à l'adresse http://www.yoyodesign.org/doc/w3c/w3c.html.

Autres documents traduits

On peut consulter les traductions en français d'autres documents du W3C à
http://www.w3.org/Consortium/Translation/French

Notice légale

Copyright © 1994-2003 World Wide Web Consortium,
(Massachusetts Institute of Technology,
European Research Consortium for Informatics and Mathematics,
Keio University).
Tous droits réservés. Consulter la notice de copyright pour les productions du W3C.

W3C

Le langage de liaison XHTML (XLink) version 1.0

Recommandation du W3C du 27 juin 2001

Cette version :
http://www.w3.org/TR/2000/REC-xlink-20010627/ (disponible dans les formats HTML et XML)
Dernière version :
http://www.w3.org/TR/xlink/
Version précédente :
http://www.w3.org/TR/2000/PR-xlink-20001220/
Rédacteurs :
Steve DeRose, Brown University Scholarly Technology Group
Eve Maler, Sun Microsystems
David Orchard, Jamcracker

Résumé

Cette spécification définit le langage de liaison XHTML (XLink), qui permet l'insertion d'éléments dans les documents XHTML afin de créer et de décrire des liens entre les ressources. Celui-ci utilise la syntaxe XHTML pour créer les structures capables de décrire des liens similaires aux hyperliens unidirectionnels simples, qu'on trouve actuellement dans HTML, ainsi que des liens plus sophistiqués.

Statut de ce document

Ce document, qui a été revu par les membres du W3C et les tiers intéressés, a été homologué par le Directeur au titre de recommandation du W3C. C'est un document stable qui peut être utilisé comme matériel de référence ou cité comme référence normative à partir d'un autre document. Le rôle du W3C en produisant la recommandation est d'attirer l'attention sur la spécification et d'en promouvoir la plus grande diffusion. Ceci pour améliorer les fonctionnalités et l'interopérabilité du Web.

Pour des renseignements sur le langage XPointer, qui peut s'utiliser avec XLink, voir [XPTR].

Ce document a été élaboré par le groupe de travail sur les liaisons XHTML du W3C appartenant à l'activité XHTML du domaine architecture du W3C. Pour l'historique des travaux, veuillez consulter la déclaration d'activité XHTML.

Veuillez signaler les éventuelles erreurs dans ce document sur la liste de diffusion publique www-xml-linking-comments@w3.org (archives disponibles à http://lists.w3.org/Archives/Public/www-xml-linking-comments/). Toutes les erreurs confirmées seront documentées dans une liste des erreurs disponible à http://www.w3.org/2001/06/xlink-errata.

Seule la version en anglais de cette spécification est normative. On peut trouver des renseignements sur les traductions de ce document à http://www.w3.org/2001/06/xlink-translations.

Voir [XLDP] pour une information de base concernant les principes de construction qui renseignent XLink et [XLREQ] pour les exigences vis-à-vis de XLink que ce document essaye de satisfaire. XLink ne reconnaît pas toutes les structures de liaison HTML telles quelles : voir [XLinkNaming] pour une présentation de la situation.

On peut trouver la liste des recommandations courantes et des autres documents techniques du W3C à http://www.w3.org/TR/.

Table des matières

  1. Introduction
    1. L'origine et les objectifs
  2. Les concepts de XLink
    1. Les liens et les ressources
    2. Les arcs, la traversée et le comportement
    3. Les ressources en relation avec la localisation physique d'un élément de liaison
  3. Le traitement et la conformité XLink
    1. Le traitement des dépendances
    2. La conformité du balisage
    3. La conformité de l'application
  4. La conception du balisage XLink
    1. Les configurations d'utilisation des attributs XLink
    2. Les relations entre les types d'élément XLink
    3. La valeur par défaut des attributs
    4. L'intégration de l'utilisation de XLink à un autre balisage
    5. L'utilisation de XLink avec les balisages existants
  5. Les éléments et attributs de XLink
    1. Les liens étendus (élément de type extended)
      1. Les ressources locales du lien étendu (élément de type resource)
      2. Les ressources distantes du lien étendu (élément de type locator)
      3. Les règles de traversée du lien étendu (élément de type arc)
      4. Les titres des liens étendus, des localisateurs et des arcs (élément de type title)
      5. La localisation des bases de liens (rôle particulier de l'arc)
    2. Les liens simples (élément de type simple)
    3. L'attribut de type de l'élément XLink (type)
    4. L'attribut localisateur (href)
    5. Les attributs sémantiques (role, arcrole et title)
    6. Les attributs de comportement (show et actuate)
      1. L'attribut show
      2. L'attribut actuate
    7. Les attributs de traversée (label, from et to)

Appendices

A Références
A.1 Les références normatives
A.2 Les références non-normatives
B Exemple de DTD (non-normatif)
C Les membres du groupe de travail et les remerciements (non-normatif)


1 Introduction

Cette spécification définit le langage de liaison XHTML (XLink), qui permet l'insertion d'éléments dans les documents XHTML afin de créer et de décrire des liens entre des ressources.

XLink fournit un cadre pour la création à la fois de liens unidirectionnels simples et de structures de liaison plus complexes. Il permet aux documents XHTML :

XLink trouve une application importante dans les systèmes hypermédias qui ont des hyperliens. Comme cas simple d'hyperlien, l'élément HTML A, qui possède les caractéristiques suivantes :

Ce sont des caractéristiques puissantes, mais le modèle qui les sous-tend limite la portée des fonctionnalités possibles de l'hyperlien. Le modèle défini dans cette spécification partage avec HTML l'utilisation de la technologie de l'URI, tout en offrant des fonctionnalités, au-delà de HTML, qui n'étaient disponibles auparavant que dans les systèmes hypermédias dédiés et qui rendent les hyperliens plus adaptables et plus flexibles. En même temps que l'apport de structures de données de liaison, XLink fournit un modèle de comportement minimal pour le lien ; les applications de plus haut niveau calquées sur XLink spécifieront souvent des restitutions comme des traitements alternatifs ou plus sophistiqués.

Le traitement intégré des liens spécialisés utilisés dans d'autres domaines techniques, telles que les clés étrangères [ndt. foreign keys] dans les bases de données relationnelles et les valeurs des références dans les langages de programmation, est hors du propos de cette spécification.

1.1 L'origine et les objectifs

La conception de XLink s'est nourrie de la connaissance des systèmes hypermédias et des standards établis. Les standards suivants ont eu une influence particulière :

  • HTML [HTML] : définit plusieurs types d'élément qui représentent des liens ;

  • HyTime [ISO/IEC 10744] : définit des structures de liens en-ligne, entrants et de tiers, ainsi que quelques caractéristiques sémantiques, y compris le contrôle de la traversée et la présentation des objets ;

  • Les principes directeurs de l'initiative pour le codage du texte [TEI] : fournit des structures pour la création de liens, d'objets composés et de collections de liens.

Nombre d'autres systèmes de liaison ont également influencé la conception de XLink, notamment [Dexter], [FRESS], [OHS], [MicroCosm] et [Intermedia].

Voir le document du cahier des charges XLink [XLREQ] pour une explication complète des exigences pour la conception de XLink.

2 Les concepts de XLink

Cette section décrit les termes et les concepts essentiels pour la compréhension de XLink, sans aborder la syntaxe utilisé pour créer les structures XLink. Quelques termes supplémentaires sont introduits dans les parties suivantes de cette spécification.

2.1 Les liens et les ressources

[Définition : Un lien XLink est une relation explicite entre des ressources ou portions de ces ressources]. [Définition : Cette relation est rendue explicite par un élément de liaison Xlink, qui est un élément XHTML conforme à XLink, confirmant l'existence du lien]. Il existe six éléments XLink ; seuls deux d'entre eux sont considérés comme des éléments de liaison. Les autres fournissent diverses informations qui décrivent les caractéristiques du lien. (Le terme « lien » tel qu'il est employé dans cette spécification désigne seulement un lien XLink, bien que rien n'empêche les structures non-XLink de servir comme liens).

La notion de ressources est universelle au World Wide Web. [Définition : Comme expliqué dans le document [IETF RFC 2396], une ressource représente une quelconque unité adressable d'information ou de service]. Les fichiers, les images, les documents, les programmes et les résultats de requête en sont des exemples. Le moyen qui est utilisé pour adresser une ressource est une référence d'URI (décrit plus en détails dans la section « 5.4 L'attribut localisateur (href) »). Il est possible d'adresser une portion de ressource. Par exemple, si la ressource entière consiste en un document XHTML, la portion utile de cette ressource pourrait être un élément particulier dans ce document. Le suivi du lien vers cet élément pourrait aboutir, par exemple, à sa mise en évidence ou bien au défilement du document jusqu'à celui-ci.

[Définition : Quand un lien associe un ensemble de ressources, ces ressources sont dites participer au lien]. Même si les liens XLink doivent apparaître dans des documents XHTML, ils sont capables d'associer toutes sortes de ressources, pas seulement celles codées en XHTML..

L'une des utilisations habituelles de XLink est la création d'hyperliens. [Définition : Un hyperlien est principalement un lien destiné à une présentation auprès d'un utilisateur humain. Cependant, rien dans la conception de XLink n'empêche son utilisation avec des liens prévus seulement pour une consommation par des ordinateurs.

2.2 Les arcs, la traversée et le comportement

[Définition : L'utilisation ou le suivi d'un lien, quel que soit le motif, est appelée traversée]. Bien que certaines sortes de lien puissent associer un nombre arbitraire de ressources, la traversée implique toujours un couple de ressources (ou de portions de celles-ci) ; [Définition : la source à partir de laquelle la traversée est initiée est la ressource de départ] et [Définition : la destination est la ressource d'arrivée]. Remarquez que le terme « ressource » employé de cette manière peut parfois s'appliquer à une portion de ressource, non à une ressource entière.

[Définition : L'information concernant la manière de traverser un couple de ressources, comprenant la direction de la traversée et les informations de comportement éventuelles de l'application, est appelée un arc]. Si deux arcs dans un lien spécifient le même couple de ressources, mais inversent leurs ressources de départ et d'arrivée, alors le lien est multidirectionnel, ce qui ne revient pas au même qu'un simple « aller et retour » après la traversée du lien.

2.3 Les ressources en relation avec la localisation physique d'un élément de liaison

[Définition : Une ressource locale est un élément XHTML qui participe au lien par le fait d'avoir comme parent, ou d'être lui-même, un élément de liaison]. [Définition : Toute ressource, ou portion de ressource, qui participe au lien par le fait d'être adressée par une référence d'URI est considérée une ressource distante, même si cette ressource se trouve dans le même document XHTML que le lien, ou à l'intérieur même de l'élément de liaison]. Autrement dit, une ressource locale est spécifiée « par valeur » et une ressource distante « par référence ».

[Définition : Un arc, qui a une ressource de départ locale et une ressource d'arrivée distante, est dit sortant [ndt. outbound], c'est-à-dire qu'il s'éloigne de l'élément de liaison]. (Comme exemples de lien avec un tel arc, il y a les éléments A en HTML, « clinks » de HyTime et XREF de TEI). [Définition : Si la ressource d'arrivée d'un arc est locale mais que celle de départ est distante, alors l'arc est dit entrant [ndt. inbound]]. [Définition : Si ni la ressource de départ ni celle d'arrivée ne sont locales, alors il s'agit d'un arc tiers [ndt. third-party]]. Bien que ce ne soit pas obligatoire, un lien ne spécifie typiquement qu'une seule sorte d'arc tout du long, et on pourrait donc s'y référer comme à un lien entrant, sortant ou tiers.

Pour créer un lien qui émane d'une ressource sur laquelle vous n'avez pas accès en écriture (ou choisi de ne pas y exercer d'écriture), ou à partir d'une ressource qui n'offre aucun moyen pour incorporer des structures de liaison, il est nécessaire d'utiliser un arc entrant ou bien tiers. Quand on utilise ces arcs, les exigences pour la découverte des liens sont plus importantes que pour les arcs sortants. [Définition : Les documents contenant des collections de liens entrants et tiers sont appelés bases de données de liens ou bases de liens [ndt. linkbases]].

3 Le traitement et la conformité XLink

Cette section précise les obligations de traitement et de conformité pour les applications et le balisage XLink.

[Définition : Les mots-clés « doi(ven)t », « ne doi(ven)t pas », « requis », « devra », « ne devra pas », « devrai(en)t », « ne devrai(en)t pas », « recommandé », « peu(ven)t » et « optionnel » dans cette spécification doivent s'interpréter selon le document [IETF RFC 2119]].

3.1 Le traitement des dépendances

Le traitement de XLink s'appuie sur [XML], [XML Names], [XML Base] et [IETF RFC 2396] (tel que mis à jour par [IETF RFC 2732]).

3.2 La conformité du balisage

Un élément XHTML est conforme à XLink :

  1. s'il a un attribut type issu de l'espace de nommage XLink dont la valeur est l'une parmi "simple", "extended", "locator", "arc", "resource", "title" ou "none", and

  2. et s'il adhère aux contraintes de conformité imposées par le type de l'élément XLink choisi, telles qu'elles sont décrites dans cette spécification.

Cette spécification n'impose aucune contrainte particulière sur les DTD ; la conformité ne concerne que les éléments et les attributs.

3.3 La conformité des applications

Une application XLink désigne tout module logiciel interprétant les documents XHTML bien-formés qui contiennent des éléments et attributs XLink, ou des ensembles d'information XHTML [XIS] qui contiennent des items et des propriétés d'information correspondant aux éléments et attributs XLink. (Ce document se réfère à des éléments et attributs, mais toutes les spécifications qu'il contient s'appliquent aussi bien à leurs équivalents dans l'ensemble d'information). Une telle application est conforme :

  1. si elle observe les conditions obligatoires pour les applications (« doivent ») qui sont définies dans cette spécification ;

  2. et si, pour toutes les conditions optionnelles (« devrait » et « peut ») qu'elle choisirait d'observer, elle les observe de la façon prescrite ;

  3. et si elle effectue les tests de conformité du balisage en fonction de toutes les contraintes de conformité qui apparaissent dans cette spécification.

4 La conception du balisage XLink

Cette section décrit la conception du vocabulaire de balisage de XLink.

Le balisage des liens doit être reconnu de manière fiable par les applications XLink afin que ceux-ci soient traversés et pris en charge correctement. XLink emploie le mécanisme décrit dans la recommandation des espaces de nommage XHTML [XML Names] pour la reconnaissance des structures dans le vocabulaire XLink.

L'espace de nommage XLink défini par cette spécification a l'URI suivant :

http://www.w3.org/1999/xlink

Comme indiqué par [XML Names], l'utilisation des éléments et attributs XLink requiert la déclaration de l'espace de nommage XLink. Par exemple, la déclaration suivante permettraient l'usage du préfixe xlink au sein de l'élément « monElement » pour représenter l'espace de nommage XLink :

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

Remarque :

La plupart des exemples de code dans cette spécification ne font pas apparaître de déclaration d'espace de nommage XLink. On utilise tout du long le préfixe xlink qui tient lieu de déclaration de l'espace de nommage XLink sur l'élément dans la portée duquel l'attribut marqué de la sorte apparaît (sur le même élément qui porte l'attribut ou sur un certain élément ancêtre), que la déclaration d'espace de nommage XLink soit présente ou non dans l'exemple.

L'espace de nommage XLink dispose d'attributs globaux à utiliser sur les éléments qui se trouvent dans un espace de nommage arbitraire. Les attributs globaux sont type, href, role, arcrole, title, show, actuate, label, from et to. Les auteurs des documents utilisent les attributs globaux XLink pour faire que les éléments, dans leur propre espace de nommage ou même dans un espace de nommage qu'ils ne contrôlent pas, soient reconnaissables en tant qu'éléments XLink. L'attribut type indique le type de l'élément XLink ("simple", "extended", "locator", "arc", "resource" ou "title") ; le type de l'élément dicte les contraintes imposées par XLink que l'élément doit respecter ainsi que le comportement des applications XLink amnées à rencontrer l'élément.

Voici un exemple avec un élément « renvoi », issu d'un espace de nommage non-XLink, ayant des attributs globaux XLink :

<mon:renvoi
  xmlns:mon="http://exemple.com/"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xlink:type="simple"
  xlink:href="etudiants.xml"
  xlink:role="http://www.exemple.com/props_lien/liste_etudiants"
  xlink:title="Liste des étudiants"
  xlink:show="new"
  xlink:actuate="onRequest">
Liste courante des étudiants
</mon:renvoi>

L'utilisation d'attributs globaux requiert toujours l'emploi d'un préfixe d'espace de nommage sur les attributs individuels et l'emploi de l'attribut type sur l'élément.

4.1 Les configurations d'utilisation des attributs XLink

Alors que les attributs XLink sont considérés globaux en vertu de leur utilisation du mécanisme de l'espace de nommage, leurs combinaisons admises sur un élément XLink dépendent essentiellement de l'attribut spécial type (voir « 5.3 L'attribut de type de l'élément XLink (type) » pour plus d'informations) de l'éléments sur lequel elles apparaissent. Les remarques sur les contraintes de conformité dans cette spécification précisent leurs configurations d'utilisation admises. Voici un résumé des types d'élément (colonnes) sur lesquels les attributs globaux (rangées) sont admis, indiquant si une valeur est requise (R) ou optionnelle (O) :

simpleextendedlocatorarcresourcetitle
typeR RRRRR
href O R
role OOOO
arcrole OO
title OOOOO
show OO
actuate OO
label OO
from O
to O

(Voir également « B Exemple de DTD » pour un DTD non-normatif qui illustre les configurations d'attributs admises).

Cette spécification emploie la convention « élément de type xxx » pour se référer aux éléments qui doivent adhérer à l'ensemble de contraintes nommé associé à un élément XLink, qu'importe le nom réel de l'élément. Par exemple, un « élément de type locator » se rapporterait à tous les éléments suivants :

<locator xlink:type="locator" ... />
<loc xlink:type="locator" ... />
<my:pointer xlink:type="locator" ... />

4.2 Les relations entre les types d'élément XLink

Les divers types d'élément XLink prennent une signification particulière, qui est dictée par cette spécification, quand ils apparaissent comme enfants directs d'autres types d'éléments XLink. Voici un résumé des types d'élément enfant qui jouent un rôle significatif pour un type d'élément parent donné. (Les autres combinaisons n'ont pas de signification pour XLink).

Type du parentTypes enfants significatifs
simplenone
extendedlocator, arc, resource, title
locatortitle
arctitle
resourcenone
titlenone

4.3 La valeur par défaut des attributs

L'utilisation de XLink peut impliquer l'emploi d'un grand nombre d'attributs pour la fourniture d'informations de lien importantes. Au cas où les valeurs des attributs XLink désirés resteraient inchangées entre les instances individuelles dans tous les documents d'un certain type, les valeurs par défaut des attributs (fixes ou non) peuvent être ajoutée à un DTD, de sorte que les attributs n'aient pas besoin d'apparaître dans les balises ouvrantes des éléments. Par exemple, si des valeurs par défaut étaient fournies pour les attributs xmlns:xlink, xmlns:my, type, show, et actuate dans l'exemple en introduction de « 4 La conception du balisage XLink », celui-ci deviendrait comme suit :

<mon:renvoi
  xlink:href="etudiants.xml"
  xlink:role="http://www.exemple.com/props_lien/liste_etudiants"
  xlink:title="Liste des étudiants">
Liste courante des étudiants
</mon:renvoi>

Les ensembles d'information, créés sous le contrôle d'un DTD, ont toutes les valeurs des attributs qui y sont insérées.

4.4 L'intégration de l'utilisation de XLink à un autre balisage

Cette spécification ne définit les attributs et valeurs d'attribut que dans l'espace de nommage XLink. Il n'y a aucune restriction à utiliser des attributs non-XLink en même temps que des attributs XLink. En outre, la plupart des attributs XLink sont optionnels et le choix d'un lien simple ou d'un lien étendu est laissé au concepteur du balisage ou au créateur du document, de sorte qu'un DTD, utilisant les fonctionnalités de XLink, n'a pas besoin d'utiliser ou de déclarer le jeu entier des attributs XLink. Finalement, alors que cette spécification identifie les contraintes minimum sur le balisage XLink, les DTD utilisant XLink sont libres de resserrer ces contraintes. L'utilisation de XLink n'absout pas un document valide de se conformer aux contraintes exprimées dans le DTD qui le dirige.

Voici un exemple avec un élément « renvoi » ayant à la fois des attributs XLink et non-XLink :

<mon:renvoi
  xmlns:mon="http://exemple.com/"
  mon:miseAjour="2000-06-10"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xlink:type="simple"
  xlink:href="etudiants.xml">
Liste courante des étudiants
</mon:renvoi>

4.5 L'utilisation de XLink avec les balisages existants

Comme les attributs globaux XLink requièrent l'utilisation de préfixes d'espace de nommage, les liens non-XLink dans les documents existants ne font en général pas office de structures XLink conformes tels quels, même si on utilise une valeur d'attribut par défaut. Par exemple, XHTML dispose d'un élément a avec un attribut href, mais comme l'attribut est local et attaché à l'élément a dans l'espace de nommage XHTML, il ne s'agit pas du même attribut global xlink:href dans l'espace de nommage XLink.

5 Les éléments et attributs de XLink

XLink offre deux sortes de liens :

Les liens étendus

Les liens étendus apportent toutes les fonctionnalités XLink, tels que les arcs entrants et tiers, ainsi que des liens ayant un nombre arbitraire de ressources participantes. En conséquence, leur structure peut être très complexe, comprenant les éléments qui désignent des ressources distantes, les éléments qui contiennent des ressources locales, les éléments qui spécifient les règles de traversée des arcs et les éléments qui spécifient des ressources lisibles par un humain et les titres des arcs.

XLink définit un moyen pour donner au lien étendu une sémantique spéciale pour trouver les bases de liens ; utilisé de cette façon, le lien étendu aide l'application XLink dans le traitement d'autres liens.

Les liens simples

Les liens simples offrent une syntaxe raccourcie pour une sorte de lien commune, un lien sortant dans lequel participent exactement deux ressources (catégorie dans laquelle se rangent les liens de style HTML A et IMG). Comme les liens simples offrent moins de fonctionnalités que les liens étendus, ils n'ont pas de structure interne.

Bien que les liens simples forment conceptuellement un sous-ensemble des liens étendus, leur syntaxe est différente. Par exemple, pour convertir un lien simple en lien étendu, plusieurs changements structuraux seraient nécessaires.

Les sections suivantes définissent les éléments et attributs XLink.

5.1 Les liens étendus (élément de type extended)

[Définition : Un lien étendu est un lien qui associe un nombre arbitraire de ressources. Les ressources participantes peuvent être représentées par toute combinaison de ressources distantes et locales].

La seule sorte de lien capable d'avoir des arcs entrants et tiers est le lien étendu. Habituellement, les éléments de liaison étendue sont stockés séparément des ressources qu'ils associent (par exemple, dans des documents entièrement distincts). Ainsi, les liens étendus sont importants pour les situations dans lesquelles les ressources participantes sont en lecture seule, ou dans lesquelles il est coûteux de les modifier et de les mettre à jour mais économique de modifier et mettre à jour un élément de liaison séparé, ou dans lesquelles encore les ressources sont dans des formats sans une gestion native des liens incorporés (comme dans nombre de formats multimédias).

Le diagramme suivant montre un lien étendu qui associe cinq ressources distantes. Il pourrait s'agir, par exemple, d'informations concernant la charge de cours d'un étudiant : une ressource décrivant l'étudiant, une autre décrivant le conseiller universitaire de l'étudiant, deux ressources représentant les cours auxquels l'étudiant assiste et la dernière un cours en auditeur libre.

Diagramme stylisé d'un lien étendu hors-ligne

Sans le lien étendu, les ressources pourraient être entièrement dissociées ; par exemple, elles pourraient se trouver dans cinq documents séparés. Les lignes émanant du lien étendu représentent les associations que celui-ci crée entre les ressources. Cependant, notez que les lignes n'ont pas de directionnalité. La directionnalité est exprimée par des règles de traversée ; sans ces règles, les ressources sont associées dans n'importe quel ordre, sans implication sur l'accès ou non aux ressources individuelles ni sur la manière dont on y a accès.

Le diagramme suivant montre un lien étendu qui associe cinq ressources distantes et une ressource locale (un élément spécial au sein de l'élément de lien étendu). Il pourrait s'agir du même exemple de charge de cours décrit précédemment, auquel s'ajoute la note moyenne de l'étudiant stockée localement. Encore une fois, les lignes représentent la simple association des six ressources, sans que les directions des traversées ni les comportements ne soient impliqués.

Diagramme stylisé d'un lien étendu en-ligne

Le type d'élément XLink des liens étendus peut être tout élément ayant un attribut dans l'espace de nommage XLink nommé type avec la valeur "extended".

L'élément de type extended peut contenir un mélange des éléments suivants, dans n'importe quel ordre, accompagnant éventuellement d'autres contenus et balisages :

  • les éléments de type locator qui adressent les ressources distantes participant au lien ;

  • les éléments de type arc qui fournissent les règles de traversée entre les ressources participant au lien ;

  • les éléments de type title qui fournissent les labels, lisibles par un humain, pour le lien ;

  • les éléments de type resource qui fournissent les ressources locales partipant au lien.

Il n'est pas erroné pour un élément de type extended d'associer moins de deux ressources. Si le lien n'a qu'une seule ressource participante, ou pas du tout, on ne peut simplement pas le traverser. Un tel lien peut toujours trouver une utilité, par exemple, pour associer des propriétés à une seule ressource au moyen des attributs XLink, ou pour fournir un paramètre fictif [ndt. placeholder], qui pourra être éventuellement peuplé par des informations de lien.

Les sous-éléments des types simple ou extended, n'importe où dans un élément parent de type extended, n'ont aucune signification pour XLink. Les sous-éléments des types locator, arc ou resource, qui ne sont pas les enfants directs d'un élément de type extended, n'ont pas non plus de signification pour XLink.

L'élément de type extended peut avoir les attributs sémantiques role et title (voir « 5.5 Les attributs sémantiques (role, arcrole et title) »). Ceux-ci apportent une information sémantique concernant le lien en tant que tout ; l'attribut role indique une propriété que possède le lien en entier, et l'attribut title indique une description, lisible par un humain, du lien en entier. Si d'autres attributs XLink sont présents sur l'élément, ils n'ont aucun rapport avec le lien pour XLink. Si un attribut title et un ou plusieurs éléments de type title sont à la fois présents, ils n'ont aucun rapport pour XLink ; auquel cas une application de plus haut niveau bâtie sur XLink spécifiera vraisemblablement un traitement approprié (par exemple, la priorité).

Exemple : Déclarations et instances d'un élément de type extended

Voici l'ensemble non-normatif des déclarations d'un élément de type extended et de ses sous-éléments. Des parties de cet exemple seront réutilisées au long de cette spécification. Remarquez que l'attribut type et certains autres attributs ont des valeurs par défaut définies dans le DTD, afin de mettre en évidence les attributs qui changent d'une instance à l'autre.

<!ELEMENT chargedecours ((infobulle|personne|cours|mg|go)*)>
<!ATTLIST chargedecours
  xmlns:xlink     CDATA           #FIXED "http://www.w3.org/1999/xlink"
  xlink:type      (extended)      #FIXED "extended"
  xlink:role      CDATA           #IMPLIED
  xlink:title     CDATA           #IMPLIED>

<!ELEMENT infobulle ANY>
<!ATTLIST infobulle
  xlink:type      (title)         #FIXED "title"
  xml:lang        CDATA           #IMPLIED>

<!ELEMENT personne EMPTY>
<!ATTLIST personne
  xlink:type      (locator)       #FIXED "locator"
  xlink:href      CDATA           #REQUIRED
  xlink:role      CDATA           #IMPLIED
  xlink:title     CDATA           #IMPLIED
  xlink:label     NMTOKEN         #IMPLIED>

<!ELEMENT cours EMPTY>
<!ATTLIST cours
  xlink:type      (locator)       #FIXED "locator"
  xlink:href      CDATA           #REQUIRED
  xlink:role      CDATA           #FIXED "http://www.exemple.com/props_lien/cours"
  xlink:title     CDATA           #IMPLIED
  xlink:label     NMTOKEN         #IMPLIED>

<!-- mg = "moyenne générale" -->
<!ELEMENT mg ANY>
<!ATTLIST mg
  xlink:type      (resource)      #FIXED "resource"
  xlink:role      CDATA           #FIXED "http://www.exemple.com/props_lien/mg"
  xlink:title     CDATA           #IMPLIED
  xlink:label     NMTOKEN         #IMPLIED>

<!ELEMENT go EMPTY>
<!ATTLIST go
  xlink:type      (arc)           #FIXED "arc"
  xlink:arcrole   CDATA           #IMPLIED
  xlink:title     CDATA           #IMPLIED
  xlink:show      (new
                  |replace
                  |embed
                  |other
                  |none)          #IMPLIED
  xlink:actuate   (onLoad
                  |onRequest
                  |other
                  |none)          #IMPLIED
  xlink:from      NMTOKEN         #IMPLIED
  xlink:to        NMTOKEN         #IMPLIED>

Voici ensuite à quoi les éléments XHTML utilisant ces déclarations pourraient ressembler.

<chargedecours>

  <infobulle>Charge de cours pour Pat Jones</infobulle>

  <personne
    xlink:href="etudiants/patjones62.xml"
    xlink:label="etudiant62"
    xlink:role="http://www.exemple.com/props_lien/etudiant"
    xlink:title="Pat Jones" />

  <personne
    xlink:href="profs/jaysmith7.xml"
    xlink:label="prof7"
    xlink:role="http://www.exemple.com/props_lien/professeur"
    xlink:title="Dr. Jay Smith" />
  <!-- autres ressources distantes pour les professeurs, assistants de cours, etc. -->

  <cours
    xlink:href="cours/cs101.xml"
    xlink:label="SI-101"
    xlink:title="Sciences Informatiques 101" />
  <!-- autres ressources distantes pour les cours, séminaires, etc. -->

  <mg xlink:label="PatJonesMG">3.5</mg>

  <go
    xlink:from="etudiant62"
    xlink:to="PatJonesMG"
    xlink:show="new"
    xlink:actuate="onRequest"
    xlink:title="Moyenne générale de Pat Jones" />
  <go
    xlink:from="SI-101"
    xlink:arcrole="http://www.exemple.com/props_lien/auditeur"
    xlink:to="etudiant62"
    xlink:show="replace"
    xlink:actuate="onRequest"
    xlink:title="Pat Jones, assistant en auditeur libre" />
  <go
    xlink:from="etudiant62"
    xlink:arcrole="http://www.exemple.com/props_lien/conseiller"
    xlink:to="prof7"
    xlink:show="replace"
    xlink:actuate="onRequest"
    xlink:title="Dr. Jay Smith, conseiller" />

</chargedecours>

5.1.1 Les ressources locales du lien étendu (élément de type resource)

Le lien étendu désigne ses ressources locales participantes par le biais de sous-éléments spéciaux qui apparaissent au sein du lien étendu. Le sous-élément entier, avec tout ce qu'il contient, forme la ressource locale.

L'élément XLink pour une ressource locale est constitué par tout élément ayant un attribut type dans l'espace de nommage XLink avec la valeur "resource".

L'élément de type resource peut avoir n'importe quel contenu ; quel que soit ce contenu, il n'a aucune relation spécifiée par XLink avec le lien. Un élément de type resource peut n'avoir aucun contenu ; au cas où cet élément sert de ressource de départ, dont on attend qu'elle soit traversée à la demande, les applications XLink interactives généreront habituellement un certain contenu afin de donner à l'utilisateur un moyen d'initier la traversée. Si l'élément de type resource a tout autre chose qu'un élément de type extended comme parent, alors cet élément n'a aucune signification pour XLink.

L'élément de type resource peut avoir les attributs sémantiques role et title (voir « 5.5 Les attributs sémantiques (role, arcrole et title) » et l'attribut de traversée label (voir « 5.7 Les attributs de traversée (label, from et to)) ». Les attributs sémantiques livrent les informations concernant la ressource en termes génériques, hors du contexte de l'arc particulier qui mène à celle-ci ; l'attribut role indique une propriété de la ressource et l'attribut title indique une description de la ressource, lisible par un humain. L'attribut label fournit à un élément de type arc un moyen pour se référer à cette ressource dans la création d'un arc de traversée.

Exemple : Déclarations et instances d'un élément de type resource

Voici l'ensemble non-normatif des déclarations d'un élément de type resource.

<!ELEMENT mg ANY>
<!ATTLIST mg
  xlink:type      (resource)      #FIXED "resource"
  xlink:role      CDATA           #FIXED "http://www.exemple.com/props_lien/mg"
  xlink:title     CDATA           #IMPLIED
  xlink:label     NMTOKEN         #IMPLIED>

Voici ensuite à quoi l'élément XHTML utilisant ces déclarations pourrait ressembler.

  <mg xlink:label="PatJonesMG">3.5</gpa>

5.1.2 Les ressources distantes du lien étendu (élément de type locator)

Le lien étendu indique les ressources distantes participant au lien par le biais d'éléments localisateurs.

L'élément XLink pour un localisateur est constitué par tout élément ayant un attribut type dans l'espace de nommage XLink avec la valeur "locator".

L'élément de type locator peut avoir n'importe quel contenu. Mis à part les éléments de type title qui en sont des enfants directs (voir « 5.1.4 Les titres des liens étendus, des localisateurs et des arcs (élément de type title) »), le contenu présent, quel qu'il soit, n'a aucune relation avec le lien pour XLink. Si l'élément de type locator contient des éléments XLink imbriqués, ces éléments contenus n'ont aucune relation avec leur parent pour XLink. Si l'élément de type locator a tout autre chose qu'un élément de type extended comme parent, alors cet élément de type locator n'a aucune signification pour XLink.

Contrainte : Les attributs sur l'élément localisateur

L'élément de type locator doit avoir l'attribut localisateur (voir « 5.4 L'attribut localisateur (href) »). L'attribut localisateur (href) doit avoir reçu une valeur.

L'élément de type locator peut avoir les attributs sémantiques role et title (voir « 5.5 Les attributs sémantiques (role, arcrole et title) » et l'attribut de traversée label (voir « 5.7 Les attributs de traversée (label, from et to)) ». L'attribut localisateur fournit une référence d'URI qui identifie une ressource distante. Les attributs sémantiques livrent des informations concernant la ressource en termes génériques, hors du contexte de l'arc particulier qui mène à celle-ci ; l'attribut role indique une propriété de la ressource et l'attribut title indique une description de la ressource, lisible par un humain. L'attribut label fournit à un élément de type arc un moyen pour se référer à cette ressource dans la création d'un arc de traversée.

Remarque :

L'élément de type locator ne constitue pas en lui-même un lien simplement parce qu'il a un attribut localisateur (href) ; à la différence d'un élément de type simple, il ne crée aucune association qui soit régie par XLink entre lui-même et la ressource référencée.

Exemple : Déclarations et instances d'un élément de type locator

Voici un ensemble non-normatif de déclarations pour un élément de type locator.

<!ELEMENT personne EMPTY>
<!ATTLIST personne
  xlink:type      (locator)       #FIXED "locator"
  xlink:href      CDATA           #REQUIRED
  xlink:role      CDATA           #IMPLIED
  xlink:title     CDATA           #IMPLIED
  xlink:label     NMTOKEN         #IMPLIED>

<!ELEMENT cours EMPTY>
<!ATTLIST cours
  xlink:type      (locator)       #FIXED "locator"
  xlink:href      CDATA           #REQUIRED
  xlink:role      CDATA           #FIXED "http://www.exemple.com/props_lien/cours"
  xlink:title     CDATA           #IMPLIED
  xlink:label     NMTOKEN         #IMPLIED>

Voici ensuite à quoi pourraient ressembler les éléments XHTML utilisant ces déclarations.

<personne
  xlink:href="etudiants/patjones62.xml"
  xlink:label="etudiant62"
  xlink:role="http://www.exemple.com/props_lien/etudiant"
xlink:title="Pat Jones" />

<personne
  xlink:href="profs/jaysmith7.xml"
  xlink:label="prof7"
  xlink:role="http://www.exemple.com/props_lien/professeur"
  xlink:title="Dr. Jay Smith" />

<cours
  xlink:href="cours/cs101.xml"
  xlink:label="SI-101"
  xlink:title="Sciences Informatiques 101" />

5.1.3 Les règles de traversée du lien étendu (élément de type arc)

Le lien étendu peut indiquer les règles de traversée entre ses ressources participantes par le biais d'une collection d'éléments arcs optionnels.

L'élément XLink pour un arc est constitué par tout élément ayant un attribut type dans l'espace de nommage XLink avec la valeur "arc".

L'élément de type arc peut avoir n'importe quel contenu. Mis à part les éléments de type title qui en sont des enfants directs (voir « 5.1.4 Les titres des liens étendus, des localisateurs et des arcs (élément de type title) »), le contenu présent, quel qu'il soit, n'a aucune relation avec le lien pour XLink. Si un élément de type arc a tout autre chose qu'un élément de type extended comme parent, alors cet élément de type arc n'a aucune signification pour XLink.

L'élément de type arc peut avoir les attributs de traversée from et to (voir « 5.7 Les attributs de traversée (label, from et to)) », les attributs de comportement show et actuate (voir « 5.6 Les attributs de comportement (show et actuate) ») et les attributs sémantiques arcrole et title (voir « 5.5 Les attributs sémantiques (role, arcrole et title) ».

Les attributs de traversée définissent le cheminement désiré entre les couples de ressources qui participent au même lien, dans lesquels les ressources sont identifiées par la valeur de leur attribut label. L'attribut from définit les ressources à partir desquelles la traversée peut être initiée, c'est-à-dire les ressources de départ, alors que l'attribut to définit les ressources vers lesquelles la traversée peut avoir lieu, c'est-à-dire les ressources d'arrivée. Les attributs de comportement spécifient le comportement désiré pour les applications XLink lors de la traversée vers la ressource d'arrivée.

Les attributs sémantiques décrivent la signification de la ressource d'arrivée de l'arc par rapport à sa ressource de départ. L'attribut arcrole correspond à la notion de propriété de [RDF], dans laquelle on peut interpréter le rôle comme déclarant « ressource-de-départ POSSÈDE rôle-de-l'arc ressource-d'arrivée ». Ce rôle contextuel peut différer de la signification d'une ressource d'arrivée quand celle-ci est considérée hors du contexte de cet arc particulier. Par exemple, une ressource pourrait représenter de manière générique une « personne », mais dans le contexte d'un arc particulier elle pourrait avoir le rôle de « mère » et dans le contexte d'un autre arc le rôle de « fille ».

Quand la même ressource fait office de ressource de départ dans plusieurs arcs (que ce soit pour un seul lien ou bien pour de nombreux liens), le comportement de la requête de traversée n'est pas contraint par cette spécification, mais les applications interactives ont le loisir de produire un menu local [ndt. pop-up menu] qui liste les arcs ou les titres des liens concernés.

Le diagramme suivant montre un lien étendu qui associe cinq ressources distantes et fournit les règles pour la traversée entre celles-ci. Tous les arcs spécifiés sont des arcs tiers ; c'est-à-dire, les arcs interviennent exclusivement entre des ressources distantes. Les lignes non-directionnelles en trait plein indiquent, comme auparavant, que le lien associe les cinq ressources ; les nouvelles flèches en pointillés indiquent les règles de traversée fournies par le lien. Notez que certaines ressources partagent la même valeur pour l'attribut label.

Diagramme stylisé d'un lien étendu hors-ligne avec des arcs

Ce diagramme reflète les arcs de traversée directionnels créés par le paramétrage suivant, selon lequel les « A » comme le « C » sont autorisés à initier une traversée vers tous les « B ». Comme certains arcs apparaissent sur plusieurs ressources, chaque spécification d'arc crée immédiatement plusieurs arcs de traversée potentiels :

<go xlink:type="arc" xlink:from="A" xlink:to="B" />
<go xlink:type="arc" xlink:from="C" xlink:to="B" />

Comme autre exemple, supposons un lien étendu contenant cinq localisateurs dont, pour l'attribut label, deux ont la valeur "parent" et trois la valeur "enfant" :

<lienEtendu xlink:type="extended">
  <loc xlink:type="locator" xlink:href="..." xlink:label="parent" xlink:title="p1" />
  <loc xlink:type="locator" xlink:href="..." xlink:label="parent" xlink:title="p2" />
  <loc xlink:type="locator" xlink:href="..." xlink:label="enfant"  xlink:title="e1" />
  <loc xlink:type="locator" xlink:href="..." xlink:label="enfant"  xlink:title="e2" />
  <loc xlink:type="locator" xlink:href="..." xlink:label="enfant"  xlink:title="e3" />
... <!-- les éléments de type arc viennent ici -->
</lienEtendu>

La déclaration suivante spécifie la traversée à partir des ressources parentes vers les ressources enfants, ce qui comprend toutes celles parmi p1-e1, p1-e2, p1-e3, p2-e1, p2-e2 et p2-e3:

<go xlink:type="arc" xlink:from="parent" xlink:to="enfant" />

Si aucune valeur n'est donnée aux attributs from ou to, la valeur manquante est censée signifier tous les labels placés sur les éléments de type locator contenu par l'élément de type extended concerné. Par exemple, ce qui suit spécifie les traversées partant des parents vers les enfants et aussi partant des enfants vers les enfants, ce qui comprend toutes celles parmi p1-e1, p1-e2, p1-e3, p2-e1, p2-e2, p2-e3, e1-e1, e1-e2, e1-e3, e2-e1, e2-e2, e2-e3, e3-e1, e3-e2 et e3-e3 :

<go xlink:type="arc" xlink:to="enfant" />

Dans ce cas, remarquez que les règles de traversée comprennent les arcs partant de certaines ressources vers d'autres ressources ayant le même label (d'enfants vers d'autres enfants), ainsi que partant de certaines ressources vers elles-mêmes (d'un enfant vers lui-même) ; il ne s'agit pas d'une erreur.

Si aucun élément de type arc n'est présent dans le lien étendu, alors, par extension, les valeurs manquantes des attributs from et to sont interprétées comme représentant tous les labels dans ce lien. Cela équivaudrait à la spécification de traversée suivante :

<go xlink:type="arc" />

Quand plusieurs localisateurs ont le même label, le jeu des localisateurs avec ce même label doivent être compris comme des localisateurs individuels, plutôt que comme se référant à une ressource composée ; le comportement de traversée d'un tel lien pourrait être le même que celui d'un lien dans lequel tous les localisateurs ont des rôles différents et les arcs concernés sont spécifiés pour produire les couples de traversée identiques.

Si les règles de traversée des arcs d'un lien étendu laissent de côté des couples de traversée possibles, alors XLink ne définit pas de traversée pour ces couples. Une application de plus haut niveau peut effectuer des traversées qui ne soient pas dirigées par XLink ; par exemple, un processus de vérification des liens pourrait traverser tous les couples de ressources disponibles.

Contrainte : Pas de duplication des arcs

Chaque élément de type arc doit posséder un couple de valeurs from et to qui ne répète pas les valeurs from et to (respectivement) d'un quelconque élément arc dans le même lien étendu ; c'est-à-dire, chaque couple du lien doit être unique.

Exemple : Déclarations et instances d'un élément arc

Voici l'ensemble non-normatif des déclarations d'un élément de type arc.

<!ELEMENT go EMPTY>
<!ATTLIST go
  xlink:type      (arc)           #FIXED "arc"
  xlink:arcrole   CDATA           #IMPLIED
  xlink:title     CDATA           #IMPLIED
  xlink:show      (new
                  |replace
                  |embed
                  |other
                  |none)          #IMPLIED
  xlink:actuate   (onLoad
                  |onRequest
                  |other
                  |none)          #IMPLIED
  xlink:from      NMTOKEN         #IMPLIED
  xlink:to        NMTOKEN         #IMPLIED>

Voici ensuite à quoi pourrait ressembler les éléments XHTML utilisant ces déclarations.

<go
  xlink:from="etudiant62"
  xlink:to="PatJonesMG"
  xlink:show="new"
  xlink:actuate="onRequest"
  xlink:title="Moyenne générale de Pat Jones" />
<go
  xlink:from="SI-101"
  xlink:arcrole="http://www.exemple.com/props_lien/auditeur"
  xlink:to="etudiant62"
  xlink:show="replace"
  xlink:actuate="onRequest"
  xlink:title="Pat Jones, assistant en auditeur libre" />
<go
  xlink:from="etudiant62"
  xlink:arcrole="http://www.exemple.com/props_lien/conseiller"
  xlink:to="prof7"
  xlink:show="replace"
  xlink:actuate="onRequest"
  xlink:title="Dr. Jay Smith, conseiller" />

5.1.4 Les titres des liens étendus, des localisateurs et des arcs (élément de type title)

Les éléments de type extended, locator et arc peuvent avoir l'attribut title (pour des précisions, voir « 5.5 Les attributs sémantiques (role, arcrole et title) »). Cependant, ceux-ci peuvent également avoir une collection d'un ou plusieurs éléments de type title. Ces éléments sont utiles, par exemple, pour les cas où les informations des labels, lisibles par un humain, nécessitent un balisage en élément supplémentaire, ou quand plusieurs titres sont nécessaires. Une motivation commune pour l'utilisation de l'élément de type title est la prise en compte de l'internationalisation et de la localisation. Par exemple, un balisage du titre pourrait être nécessaire dans des contextes bi-directionnels ou dans les langues d'Asie de l'Est, et plusieurs titres pourraient être nécessaires pour les différentes versions des langues d'un titre.

L'élément XLink pour un titre est constitué par tout élément ayant un attribut type dans l'espace de nommage XLink avec la valeur "title".

L'élément de type title peut avoir n'importe quel contenu. Si un élément de type title contient des éléments XLink imbriqués, ces éléments contenus n'ont aucune relation pour XLink avec le lien parent contenant le titre. Si un élément de type title a autre chose que des éléments de type extended, locator ou arc comme parent, alors l'élément de type title n'a aucune signification pour XLink.

Exemple : Déclarations et instances d'un élément de type title

Voici l'ensemble non-normatif des déclarations d'un élément de type title. L'élément possède un attribut xml:lang, qui peut s'utiliser en conjonction avec le paramétrage d'un serveur, ou toute information contextuelle, pour la détermination du titre à présenter.

<!ELEMENT nomconseiller (name)>
<!ATTLIST nomconseiller
  xlink:type      (title)         #FIXED "title"
  xml:lang        CDATA           #IMPLIED>

<!ELEMENT nom (honorifique?, prenom, famille)>
<!-- D'autres déclarations pour les noms -->

Voici ensuite à quoi pourrait ressembler les éléments XHTML utilisant ces déclarations.

<conseiller xlink:href="profs/jaysmith7.xml" ...>
  <nomconseiller xml:lang="en">
    <nom>
      <honorifique>Dr.</honorifique>
      <prenom>Jay</prenom>
      <famille>Smith</famille>
    </nom>
  </nomconseiller>
</conseiller>

5.1.5 La localisation des bases de liens (rôle particulier de l'arc)

Pour qu'une application XLink puisse traverser d'une ressource de départ vers une ressource d'arrivée, elle a besoin de localiser à la fois la ressource de départ et le lien. La localisation des deux morceaux ne pose aucun problème dans le cas d'un arc sortant parce que la ressource de départ est soit l'élément de liaison lui-même, soit un enfant de l'élément de liaison. Par contre, dans les cas des arcs entrants et tiers, l'application XLink doit pouvoir trouver les deux morceaux d'une manière ou d'une autre.

Dans l'exemple avec la charge de cours, les liens étendus peuvent associer des couples de ressources distantes représentant des étudiants et des cours. Afin que le système puisse charger et présenter une « ressource étudiant » (telles qu'une description et une photo de cette personne), de manière à offrir une traversée vers une information relative (par exemple, en permettant à l'utilisateur de cliquer sur le nom de l'étudiant pour traverser vers les informations concernant les cours auxquels l'étudiant est inscrit), ce système a besoin de localiser et d'utiliser les liens étendus contenant l'association.

Les bases de liens sont souvent employées pour faciliter la gestion des liens, en rassemblant un certain nombre d'éléments de liaison relatifs. XLink fournit un moyen d'instruire les applications XLink pour qu'elles accèdent aux bases de liens potentiellement pertinentes. Cette instruction prend la forme de la spécification d'un arc (que ce soit un arc explicite dans un lien étendu, ou bien un arc implicite dans un lien simple) dont l'attribut arcrole a la valeur suivante :

http://www.w3.org/1999/xlink/properties/linkbase

Contrainte : Les bases de liens doivent être au format XHTML

Toute base de liens, spécifiée comme ressource d'arrivée d'un arc avec cette valeur spéciale, doit être un document XHTML.

(Les applications XLink peuvent également utiliser d'autres moyens pour localiser et traiter les bases de liens supplémentaires).

La gestion d'un arc de base de liens est très semblable à la gestion d'un arc normal, mis à part le fait que la traversée impose le chargement de la ressource d'arrivée (la base de liens) afin d'en extraire les liens pour une utilisation ultérieure plutôt que de la présenter à l'utilisateur ou d'y effectuer un quelconque traitement. Sa gestion est également particulière dans la mesure où les applications XLink doivent interrompre la traversée des arcs de base de liens sur demande de l'utilisateur.

Plus spécifiquement, lors du chargement d'un arc de base de liens, l'application XLink devrait conserver une trace de la nature de la ressource de départ. Toutes les fois où le document contenant cette ressource de départ est chargé et la traversée de la base de liens est mise en fonction, l'application devrait accéder à la base de liens et extraire tous les liens étendus qui s'y trouvent. Au cas où la ressource extraite est une portion de document XHTML complet, telles qu'une étendue ou étendue de chaîne [ndt. range or string range], seuls ceux des liens étendus qui sont entièrement contenus dans la portion extraite devraient être rendus disponibles.

La synchronisation [ndt. timing] de la traversée de l'arc de base de liens dépend de la valeur de l'attribut actuate sur l'arc. Par exemple, si la valeur est "onLoad", alors la base de liens est chargée et les liens en sont extraits dès que la ressource de départ a été chargée. Toute valeur de l'attribut show sur un arc de base de liens doit être ignorée, car la traversée n'entraîne pas de présentation dans ce cas.

Les bases de liens peuvent s'enchaîner en vertu du fait que chacune d'elles peut constituer la ressource de départ d'une autre base de liens. L'application qui interprète l'arc de base de liens initial peut choisir de limiter le nombre des étapes traitées dans l'enchaînement.

L'application devrait maintenir la liste des liens étendus qui ont été ramenés à la suite du traitement d'une base de liens, et elle ne devrait pas ramener de ressources ou de liens en double au cas où il existerait une dépendance circulaire. Pour faciliter le traitement XLink, les créateurs de document peuvent vouloir définir les arcs de base de liens au début du document.

Exemple : L'annotation d'une spécification

Voici l'ensemble non-normatif des déclarations d'un lien étendu spécialisé dans la fourniture d'arcs de base de liens :

<!ELEMENT baseschargees ((ressourcedepart|basedeliens|charger)*)>
<!ATTLIST baseschargees
  xlink:type      (extended)      #FIXED "extended">

<!ELEMENT ressourcedepart EMPTY>
<!ATTLIST ressourcedepart
  xlink:type      (locator)       #FIXED "locator"
  xlink:href      CDATA           #REQUIRED
  xlink:label     NMTOKEN         #IMPLIED>

<!ELEMENT basedeliens EMPTY>
<!ATTLIST basedeliens
  xlink:type      (locator)       #FIXED "locator"
  xlink:href      CDATA           #REQUIRED
  xlink:label     NMTOKEN         #IMPLIED>

<!ELEMENT charger EMPTY>
<!ATTLIST charger
  xlink:type      (arc)           #FIXED "arc"
  xlink:arcrole   CDATA           #FIXED "http://www.w3.org/1999/xlink/properties/linkbase"
  xlink:actuate   (onLoad
                  |onRequest
                  |other
                  |none)          #IMPLIED
  xlink:from      NMTOKEN         #IMPLIED
  xlink:to        NMTOKEN         #IMPLIED>

Voici ensuite à quoi pourrait ressembler l'élément XHTML utilisant ces déclarations. Ceci indiquerait, quand le document d'une spécification a été chargé, que la base de liens remplies des annotations la concernant devrait automatiquement être chargée en même temps, ce qui peut nécessiter une éventuelle restitution à nouveau du document entier de la spécification pour en révéler toutes les régions qui servent de ressources de départ pour les liens trouvés dans la base de liens.

<baseschargees>
  <ressourcedepart xlink:label="spec" xlink:href="spec.xml" />
  <basedeliens xlink:label="basedeliens" xlink:href="basedeliens.xml" />
  <charger xlink:from="spec" xlink:to="basedeliens" actuate="onLoad" />
</baseschargees>

Voici maintenant à quoi pourrait ressembler l'élément XHTML utilisant ces déclarations, si le chargement de la base de liens était initié à la demande. Cette fois, la ressource de départ est constituée des mots « Cliquez ici pour révéler l'annotation. ». Si la ressource de départ était représentée par le document entier, comme dans l'exemple ci-dessus, un comportement raisonnable pour permettre à l'utilisateur de lancer la traversée serait de produire une boîte de dialogue de confirmation.

<baseschargees>
  <ressourcedepart
    xlink:label="spec"
    xlink:href="spec.xml#string-range(//*,'Cliquez ici pour révéler l'annotation.')" />
  <basedeliens xlink:label="basedeliens" xlink:href="basedeliens.xml" />
  <charger xlink:from="spec" xlink:to="basedeliens" actuate="onRequest" />
</baseschargees>

5.2 Les liens simples (élément de type simple)

[Définition : Le lien simple associe exactement deux ressources, l'une locale et l'autre distante, avec un arc allant de la première vers la dernière. Le lien simple est donc toujours un lien sortant].

La destination d'un lien simple c'est d'être un raccourci commode du lien étendu équivalent. Un seul élément de liaison simple combine les fonctions de base d'un élément de type extended, d'un élément de type locator, d'un élément de type arc et d'un élément de type resource.

Le diagramme suivant montre les caractéristiques du lien simple ; il associe une ressource locale et une ressource distante, et il fournit implicitement un seul arc de traversée à partir de la ressource locale vers la ressource distante. Cela pourrait représenter, par exemple, le nom d'un étudiant apparaissant dans le texte qui, quand il est cliqué, conduit vers des informations le concernant.

Diagramme stylisé d'un lien simple
Exemple : Les fonctionnalités du lien simple reproduites avec un lien étendu

On pourrait représenter un lien simple sous la forme d'un lien étendu de la manière suivante :

<lienetudiant xlink:type="extended">
  <ressource
    xlink:type="resource"
    xlink:label="local">Pat Jones</ressource>
  <localisateur
    xlink:type="locator"
    xlink:href="..."
    xlink:label="distant"
    xlink:role="..."
    xlink:title="..." />

  <go
    xlink:type="arc"
    xlink:from="local"
    xlink:to="distant"
    xlink:arcrole="..."
    xlink:show="..."
    xlink:actuate="..." />
</lienetudiant>

Le lien simple combine toutes les caractéristiques ci-dessus (sauf celles des types et des labels) en un seul élément. Dans les cas où seul ce sous-ensemble de caractéristiques est nécessaire, l'élément de liaison simple XLink est disponible comme alternative à l'élément de liaison étendue. Les caractéristiques qui manquent aux liens simples sont les suivantes :

  • La mise à disposition d'un nombre arbitraire de ressources locales et distantes ;

  • la spécification d'un arc allant de la ressource distante du lien vers la ressource locale ;

  • l'association d'un titre au seul arc rigide [ndt. single hardwired arc] ;

  • l'association d'un rôle ou d'un titre à la ressource locale ;

  • l'association d'un rôle ou d'un titre au lien en tant qu'ensemble.

L'élément XLink de lien simple est constitué par tout élément ayant un attribut type dans l'espace de nommage XLink avec la valeur "simple". Le lien simple équivalant au lien étendu ci-dessus pourrait être le suivant :

<lienetudiant xlink:href="...">Pat Jones</lienetudiant>

L'élément de type simple peut avoir n'importe quel contenu. L'élément de type simple lui-même, en même temps que l'ensemble de son contenu, forme la ressource locale du lien, comme s'il s'agissait d'un élément de type resource. Si un élément de type simple contient des éléments XLink imbriqués, ces éléments contenus n'ont aucune relation, pour XLink, avec le lien parent. Un élément de type simple peut ne pas avoir de contenu ; pour les cas où le lien est censé être traversé à la demande, les applications XLink interactives produiront généralement un contenu de façon à fournir à l'utilisateur un moyen pour initier la traversée.

L'élément de type simple accepte effectivement l'attribut localisateur href et les attributs sémantiques role et title des éléments de type locator, ainsi que les attributs de comportement show et actuate et le seul attribut sémantique arcrole des éléments de type arc.

Il n'est pas erroné que l'attribut localisateur (href) d'un élément de type simple n'ait pas de valeur. Si aucune valeur n'est fournie, alors le lien est tout simplement non-traversable. Un tel lien peut toujours être utile, par exemple, pour associer des propriétés à la ressource par le biais d'attributs XLink.

Exemple : Déclarations et instances d'un élément de type simple

Voici l'ensemble non-normatif des déclarations d'un élément de type simple.

<!ELEMENT lienetudiant ANY>
<!ATTLIST lienetudiant
  xlink:type      (simple)        #FIXED "simple"
  xlink:href      CDATA           #IMPLIED
  xlink:role      NMTOKEN         #FIXED "http://www.exemple.com/props_lien/etudiant"
  xlink:arcrole   CDATA           #IMPLIED
  xlink:title     CDATA           #IMPLIED
  xlink:show      (new
                  |replace
                  |embed
                  |other
                  |none)          #IMPLIED
  xlink:actuate   (onLoad
                  |onRequest
                  |other
                  |none)          #IMPLIED>

Voici ensuite à quoi pourrait ressembler un élément XHTML utilisant ces déclarations.

..., et <lienetudiant xlink:href="etudiants/patjones62.xml">Pat
Jones</lienetudiant> est très connu en dehors du syndicat des étudiants.

5.3 L'attribut de type de l'élément XLink (type)

Le type des éléments XLink est identifié par l'attribut type.

Contrainte : La valeur du type

La valeur de l'attribut type doit être fournie. Cette valeur doit être l'une parmi "simple", "extended", "locator", "arc", "resource", "title" et "none".

Quand la valeur de l'attribut type est "none", l'élément n'a pas de signification pour XLink, et aucun contenu ou attribut ayant à voir avec XLink n'a de relation avec l'élément pour XLink.

Exemple : Déclarations de l'attribut type

Voici la déclaration non-normative de liste d'attributs pour l'attribut type sur un élément censé être de type simple.

<!ATTLIST xlink:simple
  xlink:type      (simple)        #FIXED "simple"
  ...>

Pour un élément qui sert d'élément XLink seulement dans certaines occasions, il pourrait avoir la déclaration suivante, dans laquelle le créateur du document donne la valeur "simple" dans certaines circonstances et "none" dans d'autres. L'utilisation de la valeur "none" peut se révéler utile, en évitant aux applications XLink d'avoir à vérifier la présence d'une valeur sur l'attribut href.

<!ATTLIST nomdecommande
  xlink:type      (simple|none)   #REQUIRED
  xlink:href      CDATA           #IMPLIED>

5.4 L'attribut localisateur (href)

L'attribut href fournit les données permettant à une application XLink de trouver une ressource (ou un fragment de ressource) distante. On peut l'utiliser sur les éléments de type simple, mais on doit l'utiliser sur les éléments de type locator.

La valeur de l'attribut href doit être une référence d'URI, comme défini dans le document [IETF RFC 2396], ou encore doit aboutir à une référence d'URI après que la procédure d'échappement [ndt. escaping procedure] ci-dessous a été appliquée. La procédure s'applique lors du passage de la référence d'URI à un résolveur d'URI.

Certains caractères ne sont pas admis dans les références d'URI, même s'ils le sont dans XHTML ; les caractères non-admis comprennent tous les caractères non-ASCII, plus les caractères exclus qui sont listés dans la section 2.4 du document [IETF RFC 2396], à l'exception des caractères dièse « # », pourcentage « % » et crochets « [ » et « ] », qui ont été ré-admis par le document [IETF RFC 2732]. Les caractères non-admis doivent être échappés comme suit :

  1. Chaque caractère non-admis est converti selon le codage de caractères UTF-8 [IETF RFC 2279], en un ou plusieurs octets ;

  2. tous les octets correspondant à un caractère non-admis sont échappés selon le mécanisme d'échappement des URI (c'est-à-dire convertis dans la forme « %HH », où « HH » représente la notation hexadécimale de la valeur d'octet) ;

  3. le caractère original est remplacé par la séquence de caractères résultante.

Comme il n'est pas réaliste que toute application vérifie si une valeur est une référence d'URI, cette spécification suit le conseil du document [IETF RFC 2396] sur ce point et elle n'impose aucune obligation de test de conformité aux applications XLink.

Si la référence d'URI est relative, alors sa version absolue doit être calculée selon la méthode de la spécification [XML Base], avant l'utilisation de celle-ci.

Pour les localisateurs à l'intérieur des ressources XHTML, le format de l'identifiant de fragment (le cas échéant) qui est utilisé dans la référence d'URI est spécifié par la spécification XPointer [XPTR].

Exemple : Déclarations d'un attribut href

Voici la déclaration non-normative de liste d'attributs d'un attribut href sur un élément censé être de type simple.

<!ATTLIST liensimple
  xlink:href      CDATA           #REQUIRED
  ...>

5.5 Les attributs sémantiques (role, arcrole et title)

Les attributs role, arcrole et title décrivent la signification des ressources dans le contexte d'un lien. L'attribut role peut s'utiliser sur les éléments de type extended, simple, locator et resource. L'attribut arcrole peut s'utiliser sur les éléments de type arc et simple. L'attribut title peut s'utiliser sur tous ces types d'élément.

La valeur de l'attribut role, ou arcrole, doit être une référence d'URI, comme définie dans le document [IETF RFC 2396], à cette exception que, si le système d'URI admet les deux formes absolues et relatives, la partie URI proprement dite doit être absolue. La référence d'URI identifie une certaine ressource qui décrit la propriété voulue. Quand aucune valeur n'est donnée, alors on ne doit pas inférer de valeur de rôle particulière. Les caractères non-admis dans les références d'URI, les valeurs de ces attributs, doivent être codés spécialement, comme décrit dans « 5.4 L'attribut localisateur (href) ».

L'attribut title est utilisé pour décrire la signification d'un lien ou d'une ressource de manière lisible par un humain, au même endroit que les attributs role ou arcrole. (Cependant, voir également « 5.1.4 Les titres des éléments étendus, des localisateurs et des arcs (élément de type title) »). La valeur est optionnelle ; si une valeur est fournie, elle devrait contenir une chaîne qui décrit la ressource. L'utilisation de cette information dépend fortement du type de traitement effectué. On peut l'utiliser, par exemple, pour rendre les titres disponibles aux applications employées par les utilisateurs ayant des déficiences visuelles, ou pour créer une table des liens, ou pour présenter un texte d'assistance qui apparaît quand l'utilisateur laisse le pointeur de la souris immobile au-dessus d'une ressource de départ.

Exemple : Déclarations des attributs role et title

Voici la déclaration non-normative de liste d'attributs des attributs role et title sur un élément censé être de type simple.

<!ATTLIST liensimple
  ...
  xlink:role      CDATA           #IMPLIED
  xlink:title     CDATA           #IMPLIED
  ...>

Voici la déclaration non-normative de liste d'attributs des attributs arcrole et title sur un élément censé être de type arc.

<!ATTLIST go
  ...
  xlink:arcrole   CDATA           #IMPLIED
  xlink:title     CDATA           #IMPLIED
  ...>

5.6 Les attributs de comportement (show et actuate)

Les attributs de comportement sont show et actuate. On peut les utiliser sur les éléments de type simple et de type arc. Sur un élément de type simple, ils signalent les intentions de comportement pour la traversée vers la seule ressource d'arrivé distante du lien. Sur un élément de type arc, ils signalent les intentions de comportement pour la traversée vers les ressources d'arrivée (locales ou distantes), quelles que soient celles-ci, spécifiées par cet arc.

Les attributs show et actuate ne sont pas obligatoires. Quand on les emploie, les applications XLink conformes devraient leur administrer le traitement spécifié dans cette section. Il n'y aucune obligation rigide (« doit ») pour ce traitement parce que ce qui a un sens pour une application interactive, tel un navigateur, n'en aura vraisemblablement pas pour une application non-interactive, tel un robot. Néanmoins, toutes les applications devraient prendre en compte l'ensemble des conséquences entraînées par le fait d'ignorer le comportement spécifié avant de suivre un autre chemin.

Exemple : Déclarations des attributs show et actuate

Voici la déclaration non-normative de liste d'attributs des attributs show et actuate sur un élément censé être de type simple.

<!ATTLIST liensimple
  xlink:type      (simple)        #FIXED "simple"
  ...
  xlink:show      (new
                  |replace
                  |embed
                  |other
                  |none)          #IMPLIED
  xlink:actuate   (onLoad
                  |onRequest
                  |other
                  |none)          #IMPLIED
  ...>

Les applications, qui rencontrent des éléments de type arc dans les listes de bases de liens, doivent traiter les attributs de comportement comme si leur valeur étaient show="none" et actuate="onLoad", même si d'autres valeurs étaient spécifiées.

5.6.1 L'attribut show

L'attribut show s'utilise pour indiquer la présentation souhaitée pour la ressource d'arrivée lors de la traversée à partir de la ressource de départ.

Contrainte : La valeur de l'attribut show

Si on donne une valeur à l'attribut show, celle-ci doit être l'une parmi les valeurs "new", "replace", "embed", "other" et "none".

Les applications XLink conformes devraient appliquer le traitement suivant pour les valeurs de l'attribut show :

"new"

L'application traversant vers la ressource d'arrivée devrait charger celle-ci dans une nouvelle fenêtre, ou cadre, ou panneau, ou autre contexte de présentation pertinent. L'effet est similaire à celui obtenu par le fragment HTML suivant :

<A HREF="http://www.exemple.org" target="_blank">...</A>
"replace"

L'application traversant vers la ressource d'arrivée devrait charger la ressource dans la même fenêtre, ou cadre, ou panneau, ou autre contexte de présentation pertinent, que celle où la ressource de départ a été chargée. L'effet est similaire à celui obtenu par le fragment HTML suivant :

<A HREF="http://www.exemple.org" target="_self">...</A>
"embed"

L'application traversant vers la ressource d'arrivée devrait charger la représentation de celle-ci à la place de la présentation de la ressource de départ. L'effet est similaire à celui obtenu par le fragment HTML suivant :

<IMG SRC="http://www.exemple.org/smiley.gif" ALT=":-)">

La présentation de la ressource de départ ne consiste pas généralement en celle du document entier ; il ne s'agirait du document entier que lorsque l'élément racine du document est un lien simple. L'incorporation [ndt. embedding] a donc typiquement un effet différent du remplacement [ndt. replacing].

Tout comme pour l'élément IMG de HTML, l'incorporation affecte seulement la présentation des ressources concernées ; elle ne dicte pas la transformation permanente de la ressource de départ. Autrement dit, quand un XLink incorporé est traité, le résultat de l'habillage [ndt. style] de la ressource d'arrivée du lien fusionne avec le résultat de l'habillage de la ressource dans lequel il est incorporé. Par contraste, quand une structure, tel un élément XInclude [XInclude], est résolue, le code XHTML original se transforme pour inclure le contenu référencé.

Le comportement des applications XLink conformes, lors de l'incorporation de ressources d'arrivée basées sur XHTML ([IETF RFC 2376] ou [IETF I-D XMT]), n'est pas défini dans cette version de la spécification.

La présentation des ressources incorporées est fonction de l'application.

"other"

Le comportement de l'application traversant vers la ressource d'arrivée est libre pour cette spécification. L'application devrait rechercher la présence d'un autre balisage dans le lien pour déterminer le comportement adéquat.

"none"

Le comportement de l'application traversant vers la ressource d'arrivée est libre pour cette spécification. Aucun autre balisage n'est fourni pour aider l'application à déterminer le comportement adéquat.

Si la ressource de départ, ou d'arrivée, consiste en de multiples emplacements non-contigus, telle qu'une collection d'étendues de chaîne à divers endroits dans la ressource, alors le comportement de l'application est libre. (Voir [XPTR] pour des précisions concernant la sélection de portions de documents XHTML).

Remarque :

Quelques possibilités pour le comportement d'une application vis-à-vis de ressources d'arrivée non-contiguës pourraient comprendre la mise en évidence de chaque emplacement, la production d'une boîte de dialogue qui permettrait au lecteur de choisir parmi les emplacements comme s'il s'agissait d'arcs séparés conduisant les uns vers les autres, la concaténation du contenu de tous les emplacements pour une présentation, et ainsi de suite. Le comportement d'une application vis-à-vis de ressources de départ non-contiguës pourrait comprendre la concaténation et la restitution comme une seule unité, ou la création d'un seul arc émanant de chaque portion contiguë.

5.6.2 L'attribut actuate

L'attribut actuate s'utilise pour indiquer la synchronisation voulue pour la traversée de la ressource de départ vers la ressource d'arrivée.

Contrainte : La valeur de l'attribut actuate

Si une valeur est donnée à l'attribut actuate, celle-ci doit être l'une parmi les valeurs "onLoad", "onRequest", "other" et "none".

Les applications XLink conformes devraient appliquer le traitement suivant pour les valeurs de l'attribut actuate :

"onLoad"

L'application devrait traverser vers la ressource d'arrivée immédiatement au chargement de la ressource de départ. L'effet est similaire à celui typiquement obtenu par le fragment HTML suivant, quand l'agent utilisateur est configuré pour afficher les images :

<IMG SRC="http://www.exemple.org/smiley.gif" ALT=":-)">

Si une seule ressource contient plusieurs arcs dont le comportement est fixé par les déclarations show="replace" actuate="onLoad", le comportement de l'application est libre pour XLink.

"onRequest"

L'application devrait traverser à partir de la ressource de départ vers la ressource d'arrivée seulement à la suite d'un événement, survenant après le chargement, qui est déclenché dans le but de la traversée. Un exemple d'un tel événement pourrait intervenir quand l'utilisateur clique sur la présentation de la ressource de départ, ou quand un module logiciel achève un compte à rebours précédant une redirection.

"other"

Le comportement de l'application traversant vers la ressource d'arrivée est libre pour cette spécification. L'application devrait rechercher la présence d'un autre balisage dans le lien pour déterminer le comportement adéquat.

"none"

Le comportement de l'application traversant vers la ressource d'arrivée est libre pour cette spécification. Aucun autre balisage n'est fourni pour aider l'application à déterminer le comportement adéquat.

5.7 Les attributs de traversée (label, from et to)

Les attributs de traversée sont label, from et to. L'attribut label peut s'utiliser sur les éléments de type resource et locator. Les attributs from et to peuvent s'utiliser sur l'élément de type arc.

Contrainte : Les valeurs des attributs label, from et to

La valeur des attributs label, from et to doit être du type NCName. Si une valeur est donnée à un attribut from, ou to, elle doit correspondre à la même valeur qu'un certain attribut label sur un élément de type locator ou bien resource, qui apparaît comme enfant direct au sein du même élément de type extended dans lequel se trouve aussi l'élément de type arc.

A Références

A.1 Les références normatives

IETF I-D XMT
Les types de média XHTML. Makoto, M., St. Laurent, S. et D. Kohn, rédacteurs. Internet Engineering Task Force, 2001. (Voir http://www.ietf.org/rfc/rfc3023.txt).
IETF RFC 2396
IETF (Internet Engineering Task Force). RFC 2396 : Identifiants de ressource uniformes, 1995. (Voir http://www.ietf.org/rfc/rfc2396.txt).
IETF RFC 2279
RFC 2279 : UTF-8, un format de transformation de ISO 10646. Internet Engineering Task Force, 1998. (Voir http://www.ietf.org/rfc/rfc2279.txt).
IETF RFC 2376
RFC 2376 : Les types de média XHTML. Internet Engineering Task Force, 1998. (Voir http://www.ietf.org/rfc/rfc2376.txt).
IETF RFC 2732
RFC 2732 : Format des adresses IPv6 littérales dans les URL. Internet Engineering Task Force, 1999. (Voir http://www.ietf.org/rfc/rfc2732.txt).
XML
Tim Bray, Jean Paoli, C.M. Sperberg-McQueen et Eve Maler, rédacteurs. Le langage de balisage extensible (XHTML) 1.0 (Deuxième édition). World Wide Web Consortium, 2000. (Voir http://www.w3.org/TR/2000/REC-xml-20001006).
IETF RFC 2119
S. Bradner, rédacteur. Les mots-clés à utiliser dans les RFC pour indiquer les niveaux d'exigences. Mars 1997. (Voir http://www.ietf.org/rfc/rfc2119.txt).
XML Base
Jonathan Marsh, rédacteur. XML Base (XBase). World Wide Web Consortium, 1999. (Voir http://www.w3.org/TR/2001/REC-xmlbase-20010627/).
XML Names
Tim Bray, Dave Hollander et Andrew Layman, rédacteurs. Les espaces de nommage dans XHTML. World Wide Web Consortium, 1999. (Voir http://www.w3.org/TR/1999/REC-xml-names-19990114/).

A.2 Les références non-normatives

CHUM
Steven J. DeRose et David G. Durand. 1995. "Les principes directeurs hypertextes TEI." In Computing and the Humanities 29(3). Réimprimé en Text Encoding Initiative: Background and Context, ed. Nancy Ide et Jean Ronis, ISBN 0-7923-3704-2.
Dexter
Halasz, Frank. 1994. "Le modèle de référence hypertexte Dexter." In Communications of the Association for Computing Machinery 37 (2), février 1994: 30-39.
FRESS
Steven J. DeRose and Andries van Dam. 1999. "La structure du document dans le système hypertexte FRESS." Markup Languages 1 (1) Winter. Cambridge: MIT Press: 7-32. (Voir également http://www.stg.brown.edu/~sjd/fress.html pour des précisions).
HTML
La spécification HTML 4.01. World Wide Web Consortium, 1999. (Voir http://www.w3.org/TR/1999/REC-html401-19991224/).
Intermedia
Yankelovich, Nicole, Bernard J. Haan, Norman K. Meyrowitz et Steven M. Drucker. 1988. "Intermedia : Le concept et la construction d'un environnement d'information continu." IEEE Computer 21 (janvier, 1988): 81-96.
ISO/IEC 10744
ISO (International Organization for Standardization). ISO/IEC 10744-1992 (E). Technologie de l'information - Langage de structuration hypermédia/temporisé (HyTime). [Geneva] : International Organization for Standardization, 1992. Extended Facilities Annex. [Geneva]: International Organization for Standardization, 1996. (Voir http://www.y12.doe.gov/sgml/wg8/document/1920.htm).
MicroCosm
Hall, Wendy, Hugh Davis et Gerard Hutchings. 1996. Repenser l'hypermédia : L'approche de Microcosm. Boston: Kluwer Academic Publishers. ISBN 0-7923-9679-0.
OHS
van Ossenbruggen, Jacco, Anton Eliëns et Lloyd Rutledge. "Le rôle de XHTML dans les systèmes hypermédia ouverts." Exposé de principe pour le quatrième atelier sur les systèmes hypermédias ouverts, ACM Hypertext '98. (Voir http://aue.auc.dk/~kock/OHS-HT98/Papers/ossenbruggen.html).
RDF
Ora Lassila et Ralph Swick, rédacteurs. La spécification du cadre de description des ressources (RDF) - modèle et syntaxe. World Wide Web Consortium, 1999. (Voir http://www.w3.org/TR/1999/REC-rdf-syntax-19990222/).
TEI
C. M. Sperberg-McQueen et Lou Burnard, editors.Principes directeurs pour le codage et l'échange du texte électronique. Association for Computers and the Humanities (ACH), Association for Computational Linguistics (ACL) et Association for Literary and Linguistic Computing (ALLC). Chicago, Oxford : Text Encoding Initiative, 1994.
XIS
John Cowan et Richard Tobin, rédacteurs. L'ensemble d'information XHTML. World Wide Web Consortium, 2001. (Voir http://www.w3.org/TR/2001/CR-xml-infoset-20010514/).
XLinkToRDF
Ron Daniel, rédacteur. La collecte des déclaration RDF à partir des liens XLink. World Wide Web Consortium, 2000. (Voir http://www.w3.org/TR/2000/NOTE-xlink2rdf-20000929/).
XLinkNaming
Eve Maler, Daniel Veillard et Henry S. Thompson, rédacteurs. Le contrôle du nom de balisage XLink. World Wide Web Consortium, 2000. (Voir http://www.w3.org/TR/2000/NOTE-xlink-naming-20001220/).
XInclude
Jonathan Marsh et David Orchard, rédacteurs. Les inclusions XHTML (XInclude) version 1.0. World Wide Web Consortium, 2000. (Voir http://www.w3.org/TR/2001/WD-xinclude-20010516/).
XLREQ
Steven DeRose, rédacteur. Les obligations XLink XHTML version 1.0. World Wide Web Consortium, 1999. (Voir http://www.w3.org/TR/1999/NOTE-xlink-req-19990224/).
XLDP
Eve Maler et Steve DeRose, rédacteurs. Les principes de conception du langage de liaison XHTML (XLink). World Wide Web Consortium, 1998. (Voir http://www.w3.org/TR/1998/NOTE-xlink-principles-19980303).
XPTR
Ron Daniel, Steve DeRose et Eve Maler, rédacteurs.Le langage des pointeurs XML (XPointer) v1.0. World Wide Web Consortium, 1998. (Voir http://www.w3.org/TR/2001/WD-xptr-20010108/).

B Exemple de DTD (non-normatif)

Le DTD suivant rend invalide (pour les raisons de l'argumentation) toutes les structures XLink pour lesquelles cette spécification ne définit pas de comportement. Il n'est proposé que par commodité pour les développeurs d'applications ; il n'a aucun statut normatif.

Ce DTD s'appuie sur les postulats suivants :

Les autres postulats et conditions apparaissent en commentaires dans le DTD.

<!ELEMENT simple ANY>
<!ATTLIST simple
   xlink:type     (simple)        #FIXED "simple"
   xlink:href      CDATA           #IMPLIED
   xlink:role      CDATA           #IMPLIED
   xlink:arcrole   CDATA           #IMPLIED
   xlink:title     CDATA           #IMPLIED
   xlink:show     (new
                   |replace
                   |embed
                   |other
                   |none)          #IMPLIED
   xlink:actuate  (onLoad
                   |onRequest
                   |other
                   |none)          #IMPLIED>

<!ELEMENT extended ((title|resource|locator|arc)*)>
<!ATTLIST extended
   xmlns:xlink     CDATA           #FIXED "http://www.w3.org/1999/xlink"
   xlink:type     (extended)      #FIXED "extended"
   xlink:role      CDATA           #IMPLIED
   xlink:title     CDATA           #IMPLIED>

<!ELEMENT title ANY>
<!-- l'attribut xml:lang n'est pas obligatoire, mais il offre l'essentiel
      de la motivation des éléments title en plus des attributs,
      il est donc placé ici par commodité -->
<!ATTLIST title
   xlink:type     (title)         #FIXED "title"
   xml:lang        CDATA           #IMPLIED>

<!ELEMENT resource ANY>
<!ATTLIST resource
   xlink:type     (resource)      #FIXED "resource"
   xlink:role      CDATA           #IMPLIED
   xlink:title     CDATA           #IMPLIED
   xlink:label     NMTOKEN         #IMPLIED>

<!ELEMENT locator (title*)>
<!-- l'attribut label n'est pas obligatoire, mais les localisateurs n'ont aucune fonction
     XLink particulière s'ils ne sont pas étiquetés -->
<!ATTLIST locator
   xlink:type     (locator)       #FIXED "locator"
   xlink:href      CDATA           #REQUIRED
   xlink:role      CDATA           #IMPLIED
   xlink:title     CDATA           #IMPLIED
   xlink:label     NMTOKEN         #IMPLIED>

<!ELEMENT arc (title*)>
<!-- les attributs from et to ont un comportement par défaut quand leur valeur est absente -->
<!ATTLIST arc
   xlink:type     (arc)           #FIXED "arc"
   xlink:arcrole   CDATA           #IMPLIED
   xlink:title     CDATA           #IMPLIED
   xlink:show     (new
                   |replace
                   |embed
                   |other
                   |none)          #IMPLIED
   xlink:actuate  (onLoad
                   |onRequest
                   |other
                   |none)          #IMPLIED
   xlink:from      NMTOKEN         #IMPLIED
   xlink:to        NMTOKEN         #IMPLIED>

C Les membres du groupe de travail et les remerciements (non-normatif)

Cette spécification a été produite par le groupe de travail sur les liaisons XHTML, comportant les membres actifs suivants à l'achèvement de cette spécification :

Les rédacteurs souhaitent remercier pour leurs contributions substantielles Tim Bray, précédemment co-rédacteur et vice-président, et Ben Trafford, précédemment co-rédacteur. Nous voudrions également remercier pour ses importantes contributions Gabe Beged-Dov, qui a écrit la proposition XArc. Enfin, nous voudrions remercier les groupes d'intérêt et de travail sur les liaisons XHTML pour leur soutien et leurs conseils, ainsi que Henry Thompson, pour sa participation en tant que président du groupe et contact pour l'équipe pendant les derniers mois avant la publication.