W3C

Associating Style Sheets with XML documents 1.0 (Second Edition)

Traduction française

Publication du 6 janvier 2012

Cette version :
http://www.w3.org/TR/2010/REC-xml-stylesheet-20101028/
Dernière version :
http://www.w3.org/TR/xml-stylesheet/
Version précédente :
http://www.w3.org/TR/2010/PER-xml-stylesheet-20100909/
Errata :
http://www.w3.org/1999/06/REC-xml-stylesheet-19990629/errata
Traducteur :
Grégory Roche <gregory@polymorphisme.fr>
Relecteur :
Édouard Lopez <i18n+w3c@edouard-lopez.com>

La version française peut contenir des erreurs. La version anglaise de ce document est l'unique version normative.

Version originale anglaise : http://www.w3.org/TR/2010/REC-xml-stylesheet-20101028/.

Associer des feuilles de style à des documents XML 1.0 (Deuxième Édition)

Recommandation du W3C du 28 octobre 2010

Cette version :
http://www.w3.org/TR/2010/REC-xml-stylesheet-20101028/
Dernière version :
http://www.w3.org/TR/xml-stylesheet/
Version précédente :
http://www.w3.org/TR/2010/PER-xml-stylesheet-20100909/
Rédacteurs :
James Clark (Première Édition) <jjc@jclark.com>
Simon Pieters (Deuxième Édition), Opera Software <simonp@opera.com>
Henry S. Thompson (Deuxième Édition), Université d’Edinburgh <ht@inf.ed.ac.uk>

Veuillez vous référer à l’errata de ce document, qui peut inclure des corrections normatives.

Voir aussi les traductions.

Ce document est également disponible dans ces formats non normatifs : XML.


Résumé

Ce document permet aux feuilles de style d’être associées à un document XML, en incluant une ou plusieurs instructions de traitement avec une cible xml-stylesheet dans le prologue du document.

Statut de ce document

Cette section décrit le statut de ce document au moment de sa publication. D’autres documents peuvent remplacer ce document. Une liste des publications actuelles du W3C et la dernière révision de ce rapport technique peuvent être trouvées dans l’index des Rapports techniques du W3C à l’adresse http://www.w3.org/TR/.

Ce document est une production du Groupe de travail XML Core qui fait partie de l’XML Activity du W3C. La version anglaise de cette spécification est la seule version normative. Toutefois, pour les traductions de ce document, voir à l’adresse http://www.w3.org/2003/03/Translations/byTechnology?technology=xml-stylesheet.

Cette deuxième édition intègre toutes les erreurs connues à la date de publication, clarifie plusieurs domaines laissés non spécifiés dans l’édition précédente, et a été restructurée afin de permettre à d’autres spécifications de réutiliser les règles d’analyse des pseudo‐attributs à partir d’une chaîne de caractètes. Une description plus détaillée des modifications de la première édition est disponible dans l’annexe B Modifications depuis la première édition. Cette édition annule la précédente édition du 29 juin 1999.

Les commentaires sur ce document peuvent être envoyés à la liste de diffusion www-xml-stylesheet-comments@w3.org; des archives publiques sont disponibles. La liste des erreurs de ce document est disponible à l’adresse http://www.w3.org/1999/06/REC-xml-stylesheet-19990629/errata.

Ce document a été revu par des membres du W3C, par des développeurs de logiciels, et d’autres groupes du W3C et parties intéressées, et est approuvé par le Directeur en tant que Recommandation W3C. C’est un document stable qui peut être utilisé comme document de référence ou cité par un autre document. Le rôle du W3C en produisant la Recommandation est d’attirer l’attention sur la spécification et de promouvoir son large déploiement. Cela contribue à l’amélioration de la fonctionnalité et de l’interopérabilité du Web.

Le W3C maintient une liste publique de divulgations des brevets faites en relation avec les produits livrables du groupe; cette page comprend également les instructions concernant la divulgation d’un brevet. Toute personne ayant une connaissance réelle d’un brevet dont elle estime qu’il contient des revendications essentielles doit divulguer l’information conformément à la section 6 Divulgation de la Politique des brevets du W3C.

