Copyright © 1999 W3C (MIT, INRIA, Keio), Všechna práva vyhrazena. W3C aplikuje pravidla na odpovědnost, obchodní značku, užívání dokumentu a licencování softwaru.
Tento dokument je překladem dokumentu „Associating Style Sheets with XML documents“ publikovaného organizací W3C na adrese http://www.w3.org/1999/06/REC-xml-stylesheet-19990629. Na dokument jsou uplatňována intelektuální práva, která dodržuji. I přes veškerou snahu může tento dokument obsahovat menší chyby způsobené překladem. Pokud nějaké nepřesnosti objevíte, kontaktujte autora, prosím.
Tento dokument umožňuje stylovým předpisům být asociovány s dokumenty XML zahrnutím jedné či více instrukcí xml-stylesheet v prologu dokumentu.
Tento dokument byl posuzován členy W3C Members a ostatními zainteresovanými stranami a potvrzen ředitelem jako doporučení W3C. Jde o stabilní dokumentu a může být používán jako referenční materiál nebo citován jako normativní reference z ostatních specifikací. Rolí W3C v tvorbě doporučení je přilákat pozornost na specifikaci a podporovat její všeobecný rozvoj. Toto zvyšuje funkcionalitu a interoperabilitu Webu.
Seznam známých chyb v této specifikaci najdete na adrese http://www.w3.org/1999/06/REC-xml-stylesheet-19990629/errata.
Komentáře k této specifikaci můžete zasílat do mailového listu www-xml-stylesheet-comments@w3.org. Archiv je dostupný na http://www.w3.org/Archives/Public/www-xml-stylesheet-comments.
Seznam současných doporučení W3C a ostatních technických dokumentů mžete najít na http://www.w3.org/TR.
Pracovní skupina očekává, že další mechanismy pro odkazování na stylové předpisy z dokumentů XML budou definovány v budoucích specifikacích.
Užití XML instrukce v této specifikaci nemůže být bráno jako precedent. W3C neočekává doporučení užití zpracovávající instrukce v žádné budoucí specifikaci. Sekce Důvody vysvětluje, proč bylo právě toto řešení použito ve specifikaci.
Tento dokument byl vytvořen jako součást W3C XML Activity.
xml-stylesheetStylové předpisy mohou být asociovány s XML [XML10] dokumenty užitím instrukce xml-stylesheet. Tato instrukce napodobuje chování element HTML 4.0 <link rel="stylesheet"> [HTML40].
Instrukce xml-stylesheet je parsována stejným způsobem jako počáteční tag s výjimkou, že jiné entity než předdefinované nesmí být odkazovány.
Následující gramatika je dána užitím stejné notace jako gramatika v doporučení XML [XML10]. Symboly v gramatice, které zde nejsou definovány, jsou definovány v doporučení XML.
[1] StyleSheetPI ::= '<?xml-stylesheet' (S PseudoAtt)* S? '?>' [2] PseudoAtt ::= Name S? '=' S? PseudoAttValue [3] PseudoAttValue ::= ('"' ([^"<&] | CharRef | PredefEntityRef)* '"' | "'" ([^'<&] | CharRef | PredefEntityRef)* "'") - (Char* '?>' Char*) [4] PredefEntityRef ::= '&' | '<' | '>' | '"' | '''
V PseudoAttValue, je CharRef nebo PredefEntityRef interpretována stejným způsobem jako v normální hodnotě XML atributu. Aktuální hodnota pseudo atributu je hodnota, kterou je nahrazena každá reference na znak, který referuje. Toto nahrazování není XML procesorem automaticky vykonáváno.
Instrukce xml-stylesheet je možné použít pouze v prologu XML dokumentu; instrukce xml-stylesheet je možné použít kdekoliv v prologu, pokud jsou dodrženy následující omezení.
Poznámka: Pokud se instrukce
xml-stylesheetvysvytuje v externí podmnožině DTD nebo v parametru entity, je možné, že nebude muset být zpracována nevalidujícím procesorem XML (více najdete ve specifikaci XML [XML10]).
Jsou definovány následující pseudo atributy:
href CDATA #REQUIREDtype CDATA #REQUIREDtitle CDATA #REQUIREDmedia CDATA #REQUIREDcharset CDATA #REQUIREDalternate (yes|no) "no"Sémantika těchto pseudo atributů je přesně stejná jako těch, které patří <link rel="stylesheet"> v HTML 4.0 s výjimkou pseudo atributu alternate. Pokud je specifikováno alternate="yes", potom má instrukce sémantiku <link rel="alternate stylesheet"> místo <link rel="stylesheet">.
Poznámka: Jelikož hodnota atributu
hrefje URI reference, může být relativní URI a může obsahovat fragment identifikátoru. Zvláště URI reference obsahuje pouze fragment identifikátoru. Taková reference URI je reference na část dokumentu obsahujícího instrukcixml-stylesheet([RFC2396]). Výsledkem je, že instrukcexml-stylesheetumožňuje stylovým předpisům být vloženy ve stejném dokumentu jako instrukcexml-stylesheet.
V některých případech mohu stylové předpisy být spojeny s XML dokumentem externě. Například dřívější verze HTTP [RFC2068] (sekce 19.6.2.4) umožňoval stylovým předpisům být asociovány pomocí hlavičky Link. Odkazy na stylové předpisy, které jsou specifikovány externě, jsou uvažovány k použití dříve než odkazy specifikované instrukcí xml-stylesheet. To je to samé jako v HTML 4.0 (podívejte se na sekce 14.6).
Zde je několik příkladů z HTML 4.0 s korespondující instrukcí:
<LINK href="mystyle.css" rel="stylesheet" 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"?>
Je možné použít více instrukcí xml-stylesheet se shodou sémantikou jako LINK REL="stylesheet". Např.:
<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">
by bylo ekvivalentní k:
<?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"?>
Byla zde urgentní potřeba specifikování odkazování na stylové předpisy, jež může být hotové v čase před vypuštěním nových verzí hlavních prohlížečů. Pouze zvolením jednoduchého mechanismu z založeného na prověřeném existujícím mechanismu mohlo umožnit specifikaci být hotové včas.
Užití instrukce zamezuje znečištění hlavní struktury s informacemi specifickými pro aplikace.
Mechanismus zvolený pro tuto verzi specifikace není vyloučen z přídavných mechanismů plánovaných pro budoucí verze. Mechanismus zvolený pro tuto verzi specifikace není omezením další mechanismy plánované pro budoucí verze. Neočekává se , že ty budou používat zpracovávací instrukce; naopak mohou zahrnout odkazující informací ve zdrojovém dokumentu.