スタイルシートをXML文書に結びつける Version 1.0


W3C

スタイルシートをXML文書に結びつける
Version 1.0

W3C勧告 1999年6月29日

このバージョン[原文]:
http://www.w3.org/1999/06/REC-xml-stylesheet-19990629
最新のバージョン:
http://www.w3.org/TR/xml-stylesheet
以前のバージョン:
http://www.w3.org/TR/1999/xml-stylesheet-19990428
編集者:
James Clark <jjc@jclark.com>

概要

この文書は、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アクティビティの一部として作成されたものである。

目次

1 xml-stylesheet 処理命令

付録

A 参考資料
B 理屈

1 xml-stylesheet 処理命令

スタイルシートは、ターゲットが xml-stylesheet である処理命令を使うことにより、XML[XML10]文書に結びつけることができる。この処理命令は、HTML 4.0 の <LINK REL="stylesheet">[HTML40]の挙動に従う。

xml-stylesheet 処理命令は、開始タグと同じように解析される。ただし、定義済み実体以外の実体が参照されてはならないという例外がある。

以下の文法は、XML勧告[XML10]における文法と同じ表記法を使って与えられている。文法中ここで定義されていない記号は、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    ::=    '&amp;' | '&lt;' | '&gt;' | '&quot;' | '&apos;'

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"?>

A 参考資料

HTML40
World Wide Web Consortium. HTML 4.0 Specification. W3C Recommendation. http://www.w3.org/TR/REC-html40 を見よ。
RFC2068
R. Fielding, J. Gettys, J. Mogul, H. Frystyk Nielsen, T. Berners-Lee. Hypertext Transfer Protocol -- HTTP/1.1. IETF RFC 2068. http://www.ietf.org/rfc/rfc2068.txt を見よ。
RFC2396
T. Berners-Lee, R. Fielding, L. Masinter. Uniform Resource Identifiers (URI): Generic Syntax. IETF RFC 2396. http://www.ietf.org/rfc/rfc2396.txt を見よ。
XML10
World Wide Web Consortium. Extensible Markup Language (XML) 1.0. W3C Recommendation. http://www.w3.org/TR/1998/REC-xml-19980210 を見よ。

B 理屈

主要ブラウザベンダーからの次リリースに間に合うよう完結できるスタイルシートリンクの仕様を求める緊急の要請があった。実証済みの既存のメカニズムに密接に基づいた単純なメカニズムを選ぶことによってしか、この要請を満たす時間内に仕様書を完成させることができなかったのである。

処理命令を使うことにより、主たる文書構造を、アプリケーション特有の処理情報で汚染することが避けられる。

このバージョンの仕様書のために選ばれたメカニズムは、将来のバージョンについて予定されている追加的なメカニズムを制約するものではない。これらが処理命令を利用するだろうという期待はない。実際のところ、リンク情報をソース文書の中に組み込まないかもしれないのである。


どら猫本舗 (webmaster@doraneko.org)