Copyright © 1999 W3C (MIT, INRIA, Keio ), Tots els drets reservats. Són aplicables les normes del W3C sobre responsabilitat, marca enregistrada, ús de documents i llicència de software.
Aquest document permet associar una fulla d'estils a un document XML mitjançant la inclusió d'una o més instruccions de processament apuntant a una xml-stylesheet en el pròleg del document.
Aquest document ha estat revisat per membres del W3C i altres parts interesades i ha estat aprovada pel Director com Recomanació del W3C. Aquest és un document estable i pot usar-se com material de referència o citar-se com referència normativa des d'altres documents. La intenció del W3C al fer una Recomanació és cridar l'atenció sobre l'especificació i promoure la seva difusió generalitzada. Això incrementa la funcionalitat i interoperabilitat de la Web.
La llista d'errors coneguts en aquesta especificació està disponible en: http://www.w3.org/TR/1999/xml-stylesheet-19990629/errata.
Els comentaris sobre aquesta especificació poden enviar-se a: <www-xml-stylesheet-comments@w3.org>. L'arxiu de comentaris públics està disponible en: http://w3.org/Archives/Public/www-xml-stylesheet-comments.
Pot trobar-se una llista de les Recomanacions actuals del W3C i d'altres documents tècnics en: http://www.w3.org/TR.
El Grup de Treball espera que es defineixin, en una especificació futura, mecanismes addicionals per a enllaçar fulles d'estil amb un document XML.
L'ús d'instruccions de processament XML en aquesta especificació no deu prendre's com precedent. El W3C no preveu recomanar l'ús d'instruccions de processament en cap especificació futura. El Fonament explica per què han estat usades en aquesta especificació.
Aquest document ha estat produït com part de la W3C XML Activity.
1 La instrucció de processament de xml-stylesheet
xml-stylesheetLes Fulles d'Estil (CSS) poden associar-se amb un document XML [XML10] utilitzant una instrucció de processament que apunt a una xml-stylesheet. Aquesta instrucció de processament segueix el comportament de el <link rel="stylesheet"> d'HTML 4.0 [HTML40].
La instrucció de processament xml-stylesheet és analitzada de la mateixa manera que una "start-tag", amb l'excepció que les entitats distintes a les entitats definides amb anterioritat no deuen ser referides.
La següent gramàtica usa la mateixa notació que la gramàtica en la Recomanació XML [XML10]. Els símbols de la gramàtica que no es defineixen aquí, estan definits en la Recomanació XML.
xml-stylesheet[1] |
StyleSheetPI |
::= |
'<?xml-stylesheet' (S PseudoAtt)* S? '?>' |
[2] |
PseudoAtt |
::= |
Name S? '=' S? PseudoAttValue |
[3] |
PseudoAttValue |
::= |
('"' ([^"<&] | CharRef | PredefEntityRef)* '"' |
| "'" ([^'<&] | CharRef | PredefEntityRef)* "'") |
|||
- (Char* '?>' Char*) |
|||
[4] |
PredefEntityRef |
::= |
'&' | '<' | '>' | '"' | ''' |
A PseudoAttValue, un CharRef o una PredefEntityRef s'interpreten de la mateixa manera que en un valor d'atribut XML normal. El valor real del seudo-atribut és el valor després de cada referència, que és reemplaçat pel caràcter que referència. Aquest reemplaçament no es porta a terme automàticament per un processador.
La instrucció de processament xml-stylesheet només està permesa en el pròleg d'un document XML. La sintaxi XML limita la col·locació d'instruccions de processament en el pròleg, la instrucció de processament xml-stylesheet està permesa en qualsevol part del pròleg que es trobi dintre d'aquestes limitacions.
Nota: Si la instrucció de processament
xml-stylesheetapareix en el subconjunt d'una DTD o en una entitat del paràmetre, és possible que no sigui processada per un processador que no validi XML (veure [XML10]).
Els següents seudo-atributs estan definits:
href CDATA #REQUIRED type CDATA #REQUIRED title CDATA #IMPLIED media CDATA #IMPLIED charset CDATA #IMPLIED alternate (yes|no) "no"
El significat dels seudo atributs és exactament el mateix que en <link rel="stylesheet"> en HTML 4.0, amb l'excepció del seudo atribut alternate. Si alternate="yes" està especificat, aleshores la instrucció de processament té el significat de <link rel="alternate stylesheet"> en comptes de <link
rel="stylesheet">.
NOTA: Degut al fet que el valor de l'atribut
hrefés una referència URI, pot ser un URI relatiu i pot contenir un fragment identificador. En particular la referència URI pot contenir només un identificador del fragment. Tal referència URI és una referència a una part del document que conté la instrucció de processamentxml-stylesheet(veure [RFC2396]). La conseqüència és que la instrucció de processamentxml-stylesheetpermet incrustar les fulles d'estil en el mateix document com laxml-stylesheetque processa la instrucció.
En alguns casos, les fulles d'estil poden enllaçar-se amb un document XML sent externes al document. Per exemple, les primeres versions de HTTP [RFC2068] (secció 19.6.2.4) permiten asociar hojas de estilo con documentos XML por medio de Link en l'encapçalat. Qualsevol enllaç a fulles d'estil que sigui especificat externament al document es considera que ocorre abans dels enllaços especificats per les instruccions de processament xml-stylesheet. Això és igual en HTML 4.0 (veure secció 14.6).
A continuació alguns exemples d'HTML 4.0 amb la corresponent instrucció de processament:
<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"?>
Es permeten múltiples instruccions de processament xml-stylesheet amb exactament la mateixa semàntica com amb LINK REL="stylesheet". Per 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">
Seria equivalent a:
<?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"?>
Havia un requeriment urgent de tenir una especificació per a enllaçar fulles d'estil, que pogués estar acabada a temps per al següent llançament dels principals venedors de navegadors. Només escollint un mecanisme simple, estretament basat en un mecanisme existent ja provat, podria acabar-se l'especificació a temps per a complir amb aquest requeriment.
L'ús d'una instrucció de processament evita contaminar l'estructura principal del document, amb l'aplicació d'informació específica de processament.
El mecanisme escollit per a aquesta versió de l'especificació, no és una limitació en els mecanismes addicionals planejats per a les versions futures. No hi ha cap expectativa que elles vagin a usar instruccions de processament, de fet poden no incloure la informació enllaçada en el codi font del document.