Table des matières

1 Introduction
2 Les exigences de conformité
3 Les pseudo‐attributs
4 L’instruction de traitement xml-stylesheet

Annexes

A Références
B Modifications depuis la première édition


1 Introduction

(Cette section est non normative.)

Les auteurs pourraient avoir des intentions particulières quant à la façon dont les agents utilisateurs doivent présenter les informations contenues dans leurs documents XML. Cette spécification propose un mécanisme non intrusif, en utilisant une instruction de traitement pour fournir des liens vers une ou plusieurs feuilles de style, c.‐à‐d. les ressources spécifiant les rendus désirés dans un langage donné. Les agents utilisateurs utiliseront ces ressources pour contrôler la présentation du XML.

Considérons un document XHTML utilisant l’élément link pour associer des feuilles de style :

<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title>Example with link elements</title>
  <link rel="stylesheet" href="common.css"/>
  <link rel="stylesheet" href="default.css" title="Default style"/>
  <link rel="alternate stylesheet" href="alt.css" title="Alternative style"/>
  <link rel="stylesheet" href="single-col.css" media="all and (max-width: 30em)"/>
 </head>
 <body>
  ...
 </body>
</html>

Ce document pourrait être écrit comme suit, en utilisant des instructions de traitement xml-stylesheet :

<?xml-stylesheet href="common.css"?>
<?xml-stylesheet href="default.css" title="Default style"?>
<?xml-stylesheet alternate="yes" href="alt.css" title="Alternative style"?>
<?xml-stylesheet href="single-col.css" media="all and (max-width: 30em)"?>
<html xmlns="http://www.w3.org/1999/xhtml">
 <head>
  <title>Example with xml-stylesheet processing instructions</title>
 </head>
 <body>
  ...
 </body>
</html>

2 Les exigences de conformité

Tous les schémas, les exemples et les notes de cette spécification sont non normatifs, de même que toutes les sections explicitement marquées comme telles. Le reste de cette spécification est normatif.

Dans les parties normatives de ce document, les mots‐clés doit, ne doit pas, devrait, ne devrait pas et peut doivent être interprétés comme décrit dans la RFC 2119. Ces mots ne figurent pas systématiquement en majuscule dans cette spécification. [RFC2119]

Les classes de conformités suivantes sont définies par cette spécification :

<gitem>
Documents
Les documents

Un document est considéré comme étant un document conforme s’il satisfait tous les critères de niveaux doit de cette spécification qui s’appliquent aux documents.

Les instructions de traitement xml-stylesheet et leurs pseudo‐attributs sont destinés à être utilisés par les auteurs de document pour fournir des liens et des informations relatives à une ou plusieurs feuilles de style, comme décrit dans l’annexe 4 L’instruction de traitement xml-stylesheet, qui sont disponibles pour être appliquées au document contenant.

</gitem>
<gitem>
xml-stylesheet processors
Les processeurs xml-stylesheet

XML définit une application comme un module logiciel qui reçoit l’information contenue dans un document XML à partir d’un processeur XML. [Définition : Un processeur xml-stylesheet est une application de ce type qui traite les instructions de traitement XML conformément à cette spécification.] [XML]

Un processeur xml-stylesheet est considéré être un processeur xml-stylesheet conforme s’il satisfait tous les critères de niveaux doit de cette spécification qui s’appliquent aux processeurs xml-stylesheet. Les processeurs xml-stylesheet n’ont pas à vérifier ou à mettre en application l’un des critères sur les documents.

</gitem>
<gitem>
Applications
Les applications

Un processeur xml-stylesheet peut être une partie d’une application XML plus grande, ou peut fonctionner de façon autonome. Dans les deux cas, [Définition : une application est le consommateur de l’analyse des pseudo‐attributs définie dans cette spécification.]

