La version française de cette traduction est :
http://www.la-grange.net/w3c/xmlbase/

Traducteur : Karl Dubost - <karl+misc@la-grange.net>
La version française peut contenir des erreurs. La version anglaise de cette note est l'unique version normative. Version originale : http://www.w3.org/TR/2001/REC-xmlbase-20010627/

W3C

XML Base

Recommendation du W3C 27 Juin 2001

Cette version :
http://www.w3.org/TR/2001/REC-xmlbase-20010627/ (disponible en HTML, XML [Anglais])
Dernière version :
http://www.w3.org/TR/xmlbase/
Previous versions:
http://www.w3.org/TR/2000/PR-xmlbase-20001220/
Rédacteur :
Jonathan Marsh, Microsoft <jmarsh@microsoft.com>

Résumé

Ce document propose un mécanisme, similaire à celui de Base pour HTML, pour définir les URIs de base dans le cadre des documents XML.

Statut de ce document

Ce document a été revu par les membres du W3C et par les parties tiers et a été approuvé par le directeur comme une recommandation du W3C. C'est un document stable et peut être employé comme matériel de référence ou cité comme une référence normative dans un autre document. Le rôle du W3C dans la réalisation de la recommandation est d'attirer l'attention sur cette spécification et de promouvoir son large déploiement, afin d'améliorer la richesse fonctionnelle du web et son interopérabilité.

Ce document a été créé par le groupe de travail XML Linking dans le cadre de l'activité XML dans le domaine architecture du W3C. Pour avoir le contexte sur ce travail, Voir la présentation de l'activité XML.

