Cette spécification a été traduite par Karl Dubost, Normandie Web (karl+misc@la-grange.net) dans une démarche volontaire. Toute amélioration est la bienvenue.
La version française de cette traduction est :
http://www.la-grange.net/w3c/xml-stylesheet/
Traducteur : Karl Dubost - <karl+misc@la-grange.net>
La version française peut contenir des erreurs. La version anglaise de cette spécification est l'unique version
normative. Cette version a été établie à partir
de la Recommandation du 29-juin-1999 disponible à
http://www.w3.org/1999/06/REC-xml-stylesheet-19990629
Dernière version : http://www.w3.org/TR/xml-stylesheet
Droit de copie © 1999 W3C (MIT, INRIA, Keio ), Tous droits réservés. Les régles de responsabilité, demarque déposée, d'utilisation du document et de licence des logiciels du W3C s'appliquent.
Ce document permet à une feuille de style d'être associée avec un
document XML par l'introduction d'une ou plusieurs instructions de
traitement avec une cible xml-stylesheet
dans le prologue du
document.
Ce document a été examiné par les membres du W3C Members et autres groupes concernés et a été approuvé par le directeur comme une Recommandation du W3C. C'est un document stable et peut être utilisé comme matériel de référence ou cité comme une référence normative dans d'autres documents. Le rôle du W3C dans l'élaboration de la recommandation est d'attirer l'attention sur cette spécification et de promouvoir son large déploiement. Ceci permet d'améliorer la fonctionnalité et l'interopérabilité du Web.
La liste des erreurs connues dans cette spécification est disponible à http://www.w3.org/TR/1999/xml-stylesheet-19990629/errata.
Tous commentaires sur cette spécification peut être envoyés à <www-xml-stylesheet-comments@w3.org>. L'archive des commentaires publiques est dispoible à http://w3.org/Archives/Public/www-xml-stylesheet-comments.
Une liste à jour des recommandations et autres documents techniques du W3C peut être trouvée à http://www.w3.org/TR.
Le groupe de travail espère que des mécanismes supplémentaires pour lier les feuilles de style au document XML seront définies dans une spécification future.
L'utilisation de ces instructions de traitement XML dans cette spécification ne devraient pas être prises comme un précédent. Le W3C n'anticipe pas la recommandation de l'utilisation des instructions de traitement dans toute spécification future. Le raisonnement expliquent pourquoi elles sont utilisées dans cette spécificiation.
Ce document a été élaboré au sein de l'Activité XML du W3C.
xml-stylesheet
Les feuilles de style peuvent être associées avec un document XML[XML10]
en utilisant une instruction de traitement dont la cible est
xml-stylesheet
. Cette instruction de traitement suit le
comportement du <LINK
REL="stylesheet">
de HTML 4.0 [HTML40].
L'instruction de traitement xml-stylesheet
est analysé
grammaticalement de la même façon qu'une balise de début, à l'exception
que les entités, autres que celles prédéfinies, ne doivent pas être
référencées.
La grammaire suivante est donnée en utilisant la même notation que la grammaire de la recommandation XML [XML10]. Les symboles dans la grammaire, qui n'est pas définie ici, sont définis dans la recommandation XML.
[1] | StyleSheetPI | ::= | '<?xml-stylesheet' (S PseudoAtt)* S? '?>' | |
[2] | PseudoAtt | ::= | Name S? '=' S? PseudoAttValue | |
[3] | PseudoAttValue | ::= | ('"' ([^"<&] | CharRef | PredefEntityRef)* '"' | |
| "'" ([^'<&] | CharRef | PredefEntityRef)* "'") | ||||
- (Char* '?>' Char*) | ||||
[4] | PredefEntityRef | ::= | '&' | '<' | '>' | '"' | ''' |
Dans PseudoAttValue, CharRef ou PredefEntityRef sont interprêtés de la même façon que la valeur normal d'un attribut XML. La valeur réelle du pseudo-attribut qui est la valeur après chaque référence est remplacée par le caractère qu'il référence. Ce remplacement n'est pas réalisé automatiquement par un processeur XML.
L'instruction de traitement xml-stylesheet
est permise
seulement dans le prologue d'un document XML. La syntaxe de XML contraint
les positions autorisées des instructions de traitement dans le
prologue ; l'instruction de traitement xml-stylesheet
est
permise à n'importe quel endroit dans le prologue qui respecte ces
contraintes.
NOTE : Si l'instruction de traitement xml-stylesheet
se présente dans un sous-ensemble de la DTD externe ou dans une entité
paramètre, il est possible qu'elle ne puisse pas être traitée par un
processeur XML non validant (voir [XML10]).
Les pseudo attributs suivants sont définis
href CDATA #REQUIRED type CDATA #REQUIRED title CDATA #IMPLIED media CDATA #IMPLIED charset CDATA #IMPLIED alternate (yes|no) "no"
Les sémantiques des pseudo-attributs sont exactement comme celle de
<LINK REL="stylesheet">
dans HTML 4.0, à l'exception du
pseudo-attribut alternate
. Si
alternate="yes"
est défini, alors l'instruction de traitement
a la sémantique de <LINK REL="alternate
stylesheet">
à la place de <LINK
REL="stylesheet">
.
NOTE : Comme la valeur de l'attributhref
est une référence URI, Elle peut être une URI relative et elle peut contenir un identificateur fragment. En particulier, une référence URI peut seulement contenir un identificateur fragment. Comme une référence URI est une référence d'une partie de document contenant l'instruction de traitementxml-stylesheet
(voir [RFC2396]). La conséquence est que l'instruction de traitementxml-stylesheet
permet aux feuilles de style d'être incluses dans le même document que l'instruction de traitementxml-stylesheet
.
Dans certains cas, les feuilles de style peuvent être liées à un
document XML par un moyen externe au document. Par exemple, les premières
versions de HTTP [RFC2068] (section 19.6.2.4) permettent
aux feuilles de style d'être associées à des documents XML au moyen de
l'entête Link
. Tous liens aux feuilles de style qui sont
spécifiés de façon externe au document sont censés se manifester avant les
liens spécifiés par l'instruction de traitement xml-stylesheet
.
C'est la même chose que dans HTML 4.0 (voir section
14.6).
voici quelques exemples tirés de HTML 4.0 avec l'instruction de traitement correspondante :
<LINK href="mystyle.css" rel="style sheet" type="text/css"> <?xml-stylesheet href="mystyle.css" type="text/css"?> <LINK href="mystyle.css" title="Compact" rel="stylesheet" type="text/css"> <?xml-stylesheet href="mystyle.css" title="Compact" type="text/css"?> <LINK href="mystyle.css" title="Medium" rel="alternate stylesheet" type="text/css"> <?xml-stylesheet alternate="yes" href="mystyle.css" title="Medium" type="text/css"?>
Des instructions multiple de traitement xml-stylesheet
sont
également autorisées avec exactement les même sémantiques que LINK
REL="stylesheet"
. Par exemple,
<LINK rel="alternate stylesheet" title="compact" href="small-base.css" type="text/css"> <LINK rel="alternate stylesheet" title="compact" href="small-extras.css" type="text/css"> <LINK rel="alternate stylesheet" title="big print" href="bigprint.css" type="text/css"> <LINK rel="stylesheet" href="common.css" type="text/css">
devrait être équivalent à :
<?xml-stylesheet alternate="yes" title="compact" href="small-base.css" type="text/css"?> <?xml-stylesheet alternate="yes" title="compact" href="small-extras.css" type="text/css"?> <?xml-stylesheet alternate="yes" title="big print" href="bigprint.css" type="text/css"?> <?xml-stylesheet href="common.css" type="text/css"?>
Il y avait un besoin urgent d'une spécification pour le mécanisme de lien des feuilles de style qui pourrait être complété à temps pour la prochaine sortie des navigateurs principaux. En choisissant uniquement un mécanisme simple basé de façon proche sur un mécanisme existant pourrait permettre de compléter à temps la spécification en respect des exigences.
L'utilisation d'une instruction de traitement évite de polluer la structure du document principal par une information de traitement spécifique d'application.
Le mécanisme choisi pour cette version de la spécification n'est pas une contrainte pour les mécanismes supplémentairs prévus dans les versions futures. Il n'y a aucune attente quant à l'utilisation future des intructions de traitement ; en effet, elles peuvent ne pas inclure l'information de liens dans le document source.