Une spécification détaillée de la façon dont les applications exploitent l’information contenue dans les instructions de traitement xml-stylesheet dépasse le champs de ce document, ceci pouvant raisonnablement varier d’une application à l’autre. Par conséquent, cette spécification ne pose aucune exigence de conformité pour les applications.

Il est cependant prévu que les spécifications régissant l’utilisation des langages de feuille de style feront référence à cette spécification en décrivant la façon dont les applications peuvent identifier les feuilles de style pour les utiliser. Il est attendu de ces spécifications de définir les interprétations des valeurs (ou de l’absence de valeur) des pseudo‐attributs dont elles font usage, et ce de la façon la plus cohérente possible avec les descriptions des pseudo‐attributs de la section 4 L’instruction de traitement xml-stylesheet, dans la mesure où cela a du sens pour l’application et le(s) langage(s) de style en question.

</gitem>

Cette spécification est définie en faisant référence au vocabulaire du XML fournit par l’ensemble d’information XML. [INFOSET]

Dans cette spécification, les productions utilisent la même notation que celle utilisée dans la spécification du XML. Les atomes de la grammaire qui ne sont pas définis dans cette spécification sont définis dans la spécification du XML. [XML]

3 Les pseudo‐attributs

[Définition : Les règles d’analyse des pseudo‐attributs issue d’une chaîne sont données dans cette section.]

[Définition : Le résultat d’analyse est soit un ensemble de pseudo‐attributs soit une erreur.]

Si la chaîne donnée ne correspond pas à la production PseudoAtts, le résultat d’analyse est une erreur.