Rapportez les erreurs possibles dans ce document en envoyant un mail à la mailing-list publique www-xml-linking-comments@w3.org (archives à http://lists.w3.org/Archives/Public/www-xml-linking-comments/). Toutes les erreurs qui auront été confirmées seront reportées dans une liste d'errata disponible à http://www.w3.org/2001/06/xmlbase-errata.

La version anglaise de cette spécification est la seule version normative. Les versions traduites de ce document sont disponibles à http://www.w3.org/2001/06/xmlbase-translations.

La liste des recommandations du W3C et autres documents techniques peut être trouvée à http://www.w3.org/TR/.

Table des matières

1 Introduction
2 Terminologie
3 Attribut xml:base
    3.1 Encodage et échappement de l'URI de référence
4 Résolution des URIs relatives
    4.1 Relation à la RFC 2396
    4.2 Granularité d'information de l'URI de base
    4.3 Correspondance entre les URIs et les URIs de base
5 Conformance

Appendices

A Références
B Références (non-normatif)
C Impacts sur les autres standards (non-normatif)


1 Introduction

Le langage XML Linking [XLink] définit des concepts XML 1.0 [XML] permettant de décrire des liens entre les ressources. Un des requis de base sur XLin est de supporter les concepts de liens de HTML [HTML 4.01] d'une façon générique. L'élément HTML BASE est un de ces concepts qui a été pris en compte par le groupe de travail XLink. BASE permet aux auteurs de spécifier clairement l'URI de base d'un document afin de permettre la résolution des URIs relatives en liens vers des images, des applets, des programmes de traitement des formulaires, des feuilles de style, et autres.

Ce document décrit un mécanisme pour fournir des services d'URI de base pour XLink, en tant que spécification modulaire, afin qu'il soit également possible de l'utiliser dans d'autres applications XML ayant besoin d'un contrôle supplémentaire sur les URIs relatives, sans avoir à implémenter tout XLink. La syntaxe consiste en un unique attribut XML appelé xml:base.

Le déploiement de XML Base est réalisé dans des références normatives par les nouvelles spécifications, par exemple XLink et l'infoset XML Infoset. Les applications et les spécifications construites sur ces nouvelles technologies supporteront nativement XML Base. Le comportement de l'attribut xml:base dans des applications basées sur des spécifications qui n'ont pas de référence normative directe ou indirecte vers XML Base n'est pas défini.

2 Terminologie

[Definition: Les mots clés "DOIT" ("MUST", "SHALL"), "NE DOIT PAS" ("MUST NOT", "SHALL NOT"), "OBLIGATOIRE" ("REQUIRED"), "DEVRAIT" ("SHOULD"), RECOMMANDE ("RECOMMENDED"), "POURRAIT" ("MAY"), et "OPTIONNEL" ("OPTIONAL") dans ce document doivent être interprêtés tel que décrit dans [IETF RFC 2119].]

Les termes URI de base and URI relative sont utilisés dans cette spécification tels que définis dans [IETF RFC 2396].

3 Attribut xml:base

L'attribut xml:base peut être inséré dans les documents XML pour spécifier une URI de base autre que l'URI de base du document ou de l'entité externe. La valeur de cet attribut est interprêté comme une référence d'URI tel que défini dans RFC 2396 [IETF RFC 2396], une fois traité tel que défini dans la section 3.1.

Dans un processeur XML, capable d'interprêter les espaces de noms (namespaces), le préfixe "xml" est dédié à l'espace de nom http://www.w3.org/XML/1998/namespace tel que décrit dans le document espace de noms en XML [XML Names]. Notez que xml:base peut toujours être utilisé par les processeurs XML, qui ne comprennent pas les espaces de noms.

Un exemple de xml:base dans un document simple contenant Xlink suit. Xlink référence de façon normative XML Base pour interprêter les références d'URI relatives dans les attributs xlink:href.

<?xml version="1.0"?>
<doc xml:base="http://example.org/today/"
     xmlns:xlink="http://www.w3.org/1999/xlink">
  <head>
    <title>Bibliothèque virtuelle</title>
  </head>
  <body>
    <paragraph>Voir <link xlink:type="simple" xlink:href="new.xml">Quoi de neuf</link> !</paragraph>
    <paragraph>Les dernières nouveautés du jour !</paragraph>
    <olist xml:base="/hotpicks/">
      <item>
        <link xlink:type="simple" xlink:href="pick1.xml">Nouveauté 1</link>
      </item>
      <item>
        <link xlink:type="simple" xlink:href="pick2.xml">Nouveauté #2</link>
      </item>
      <item>
        <link xlink:type="simple" xlink:href="pick3.xml">Nouveauté #3</link>
      </item>
    </olist>
  </body>
</doc>

Les URIs dans cet exemple sont transformés en URIs complètes telles que :

3.1 Encodage et échappement des références d'URI

Le jeu de caractères autorisés dans les attributs xml:base est le même que pour XML, à savoir [Unicode]. Cependant, quelques caractères Unicode ne sont pas permis dans les références d'URI, et donc les processeurs doivent encoder et échapper ces caractères pour avoir une référence d'URI valide à partir de la valeur de l'attribut.

Les caractères non permis incluent tous les caractères non-ASCII, plus les caractères exclus listés dans la section 2.4 de [IETF RFC 2396], à l'exception du caractère dièse (#) et du symbole pourcentage (%) et des crochets de nouveau permis dans [IETF RFC 2732]. Les caractères non permis doivent être échappés de la façon suivante :

  1. Chaque caractère non permis est converti en UTF-8 [IETF RFC 2279] en un ou plusieurs octets.

  2. Tous octets correspondants à un caractère non permis sont échappés par le mécanisme d'échappement d'URI (c'est à dire, converti en %HH, où HH est la notation hexadécimale de la valeur de l'octet).

  3. Le caractère original est remplacé par la séquence de caractère obtenue.

4 Résolution des URIs relatives

4.1 Relation à la RFC 2396

La RFC 2396 [IETF RFC 2396] prévoit la manière d'inclure l'URI de base à l'intérieur d'un document. Les règles pour déterminer l'URI de base peuvent être récapitulées comme suit (de la plus haute priorité vers la plus faible) :

  1. L'URI de base est à l'intérieur du contenu du document.

  2. L'URI de base est celle de l'entité enveloppante (message, document, ou rien).

  3. L'URI de base est l'URI utilisée pour récupérer l'entité.

  4. L'URI de base est définie par le contexte de l'application.

Note :

Le terme "entité" dans les points 2 et 3 précédents utilise la définition de la RFC 2396 de ce terme. Ailleurs dans ce document le terme "entité" est employé tel que dans le contexte XML.

Ce document spécifie les détails de la règle 1 afin d'incorporer l'information de l'URI de base dans le cas particulier des documents XML.

4.2 Granularité de l'information de l'URI de base

Les URIs relatives présentes dans un document XML sont toujours résolues par rapport à un élément, une entité document, ou une entité externe. Il n'y a pas de moyen de définir une granularité plus fine, telle qu'une information sur la base au niveau attribut, caractère, ou entité. Autant les entités internes, qu'elles soient déclarées dans le sous-ensemble interne ou dans une DTD externe, que le texte libre (le texte qui n'est pas enfermé dans un élément) dans une entité externe, ne peuvent définir une URI de base séparée de l'URI de base dépendante de la référence de l'entité.

L'URI de base d'une entité document ou d'une entité externe est déterminé par les règles de la RFC 2396, c'est-à-dire, que l'URI de base est l'URI utilisée pour extraire l'entité document ou l'entité externe.

L'URI de base d'un élément est :

  1. l'URI de base définie par un attribut xml:base sur l'élément, si celui-ci existe, sinon

  2. l'URI de base URI de l'élément de l'élément parent à l'intérieur du document ou de l'entité externe, s'ils existent, sinon

  3. l'URI de base de l'entité document ou l'entité externe contenant l'élément.

4.3 Correspondance des URIs avec les URIs de base

L'URI de base correspondante à une URI relative donnée apparaissant dans un document XML est déterminée comme suit :

  • L'URI de base pour une référence d'URI aparaissant dans un contenu texte est l'URI de base de l'élément contenant le texte.

  • L'URI de base pour une référence d'URI apparraissant dans un attribut xml:base est l'URI de base de l'élément parent de l'élément comprenant l'attribut xml:base, s'il existe à l'intérieur de l'entité document ou de l'entité externe, sinon c'est l'URI de base de l'entité document ou de l'entité externe contenant l'élément.

  • L'URI de base URI pour une référence d'URI apparaissant dans toute autre valeur d'attribut, y compris des valeurs d'attributs par défaut, est l'URI de base de l'élément comprenant l'attribut.

  • L'URI de base pour une référence d'URI apparaissant dans le contenu d'une instruction de traitement est l'URI de base de l'élément parent de cette instruction de traitement, si elle existe à l'intérieur de l'entité document ou de l'entité externe, sinon l'URI de base de l'entité document ou de l'entité externe contenant l'instruction de traitement.

