Autor: Sebastian Snopek
Lokalizacja: http://www.t4tw.info/tlumaczenia/tlumaczeniaAssociating/tlumaczeniaAssociating.htm
Dokument ten jest tłumaczeniem rekomendacji W3C Associating Style Sheets
with XML documents
Version 1.0. Przekład ten nie jest przekładem normatywnym i może zawierać
błędy wynikające z tłumaczenia. Status normatywny posiada jedynie wersja w
języku angielskim na stronie W3C http://www.w3.org/1999/06/REC-xml-stylesheet-19990629.
Dokument jest chroniony prawem autorskim. Copyright © 2004 W3C®
(MIT, ERCIM, Keio).
Copyright Š 1999 W3C (MIT, INRIA, Keio ), Wszelkie prawa zastrzeżone. W3C stosuje następujące zasady dotyczące odpowiedzialności cywilnej, znaku towarowego, używania dokumentu oraz licencji oprogramowania.
Ten dokument pozwala arkuszowi stylów na łączenie z dokumentem XML poprzez
zawarcie jednej bądź wielu instrukcji przetwarzania z
obiektem docelowym xml-stylesheet w prologu dokumentu.
Ten dokument został omówiony przez Członków W3C i inne zainteresowane strony, a także został zatwierdzony przez Dyrektora jako Rekomandacja W3C. Jest to stały dokument i może być używany jako wzorzec lub cytowany jako odnośnik normatywny z innego dokumentu. Rola W3C podczas tworzenia rekomendacji polega na zwróceniu uwagi na specyfikację oraz promocję jego rozwoju. Zwiększa to funkcjonalność i interoperacyjność sieci internetowej.
Lista znanych błędów w tej specyfikacji jest dostępna na http://www.w3.org/TR/1999/xml-stylesheet-19990629/errata.
Komentarze dotyczące tej specyfikacji można zgłaszać do <www-xml-stylesheet-comments@w3.org>. Archiwum publicznych komentarzy jest dostępne na http://w3.org/Archives/Public/www-xml-stylesheet-comments.
Listę bieżących Rekomendacji W3C oraz innych technicznych dokumentów można znaleźć na http://www.w3.org/TR.
Grupa Robocza spodziewa się, że w przyszłej specyfikacji zostaną zdefiniowane dodatkowe mechanizmy łączenia arkuszy stylów z dokumentem.
Użycie instrukcji przetwarzania XML w tej specyfikacji nie powinno być traktowane jako nadrzędne. W3C nie przewiduje rekomendowania użycia instrukcji przetwarzających w żadnej przyszłej specyfikacji. Uzasadnienie tłumaczy dlaczego zostały użyte w tej specyfikacji.
Ten dokument został stworzony jako część Działania W3C XML.
xml-stylesheetArkusze Stylów mogą zostać powiązane z dokumentem XML [XML10]
poprzez instrukcję przetwarzania, której obiektem docelowym
jest xml-stylesheet. Powyższa instrukcja przetwarzania
zachowuje się jak w HTML 4.0 <LINK REL="stylesheet">[HTML40].
Instrukcja przetwarzania xml-stylesheet jest parsowana w taki
sam sposób jak "start-tag", wyjątek stanowią encje inne od encji predefiniowanych,
które nie mogą posiadać odwołań.
Następująca gramatyka jest podana poprzez użycie tej samej notacji jak gramatyka w Rekomendacji [XML10]. Symbole w gramatyce, które nie są tutaj zdefiniowane, zostały zdefiniowane w Rekomendacji XML.
| [1] | StyleSheetPI | ::= | '<?xml-stylesheet' (S PseudoAtt)* S? '?>' | |
| [2] | PseudoAtt | ::= | Name S? '=' S? PseudoAttValue | |
| [3] | PseudoAttValue | ::= | ('"' ([^"<&] | CharRef | PredefEntityRef)* '"' | |
| | "'" ([^'<&] | CharRef | PredefEntityRef)* "'") | ||||
| - (Char* '?>' Char*) | ||||
| [4] | PredefEntityRef | ::= | '&' | '<' | '>' | '"' | ''' |
W PseudoAttValue, CharRef lub PredefEntityRef jest interpretowane w ten sam sposób jak przy normalnej wartości atrybutu XML. Rzeczywista wartość "pseudo-attribute" jest wartością, po której każde odwołanie jest zastępowane przez znak do którego się odwołuje.To zastąpienie nie jest wykonywane automatycznie przez procesor XML.
Przetwarzanie instrukcji xml-stylesheet jest dozwolone w prologu
dokumentu XML. Składnia XML ogranicza to, gdzie instrukcje przetwarzania są
dozwolone w prologu, instrukcja przetwarzania xml-stylesheet jest
dozwolona wszędzie w prologu, który spełnia te ograniczenia.
UWAGA: Jeżeli instrukcja przetwarzania xml-stylesheet
pojawia się w zewnętrznym podzbiorze DTD lub w encji parametrycznej, jest możliwe,
że nie zostanie przetworzoną przez niewalidujący procesor XML (zobacz [XML10]).
Następujące "pseudo attributes" są zdefiniowane
href CDATA #REQUIRED type CDATA #REQUIRED title CDATA #IMPLIED media CDATA #IMPLIED charset CDATA #IMPLIED alternate (yes|no) "no"
Semantyki "pseudo-attributes" są dokładnie takie jak w przypadku
<LINK REL="stylesheet"> w HTML 4.0, z wyjątkiem "pseudo-attribute"
- alternate . Jeżeli alternate="yes" jest określone,
wtedy instrukcja przetwarzania ma symantykę <LINK REL="alternate stylesheet">
zamiast <LINK REL="stylesheet">.
UWAGA: Ponieważ wartość atrybutu
hrefjest referencją URI, może to być relatywny URI oraz może zawierać identyfikator fragmentu. W określonym wypadku referencja URI może zawierać tylko identyfikator fragmentu. Taka referencja URI jest odwołaniem do części dokumentu zawierającej instrukcję przetwarzaniaxml-stylesheet(zobacz [RFC2396]). Konsekwencją jest to, że instrukcja przetwarzaniaxml-stylesheetpozwala arkuszom stylów na bycie umieszczonymi w tym samym dokumencie co instrukcja przetwarzaniaxml-stylesheet.
W niektóryh przypadkach, arkusze stylów mogą być połączone z dokumentem XML
zewnętrznie do tego dokumentu. Na przykład, wcześniejsze
wersje HTTP [RFC2068] (sekcja 19.6.2.4) pozwalały arkuszom
stylów na powiązanie z dokumentami XML poprzez Link header. Wszystkie
linki do arkuszy stylów określone zewnętrznie do dokumentu pojawiają się przed
linkami określonymi przez instrukcję przetwarzania xml-stylesheet.
Tak samo jak w HTML 4.0 (zobacz sekcja
14.6).
Tutaj znajduje się kilka przykładów z HTML 4.0 z odpowiednią instrukcją przetwarzania:
<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"?>
Wielokrotne instrukcje przetwarzania xml-stylesheet
są dozwolone z dokładnie tą samą semantyką jak w przypadku
LINK REL="stylesheet".
Na przykład:
<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">
będzie ekwiwalentne z:
<?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"?>
Była pilna potrzeba specyfikacji do łączenia arkuszy stylów, która mogłaby być skończona na czas, przed wypuszczeniem na rynek nowych wersji przeglądarek. Tylko poprzez wybór prostego mechanizmu podobnego do już sprawdzonych istniejących mechanizmów można było sprostać powyższej potrzebie i ukończyć tę specyfikację na czas.
Użycie instrukcji przetwarzania pozwala na uniknięcie zanieczyszczenia głównej struktury dokumentu poprzez przetwarzanie informacji odnoszącej się do konkretnego programu.
Mechanizm wybrany dla tej wersji specyfikacji nie stanowi ograniczenia dodatkowych mechanizmów planowanych w przyszłych wersjach. Nie oczekuje się, że te mechanizmy będą używały instrukcji przetwarzania; faktycznie mogą one nie zawierać łączącej informacji w dokumencie źródłowym.