Les productions pour les chaînes contenant des pseudo‐attributs
[1a]    PseudoAtts    ::=    PseudoAtt ? ( S PseudoAtt )* S ?
[2]    PseudoAtt    ::=    Name S ? "=" S ? PseudoAttValue
[3]    PseudoAttValue    ::=    ('"' ([^"<&] | CharRef | PredefEntityRef)* '"' | "'" ([^'<&] | CharRef | PredefEntityRef )* "'")
[4]    PredefEntityRef    ::=    "&amp;" | "&lt;" | "&gt;" | "&quot;" | "&apos;"

[Définition : Dans la production PseudoAtts, chaque chaîne correspondant à PseudoAtt représente un pseudo‐attribut.] Un pseudo‐attribut a un nom et une valeur.

[Définition : Dans la production PseudoAtt, la chaîne correspondant à Name constitue le nom du pseudo‐attribut.]

[Définition : Dans la production PseudoAtt, la chaîne correspondant à PseudoAttValue — avec les trois modifications spécifiées ci‐dessous — constitue la valeur du pseudo‐attribut.]

Le résultat d’analyse est une erreur si la contrainte de forme d’un caractère admissible est enfreinte par un appel de caractère CharRef. [XML]

Le résultat d’analyse est une erreur s’il existe plus d’un pseudo‐attribut de même nom.

Si le résultat d’analyse n’est pas une erreur, alors c’est l’ensemble des pseudo‐attributs interprétés lorsque la chaîne donnée correspond à la production PseudoAtts.

4 L’instruction de traitement xml-stylesheet

[Définition : Un item d’information d’instruction de traitement est appelé instruction de traitement xml-stylesheet potentielle s’il a une propriété [target] xml-stylesheet, et qu’il apparaît soit dans la propriété [children] d’un item d’information du document et avant l’item d’information d’élément de la propriété [children] de l’item d’information du document, soit dans la propriété [children] d’un item d’information de déclaration de type de document.]

Pour les instructions de traitement xml-stylesheet potentielles qui sont dans la propriété [children] d’un item d’information du document, les processeurs xml-stylesheet doivent reporter à l’application le résultat d’analyse de l’invocation des règles d’analyse des pseudo‐attributs issue d’une chaîne, en utilisant la propriété [content] de l’item d’information d’une instruction de traitement en tant que chaîne.

Pour les instructions de traitement xml-stylesheet potentielles qui sont dans la propriété [children] d’un item d’information de déclaration de type de document, les processeurs xml-stylesheet peuvent reporter à l’application le résultat d’analyse de l’invocation des règles d’analyse des pseudo‐attributs issue d’une chaîne, en utilisant la propriété [content] de l’item d’information d’instruction de traitement en tant que chaîne. [Définition : S’il n’est pas signalé à l’application, l’item d’information d’instruction de traitement est considéré comme ignoré.]

Note :

Puisque les processeurs XML non validant ne sont pas tenus de lire les entités paramètres ou le sous‐ensemble externe, il est possible que les instructions de traitement qui apparaissent dans les entités paramètres ou dans le sous‐ensemble externe ne soient pas présentes dans la propriété [children] de l’item d’information de déclaration de type de document. [XML]

[Définition : Une instruction de traitement xml-stylesheet potentielle est appelée instruction de traitement xml-stylesheet si le résultat d’analyse n’est pas une erreur lors de l’invocation des règles d’analyse des pseudo‐attributs issue d’une chaîne, en utilisant la propriété [content] de l’item d’information d’instruction de traitement en tant que chaîne.]

Les documents ne doivent pas utiliser les items d’information d’instruction de traitement avec la propriété [target] xml-stylesheet s’ils ne sont pas les instructions de traitement xml-stylesheet.

Les documents ne devraient pas utiliser les instructions de traitement xml-stylesheet qui sont dans la propriété [children] d’un item d’information de déclaration de type de document.

Une instruction de traitement xml-stylesheet devra correspondre à la production suivante :

La production pour l’instruction de traitement xml-stylesheet
[1]    StyleSheetPI    ::=    "<?xml-stylesheet" ( ( S PseudoAtts )? - ( Char* "?>" Char*) ) "?>"

Sauf indication contraire, les documents peuvent spécifier les pseudo‐attributs suivants avec les instructions de traitement xml-stylesheet :

<gitem>
href
href

Indique l’adresse de la feuille de style référencée. Les documents doivent spécifier ce pseudo‐attribut. Les documents doivent définir la valeur comme une chaîne qui correspond à la grammaire d’une <IRI‐reference> défini dans la RFC 3987. [RFC3987]

Il est possible d’associer une feuille de style qui est dans le même document comme l’instruction de traitement xml-stylesheet en utilisant uniquement un identifiant de fragment dans le pseudo‐attribut href .

Pour les détails du mécanisme en XSLT, voir la section 3.11 Embedded Stylesheet Modules de [XSLT].

</gitem>
<gitem>
type
type

Indique un type de média consultatif pour la feuille de style référencée. Si l’attribut est présent, les documents doivent définir la valeur comme une chaîne qui correspond à la production media-type telle que dans la section 3.7 Media Types de la RFC 2616. [RFC2616]

La conformité syntaxique à la production défini dans la RFC 2616 est l’unique exigence. Cette spécification n’impose aucune exigence relative aux statuts des types utilisés. Quelques uns des types de média non standards (au moment de la publication de cette spécification), tel que text/xsl, sont bien supportés par les implémentations existantes, tandis que certains types de média enregistrés, tel que application/xslt+xml, ne le sont pas.

La valeur est consultative en ce qu’elle est destinée à être utilisée par une application uniquement lorsqu’aucune autre source d’informations sur le type de média n’est disponible lors de la récupération de la feuille de style elle‐même.

</gitem>
<gitem>
title
title

Indique le titre de la feuille de style référencée dans un ensemble de feuilles de style. Aucune contraintes hormis celles de la production PseudoAttValue ne sont placées sur la valeur.

</gitem>
<gitem>
media
media

Indique le média pour lequel la feuille de style référencée s’applique. Si l’attribut est présent, les documents doivent définir la valeur comme une chaîne correspondant à la production media_query_list de la spécification des Media Queries. [MQ]

</gitem>
<gitem>
charset
charset

Indique un encodage de caractères consultatif pour la feuille de style référencée. Si l’attribut est présent, les documents doivent définir la valeur comme un nom d’encodage de caractères valide, lequel doit être le nom ou l’alias libellé « preferred MIME name » dans le registre des IANA Character Sets, s’il en existe un, ou le nom de l’encodage, si aucun des alias n'est ainsi libellé. [IANACHARSET]

La valeur est consultative en ce qu’elle est destinée à être utilisée par une application uniquement lorsqu’aucune autre source d’informations d’encodage n’est disponible lors de la récupération de la feuille de style elle‐même, soit explicitement via un en‐tête HTTP, soit implicitement via son type de média, comme dans le cas des documents XML.

</gitem>
<gitem>
alternate
alternate

Si la valeur est "yes", cela indique que la feuille de style référencée est une feuille de style alternative, et les documents doivent également spécifier le pseudo‐attribut title avec une valeur non vide. Si l’attribut est présent, les documents doivent définir la valeur à "yes" ou "no".

</gitem>

Les documents ne doivent pas spécifier d’autres pseudo‐attributs dans les instructions de traitement xml-stylesheet.

Tous les liens vers les feuilles de style qui sont spécifiés à l’extérieur du document (p. ex. les en‐têtes Link de certaines versions du HTTP [RFC2068]) sont examinés pour créer des associations qui apparaissent avant les associations spécifiées par les instructions de traitement xml-stylesheet. L’application est chargée de prendre toutes les associations et de déterminer, le cas échéant, la façon dont leur ordre affecte son traitement.

A Références

Les références sont normatives sauf si elles sont marquées « non normative ».

IANACHARSET
Character Sets, IANA, Mai 2007 (voir http://www.iana.org/assignments/character-sets).
INFOSET
XML Information Set, J. Cowan, R. Tobin. W3C, Février 2004 (voir http://www.w3.org/TR/xml-infoset/).
MQ
Media Queries, H. Lie, T. Çelik, D. Glazman, A. van Kesteren. W3C, Avril 2009 (voir http://www.w3.org/TR/css3-mediaqueries/).
RFC2068
(non normative) Hypertext Transfer Protocol — HTTP/1.1, R. Fielding, J. Gettys, J. Mogul, H. Frystyk, T. Berners-Lee. IETF, Juin 1997 (voir http://www.ietf.org/rfc/rfc2068.txt).
RFC2119
Key words for use in RFCs to Indicate Requirement Levels, S. Bradner. IETF, Mars 1997 (voir http://www.ietf.org/rfc/rfc2119.txt).
RFC2616
Hypertext Transfer Protocol — HTTP/1.1, R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee. IETF, Juin 1999 (voir http://www.ietf.org/rfc/rfc2616.txt).
RFC3987
Internationalized Resource Identifiers (IRIs), M. Dürst, M. Suignard. IETF, Janvier 2005 (voir http://www.ietf.org/rfc/rfc3987.txt).
XML
Extensible Markup Language, T. Bray, J. Paoli, C. Sperberg-McQueen, E. Maler, F. Yergeau. W3C, Novembre 2008 (voir http://www.w3.org/TR/xml/).
XSLT
(non normative) XSL Transformations (XSLT) Version 2.0, M. Kay. W3C, Janvier 2007 (voir http://www.w3.org/TR/xslt20/).

B Modifications depuis la première édition

Cette annexe est non normative.

La première édition de cette spécification était remarquablement brève, en revanche, elle omettait de nombreux détails. Cette deuxième édition tente de combler les lacunes laissées par la première édition, tout en restructurant la présentation pour permettre de référencer et de réutiliser le concept de pseudo‐attribut.

Au‐delà de la restructuration précédemment mentionnée, ni la syntaxe ni la sémantique des instructions de traitement xml-stylesheet n’ont été modifiées. Les contraintes de conformité relatives aux processeurs ont été légèrement assouplies, de telle sorte que les instructions de traitement xml-stylesheet survenant dans le sous‐ensemble interne ou externe puissent être ignorées.

La liste suivante identifie les modifications majeures qui ont été faites :