Note :

La présence des attributs xml:base pourraient donner lieu à des résultats inattendus dans le cas où la valeur d'attribut est fournie, non pas directement dans l'entité de document XML, mais via un attribut par défaut déclaré dans une entité externe. De telles déclarations pourraient ne pas être lues par les logiciels qui sont basés sur des processeurs XML non validantes. Beaucoup d'applications XML n'exigent aucune validation des processeurs XML. Pour un fonctionnement correct de telles applications, les valeurs de xml:base devraient être fournies directement ou bien par des attributs par defaut déclarés dans le sous-ensemble interne de la DTD.

5 Conformité

Une application est conforme à XML Base si elle détermine les URIS de base en accord avec les conditions définies dans cette spécification.

A Références

IETF RFC 2119
RFC 2119: Key words for use in RFCs to Indicate Requirement Levels. Internet Engineering Task Force, 1997. (Voir http://www.ietf.org/rfc/rfc2119.txt.)
IETF RFC 2279
RFC 2279: UTF-8, a transformation format of ISO 10646. Internet Engineering Task Force, 1998. (Voir http://www.ietf.org/rfc/rfc2279.txt.)
IETF RFC 2396
RFC 2396: Uniform Resource Identifiers. Internet Engineering Task Force, 1995. (Voir http://www.ietf.org/rfc/rfc2396.txt.)
IETF RFC 2732
RFC 2732: Format for Literal IPv6 Addresses in URL's. Internet Engineering Task Force, 1999. (Voir http://www.ietf.org/rfc/rfc2732.txt.)
Unicode
Le Standard Unicode. Le Consortium Unicode. (Voir http://www.unicode.org/unicode/standard/standard.html.)
XML
Tim Bray, Jean Paoli, C.M. Sperberg-McQueen, and Eve Maler, editors. Extensible Markup Language (XML) 1.0 (Second Edition). World Wide Web Consortium, 2000. (Voir http://www.w3.org/TR/2000/REC-xml-20001006.)
Version française : http://babel.alis.com/web_ml/xml/REC-xml.fr.html
XML Names
Tim Bray, Dave Hollander, and Andrew Layman, editors. Namespaces in XML. Textuality, Hewlett-Packard, and Microsoft. World Wide Web Consortium, 1999. (Voir http://www.w3.org/TR/1999/REC-xml-names-19990114/.)

B Références (Non-normatif)

HTML 4.01
Dave Raggett, Arnaud Le Hors, Ian Jacobs, editors. HTML 4.01 Specification. World Wide Web Consortium, 1999. (Voir http://www.w3.org/TR/1999/REC-html401-19991224/.)
XLink
Steve DeRose, Eve Maler, David Orchard, and Ben Trafford, editors. XML Linking Language (XLink). World Wide Web Consortium, 2000. (Voir http://www.w3.org/TR/2001/REC-xlink-20010627/.)
XML Datatypes
Paul V. Biron, Ashok Malhotra, editors. XML Schema Part 2: Datatypes. World Wide Web Consortium Working Draft. (Voir http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/.)
XHTML
Steven Pemberton, et al. XHTML(TM) 1.0: The Extensible HyperText Markup Language. World Wide Web Consortium, 2000. (Voir http://www.w3.org/TR/2000/REC-xhtml1-20000126/.)
Version française : http://www.la-grange.net/w3c/xhtml1/
XML Infoset
John Cowan and Richard Tobin, editors. XML Information Set. World Wide Web Consortium, 1999. (Voir http://www.w3.org/TR/2001/CR-xml-infoset-20010514/.)
XPath
James Clark and Steven DeRose, editors. XML Path Language World Wide Web Consortium, 1999. (Voir http://www.w3.org/TR/1999/REC-xpath-19991116.)
XSLT
James Clark, editor. XSL Transformations. World Wide Web Consortium, 1999. (Voir http://www.w3.org/TR/1999/REC-xslt-19991116.)

C Impacts sur les autres standards (Non-normatif)

XML Base définit un mécanisme afin d'inclure l'information d'URI de base à l'intérieur d'un document XML. Il ne définit pas de mécanisme permettant d'identifier quel contenu ou valeurs d'attribut pouvant contenir des URIs. Ceci est défini uniquement par les spécifications et les applications qui définissent la sémantique du vocabulaire.

Une des intentions de XML Base est que les spécifications futures et les révisions des vocabulaires XML identifient quelle parties d'un document XML seront des URIS, et de servir de référence normative pour s'assurer que les URIS relatives sont traitées de façon consistante sur l'ensemble des documents XML.

L'impact de XML Base sur les autres standards (à la date de publication de ce document) est décrit ci-dessous.