XPointer element() Scheme
Cette traduction d'un document du W3C n'est pas la version officielle en français : seul le document original en anglais a valeur de référence.
Bien qu'elle ait été vérifiée, la traduction peut comporter des erreurs.
La traduction intègre toutes les corrections officielles depuis la parution de la recommandation en décembre 2002. Le texte signale les corrections apportées de la manière suivante :
Les notes de traduction se présentent dans le texte sous deux formes :
Les liens vers un document du W3C sont doublés vers une traduction quand elle existe :
un document du W3C →vf
Cf. les archives disponibles pour les traductions hébergées sur ce site.
Le World Wide Web Consortium tient un répertoire des traductions disponibles.
Copyright © 1994-2005 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.
Veuillez consulter l'errata de ce docuement, lequel peut inclure des corrections normatives.
Ce document est également disponible dans le format non normatif suivant : XML.
Seule la version originale en anglais de cette spécification est normative. Des traductions non normatives sont éventuellement disponibles.
Copyright © 2003 W3C® (MIT, ERCIM, Keio), tous droits réservés. Les règles de responsabilité, de nom de marque, d'utilisation des documents et de licence des logiciels du W3C s'appliquent.
Le système element()
de XPointer est conçu pour fonctionner avec la spécification du cadre XPointer [XPtrFrame]
afin de permettre l'adressage élémentaire des éléments XML.
Cette section décrit le statut de ce document au moment de sa publication. D'autres documents peuvent venir le remplacer. Le dernier statut de ce document est conservé au W3C.
Ce document est une recommandation (REC) du W3C. Il a été revu par les membres du W3C et les tiers intéressés et il a été homologué par le Directeur comme 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 cette recommandation consiste à attirer l'attention sur cette spécification et d'en promouvoir le plus large déploiement. Ceci améliore les fonctionnalités et l'interopérabilité du Web.
Ce document a été produit par le groupe de travail sur les liaisons XML du W3C qui fait partie de l'activité XML. Il répond à un sous-ensemble des obligations XPointer originales, et représente, en compagnie de la spécification du cadre XPointer →vf et du système xmlns() de XPointer →vf, une partie de la syntaxe pour les identifiants de fragment des types de média XML.
Les commentaires du public concernant cette recommandation sont les bienvenus. Veuillez les adresser à la liste de diffusion publique www-xml-linking-comments@w3.org (archives).
On peut trouver des informations concernant les mises en œuvre relatives à cette spécification et celles qui l'accompagnent, à savoir le cadre XPointer →vf et le système xmlns() de XPointer →vf, dans le rapport de mise en œuvre.
Des divulgations de patente et des conditions d'utilisation sont associées à cette recommandation, on peut les consulter sur la page de la déclaration des droits de propriété intellectuelle de XPointer conformément à la politique du W3C.
On peut trouver la liste des recommandations et des autres documents techniques courants du W3C à http://www.w3.org/TR/. Les publications du W3C peuvent, à tout instant, être mises à jour, remplacées ou rendues obsolètes par d'autres documents.
Le système element()
de XPointer est conçu pour fonctionner avec la spécification du cadre XPointer
[XPtrFrame] afin de permettre l'adressage élémentaire des éléments XML.
[Définition : Les mots-clés doi(ven)t
,
ne doi(ven)t pas
, obligatoire
, 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 [RFC 2119]].
Dans cette spécification, on emploie les termes partie de pointeur
, système
, processeur XPointer
et contexte de corrélation d'espace de nommage
conformément aux
définition →vf
de la spécification du cadre XPointer.
La grammaire formelle du système element()
est exprimée en utilisant la notation simple de la forme Backus-Naur étendue
(EBNF), comme décrit dans la recommandation XML [XML].
Cette spécification est liée de manière normative à la spécification du cadre XPointer [XPtrFrame].
Les processeurs XPointer conformes, qui gèrent le système element()
, dépendent de l'aptitude
des applications à exposer une ressource XML au moins sous la forme des items d'information et des propriétés définis
par les spécifications XML Information Set [Infoset] et XML Schema [XMLSchema]
et listés dans la spécification du cadre XPointer.
Les processeurs XPointer conformes prétendant gérer le système element()
doivent respecter
le comportement défini dans cette spécification ; ils peuvent être conformes à d'autres spécifications de systèmes XPointer.
Cette section décrit la syntaxe et la sémantique du système element()
et le comportement des processeurs XPointer vis-à-vis de ce système.
Le nom du système est element
. La syntaxe des données de ce système est la suivante ;
si les données de système, dans la partie d'un pointeur obéissant au système element()
, ne sont pas conformes à la syntaxe
définie dans cette section, alors cette partie de pointeur n'identifiera aucune sous-ressource.
[1] | ElementSchemeData | ::= | (NCName ChildSequence?) | ChildSequence |
[2] | ChildSequence | ::= | ('/' [1-9] [0-9]*)+ |
Les données de système sont constituées d'un nom de type NCName (comme défini dans la spécification des espaces de nommage XML [XML-Names]), ou bien d'une séquence sous-élément, ou bien des deux.
Un nom NCName seul identifie un seul élément exactement comme il le ferait dans un pointeur abrégé, comme défini dans la spécification du cadre XPointer [XPtrFrame], sauf que l'échec de l'identification d'un élément se conclura simplement par une situation où aucune sous-ressource ne sera identifiée par cette partie de pointeur plutôt que par une condition d'erreur du cadre XPointer.
Par exemple, la partie de pointeur suivante identifie l'élément dont l'ID est "intro" (comme défini par le cadre XPointer) :
element(intro)
Une séquence sous-élément apparaissant seule identifie un élément au cours d'une exploration pas à pas,
qui est dirigée par une succession d'entiers séparés par des caractères barres obliques /
;
chaque entier n localise le nème sous-élément de l'élément localisé avant.
L'entier n qui suit le premier caractère barre oblique localise le nème
élément de niveau supérieur : l'élément document unique (la propriété [élément document], si la ressource est un
document XML), auquel cas l'entier est toujours égal à 1, ou bien l'un parmi plusieurs éléments racines potentiels
(le ou les éléments racines de l'entité, si la ressource est une entité analysée externe).
Par exemple, supposons que la ressource XML soit un document XML entier,
la partie de pointeur suivante identifie le deuxième sous-élément de l'élément racine du document :
element(/1/2)
La séquence sous-élément apparaissant après un nom NCName identifie un élément au cours d'une exploration pas à pas, en commençant à partir de l'élément localisé par le nom fourni. Par exemple, la partie de pointeur suivante identifie un élément en localisant d'abord l'élément identifié par la valeur "intro" puis en localisant le troisième sous-élément de cet élément et, finalement, en identifiant à son tour le premier sous-élément de cet élément :
element(intro/3/1)
Si ni le nom NCName ni la séquence sous-élément ne localisent un élément, alors aucun élément n'est identifié par la partie pointeur dans son ensemble.
Le système element()
ne se sert pas du contexte d'une liaison d'espace de nommage car il ne gère pas les noms qualifiés.