著作権 © 1999 W3C (マサチューセッツ工科大学, フランス国立情報処理自動化研究所, 慶應義塾大学). すべての権利が留保されている。W3Cの免責(liability), 商標(trademark), 文書利用(document use), ソフトウェア使用許諾(software licensing)規則が適用される。
この文書は、xml-stylesheet
というターゲットをもつ1個以上の処理命令を文書のプロローグ部に組み込みことにより、スタイルシートをXML文書に結びつけることを可能にするものである。
この文書は、W3C会員およびその他の利害関係者により検討され、ディレクターによってW3C勧告(Recommendation)として公布されているものである。この文書は安定的な文書であり、参照素材として利用したり、他の文書から規範的参照としての引用に用いてもかまわない。勧告作成におけるW3Cの役割は、使用に対する注意を引き、その広範な配備を推進することにある。これはウェブの機能と相互運用性とを高めることである。
この仕様書[原文]の既知のエラーの一覧は http://www.w3.org/TR/1999/xml-stylesheet-19990629/errata で見ることができる。
この仕様書に関するコメントは <www-xml-stylesheet-comments@w3.org> へ送られたい。公開コメントのアーカイブは http://w3.org/Archives/Public/www-xml-stylesheet-comments で入手可能である。
現行のW3C勧告およびその他の技術文書の一覧は http://www.w3.org/TR で見ることができる。
ワーキンググループは、スタイルシートをXML文書にリンクするための機構が、追加的に将来の仕様書で定義されるものと期待する。
この仕様書におけるXML処理命令の利用は、先例としてとられるべきものではない。W3Cは、将来の仕様書における処理命令の利用を勧告するつもりはない。理屈で、この仕様書でなぜそれが使われたかの理由を説明している。
この文書は、W3C XMLアクティビティの一部として作成されたものである。
xml-stylesheet
処理命令
スタイルシートは、ターゲットが xml-stylesheet
である処理命令を使うことにより、XML[XML10]文書に結びつけることができる。この処理命令は、HTML 4.0 の <LINK REL="stylesheet">
[HTML40]の挙動に従う。
xml-stylesheet
処理命令は、開始タグと同じように解析される。ただし、定義済み実体以外の実体が参照されてはならないという例外がある。
以下の文法は、XML勧告[XML10]における文法と同じ表記法を使って与えられている。文法中ここで定義されていない記号は、XML勧告で定義されているものである。
[1] | StyleSheetPI | ::= | '<?xml-stylesheet' (S PseudoAtt)* S? '?>' | |
[2] | PseudoAtt | ::= | Name S? '=' S? PseudoAttValue | |
[3] | PseudoAttValue | ::= | ('"' ([^"<&] | CharRef | PredefEntityRef)* '"' | |
| "'" ([^'<&] | CharRef | PredefEntityRef)* "'") | ||||
- (Char* '?>' Char*) | ||||
[4] | PredefEntityRef | ::= | '&' | '<' | '>' | '"' | ''' |
PseudoAttValue において、CharRef または PredefEntityRef は、通常のXML属性値におけるのと同じ方式で解釈される。疑似属性の実際値は、各参照が参照先のキャラクタで置き換えられた後の値である。この置換は、XMLプロセッサにより自動的に実行されるものではない。
xml-stylesheet
処理命令は、XML文書のプロローグ部分でのみ認められる。XMLの文法は、処理命令がプロローグ部分のどこで認められるかにつき、制約を設けている。xml-stylesheet
処理命令は、プロローグ部分の中でこれらの制約に沿う場所ならばどこででも認められる。
註: xml-stylesheet
処理命令が外部DTDサブセットまたはパラメータ実体の中に出現する場合には、妥当性検証を行わないXMLプロセッサによって処理されない可能性がある。([XML10]を見よ。)
以下の疑似属性が定義されている。
href CDATA #REQUIRED type CDATA #REQUIRED title CDATA #IMPLIED media CDATA #IMPLIED charset CDATA #IMPLIED alternate (yes|no) "no"
疑似属性の意味は、HTML 4.0 の <LINK REL="stylesheet">
と全く同じであるが、alternate
疑似属性という例外がある。alternate="yes"
が指定されている場合には、その処理命令は <LINK REL="stylesheet">
の代わりに <LINK REL="alternate stylesheet">
の意味をもつのである。
註:href
属性の値はURI参照であるから、これは相対指定URIであってもよく、またフラグメント識別子を含んでいてもよい。とりわけ、URI参照がフラグメント識別子だけをないようとしていてもよいのである。そうしたURI参照は、そのxml-stylesheet
処理命令を包含している文書の一部への参照となる([RFC2396]を見よ)。その結果、xml-stylesheet
処理命令で、xml-stylesheet
処理命令と同じ文書の中にスタイルシートを埋め込むことが可能になる。
場合によっては、スタイルシートが、その文書にとって外部的な手段で、XML文書とリンクされることがある。たとえば、初期バージョンのHTTP[RFC2068] (section 19.6.2.4) は、Link
ヘッダという手段でスタイルシートをXML文書に結びつけることを認めていた。文書にとって外部的に規定されているスタイルシートへのリンクはどれも、xml-stylesheet
処理命令で指定されたリンクよりも前に出現するものとみなされる。これは、HTML 4.0 (section 14.6 を見よ。)と同じである。
こちらは、HTML 4.0 からの例に、対応する処理命令をつけたものである。
<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"?>
複数の xml-stylesheet
処理命令も、LINK REL="stylesheet"
と全く同じ意味論で認められる。たとえば、
<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">
ならば、つぎのものと等価である。
<?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"?>
主要ブラウザベンダーからの次リリースに間に合うよう完結できるスタイルシートリンクの仕様を求める緊急の要請があった。実証済みの既存のメカニズムに密接に基づいた単純なメカニズムを選ぶことによってしか、この要請を満たす時間内に仕様書を完成させることができなかったのである。
処理命令を使うことにより、主たる文書構造を、アプリケーション特有の処理情報で汚染することが避けられる。
このバージョンの仕様書のために選ばれたメカニズムは、将来のバージョンについて予定されている追加的なメカニズムを制約するものではない。これらが処理命令を利用するだろうという期待はない。実際のところ、リンク情報をソース文書の中に組み込まないかもしれないのである。