1. 序論
◎非規範的作者は、~XML文書に包含されている情報を~UAがどう呈示するかについて,特定0の意図nを持つこともある。 この仕様は、処理命令を利用して, 1 個~以上の~stylesheet — すなわち,指定された言語に欲される具現化を指定する資源 — への~linkを与える、 `non-intrusive^en な仕組みを供する。 ~UAはこれらの資源を利用して~XMLの呈示を制御することになる。 ◎ Authors might have particular intentions as to how user agents are to present the information contained in their XML documents. This specification provides a non-intrusive mechanism, using a processing instruction, to provide links to one or more style sheets, i.e. resources specifying the desired rendering in a designated language. User agents will use these resources to control presentation of XML.
`link^e 要素により~stylesheetが結付けられた~XHTML文書について考える: ◎ Consider an XHTML document with style sheet associations using the link element:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
`link^e 要素を利用した例
◎
Example with link elements
</title>
<link rel="stylesheet" href="common.css"/>
<link rel="stylesheet" href="default.css" title="Default style"/>
<link rel="alternate stylesheet" href="alt.css" title="Alternative style"/>
<link rel="stylesheet" href="single-col.css" media="all and (max-width: 30em)"/>
</head>
<body>
...
</body>
</html>
この文書は、`~xml-stylesheet処理命令$を利用して次のようにも記せる: ◎ This document could be written as follows, using xml-stylesheet processing instructions:
<?xml-stylesheet href="common.css"?>
<?xml-stylesheet href="default.css" title="Default style"?>
<?xml-stylesheet alternate="yes" href="alt.css" title="Alternative style"?>
<?xml-stylesheet href="single-col.css" media="all and (max-width: 30em)"?>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
`xml-stylesheet^c 処理命令を利用した例
◎
Example with xml-stylesheet processing instructions
</title>
</head>
<body>
...
</body>
</html>
2. 適合性の要件
この仕様における[ 図式, 例, 注記 ], および明示的に “規範的でない” と記された節は、すべて規範的でないとする。 他のすべては規範的とする。 ◎ All diagrams, examples, and notes in this specification are non-normative, as are all sections explicitly marked non-normative. Everything else in this specification is normative.
この文書の規範的な部分を成す次に挙げる句は、 `RFC2119$r に述べるように解釈するとする(この仕様においては、これらの句は大文字では記されない) ⇒# 〜しなければナラナイ( `must^en ), 〜してはナラナイ( `must not^en ), 〜するベキである( `should^en ), 〜するベキでない( `should not^en ), 〜してもヨイ( `may^en ) ◎ The key words must, must not, should, should not and may in the normative parts of this document are to be interpreted as described in RFC 2119. These words do not appear in all uppercase letters in this specification. [RFC2119]
この仕様では、次に挙げる適合性~classが定義される: ◎ The following conformance classes are defined by this specification:
- 文書
- 文書は、[ この仕様において,文書に適用される “…ナラナイ” ~levelの判定基準 ]すべてを満たすならば,適合~文書と見なされる。 ◎ A document is considered to be a conforming document if it satisfies all must-level criteria in this specification that apply to documents.
- `~xml-stylesheet処理命令$とその疑似属性は、文書~作者からの利用が意図されている。 それは、それを包含している文書に適用するものとして可用になる[ ~stylesheetへの~linkとそれについての情報 ]を — ~xml-stylesheet処理命令 節に述べるように — 供する。 ◎ xml-stylesheet processing instructions and their pseudo-attributes are intended for use by document authors to provide links to and information about one or more stylesheets, as described in 4 The xml-stylesheet processing instruction, which are available to be applied to the containing document.
- ~xml-stylesheet処理器
- ~XMLでは、`応用$を[ `~XML処理器$から~XML文書の情報~内容を受取る~software~module ]として定義している。 `~xml-stylesheet処理器@ とは、そのような応用のうち,この仕様に則って~XML`処理命令$を処理するものを指す。 `XML$r ◎ XML defines an application as a software module which receives the information content of an XML document from an XML processor. [Definition: An xml-stylesheet processor is such an application which processes XML processing instructions in accordance with this specification.] [XML]
- [ この仕様において`~xml-stylesheet処理器$に適用される “…ナラナイ” ~levelの判定基準 ]をすべて満たす`~xml-stylesheet処理器$は、適合`~xml-stylesheet処理器$と見なされる。 `~xml-stylesheet処理器$には、文書に課される拘束を検査したり施行する必要はない。 ◎ An xml-stylesheet processor is considered to be a conforming xml-stylesheet processor if it satisfies all must-level criteria in this specification that apply to xml-stylesheet processors. xml-stylesheet processors do not have to check or enforce any of the constraints on documents.
- 応用
- `~xml-stylesheet処理器$は、より大きい~XML応用の一部を成していても, 独立に機能するものであってもヨイ。 いずれにせよ, `応用@ は、この仕様が定義する疑似属性~分析の消費器である。 ◎ An xml-stylesheet processor may be part of a larger XML application, or may function independently. In either case, [Definition: an application is the consumer of the pseudo-attribute analysis defined in this specification.]
- `~xml-stylesheet処理命令$が包含する情報を,`応用$がどう活用するかの詳細な仕様は、この文書の視野~外である — それは、応用ごとに変わるのが理に適うので。 よって,この仕様は、応用~向けには適合性の要件は設置しない。 ◎ A detailed specification of how applications exploit the information contained in xml-stylesheet processing instructions is out of scope for this document, as this may reasonably vary from application to application. Accordingly this specification places no conformance requirements on applications.
- しかしながら、~stylesheet言語の利用を統治する仕様が,応用が利用する~stylesheetをどう識別するか述べる際には、この仕様を参照するものと期待されている。 そのような仕様は、 ~xml-stylesheet処理命令 節による`疑似属性$の記述と可能な限り整合な仕方で,それら`疑似属性$用の値(またはその不在)に対する解釈を — 当の応用と~stylesheet言語にとってイミを成す限りまで — 指定するものと期待されている。 ◎ It is however expected that specifications governing the use of stylesheet languages will reference this specification in describing how applications may identify stylesheets for use. Such specifications are expected to specify interpretations for the values (or absense of value) of those pseudo-attributes which they make use of, doing so in a way that is as consistent as possible with those pseudo-attributes' descriptions in 4 The xml-stylesheet processing instruction, insofar as this makes sense for the application and stylesheet language(s) in question.
この仕様は、~XML情報~集合 `INFOSET$r が与える~XML語彙を基準に定義される。 ◎ This specification is defined with reference to the vocabulary for XML provided by the XML Information Set. [INFOSET]
この仕様の生成規則は、~XML仕様と同じ記法を利用する。 文法~内の~tokenのうち,この仕様が定義しないものは、~XML仕様に定義される。 `XML$r ◎ The productions in this specification use the same notation as used in the XML specification. Tokens in the grammar that are not defined in this specification are defined in the XML specification. [XML]
3. 疑似属性
`文字列から疑似属性を構文解析する規則@ は、この節で与えられる。 ◎ [Definition: The rules for parsing pseudo-attributes from a string are given in this section.]
`構文解析した結果@ は、`疑似属性$の集合になるか, または~errorになる。 ◎ [Definition: The parsing result is either a set of pseudo-attributes or an error.]
所与の文字列が `PseudoAtts$P 生成規則に合致しない場合、`構文解析した結果$は,~errorになるとする。 ◎ If the given string is not matched by the PseudoAtts production, the parsing result is an error.
疑似属性を伴う文字列~用の生成規則は、次で与えられる: ◎ Productions for strings with pseudo-attributes
- `PseudoAtts@P
- `PseudoAtt$P? (`S$P `PseudoAtt$P)* `S$P?
- `PseudoAtt@P
- `Name$P `S$P? "=" `S$P? `PseudoAttValue$P
- `PseudoAttValue@P
- ('"' ([^"<&] | `CharRef$P | `PredefEntityRef$P)* '"' | "'" ([^'<&] | `CharRef$P | `PredefEntityRef$P)* "'")
- `PredefEntityRef@P
- "&" | "<" | ">" | """ | "'"
`PseudoAtts$P 生成規則~内で `PseudoAtt$P に合致した各~文字列は、 `疑似属性@ を表現する。 各 `疑似属性$は、次のものからなる: ◎ [Definition: Each string matched by PseudoAtt in the PseudoAtts production represents a pseudo-attribute.] A pseudo-attribute has a name and a value.
- `名前@
- `PseudoAtt$P 生成規則~内で `Name$P に合致した文字列。 ◎ [Definition: The string matched by Name in the PseudoAtt production constitutes the name of the corresponding pseudo-attribute.]
- `値@
-
`PseudoAtt$P 生成規則~内で `PseudoAttValue$P に合致した文字列に,以下を適用した結果になる: ◎ [Definition: The string matched by PseudoAttValue in the PseudoAtt production — with the three modifications specified below — constitutes the value of the corresponding pseudo-attribute.]
- 文字列を成す各 `CharRef$P を、~XMLに則って,それぞれが表現する文字に置換する。 `XML$r ◎ Each CharRef is replaced with the character it represents according to XML [XML].
- 文字列を成す各 `PredefEntityRef$P を、次に示すように,それぞれに対応する文字に置換する ⇒# `&^l → `0026^U ; `<^l → `003C^U ; `>^l → `003E^U ; `"^l → `0022^U ; `'^l → `0027^U ◎ Each PredefEntityRef in PseudoAttValue is replaced with U+0026 (&) if it is "&", U+003C (<) if it is "<", U+003E (>) if it is ">", U+0022 (") if it is """ and U+0027 (') if it is "'".
- 文字列から最初と最後の文字(引用符)を除去する ◎ The first and last character (the start and end quotes) are removed.
次のいずれかに該当する場合、`構文解析した結果$は~errorになるとする: ◎ ↓
- いずれかの `CharRef$P が[ ~XMLによる 合法~文字( `Legal Character^en )整形式~拘束 ]に違反している `XML$r ◎ The parsing result is an error if the XML Legal Character well-formedness contraint is violated for any CharRef. [XML]
- 同じ`名前$の`疑似属性$が複数ある。 ◎ The parsing result is an error if there are more than one pseudo-attribute with the same name.
`構文解析した結果$が~errorでないならば、それが文字列が表現する`疑似属性$たちの集合を与える。 ◎ If the parsing result is not an error, then it is the set of pseudo-attributes represented when the given string is matched by the PseudoAtts production.
4. xml-stylesheet 処理命令
処理命令~情報項目が `~xml-stylesheet処理命令の候補@ であるとは、[ `target^ii ~prop `xml-stylesheet^c を持つ ]~AND[ ~OR↓ ]を満たすことをいう: ◎ [Definition: A processing instruction information item is said to be a potential xml-stylesheet processing instruction if\
- (1) [ 文書~情報項目の `children^ii ~prop内に現れる ]~AND[ 文書~情報項目の `children^ii ~propの要素~情報項目よりも前に現れる ] ◎ it has the [target] property xml-stylesheet and it either is in the [children] property of a document information item and appears before the element information item of the document information item's [children] property, or\
- (2) 文書~型~宣言~情報項目の `children^ii ~prop内に現れる ◎ it appears in the [children] property of a document type declaration information item.]
`~xml-stylesheet処理命令の候補$ `候補^V に対しては、`~xml-stylesheet処理器$は,[ `候補^V の `content^ii ~propを成す文字列に `文字列から疑似属性を構文解析する規則$を適用して`構文解析した結果$ ]を:
- `候補^V が前述の (1) に該当するならば、`応用$に報告しなければナラナイ。 ◎ For potential xml-stylesheet processing instructions that are in the [children] property of a document information item, xml-stylesheet processors must report to the application the parsing result of invoking the rules for parsing pseudo-attributes from a string, using the processing instruction information item's [content] property as the string.
-
`候補^V が前述の (2) に該当するならば、`応用$に報告してもヨイ。 `応用$に報告しなかった場合、 `候補^V は `無視された@ という。 ◎ For potential xml-stylesheet processing instructions that are in the [children] property of a document type declaration information item, xml-stylesheet processors may report to the application the parsing result of invoking the rules for parsing pseudo-attributes from a string, using the processing instruction information item's [content] property as the string. [Definition: If it is not reported to the application, the processing instruction information item is said to be ignored.]
注記: 非妥当性検証~XML処理器には[ ~parameter実体/外部~subset ]を読取ることは要求されていないので、[ ~parameter実体/外部~subset ]内に現れる処理命令は、文書~型~宣言~情報項目の `children^ii ~prop内には現れない場合もあり得る。 `XML$r ◎ Since non-validating XML processors are not required to read parameter entities or the external subset, it is possible that processing instructions that appear in parameter entities or the external subset will not be present in the document type declaration information item's [children] property. [XML]
`~xml-stylesheet処理命令の候補$のうち、次を満たすものが `~xml-stylesheet処理命令@ であるとされる ⇒ 処理命令~情報項目の `content^ii ~propの文字列に対し,`文字列から疑似属性を構文解析する規則$を適用して`構文解析した結果$は~errorでない ◎ [Definition: A potential xml-stylesheet processing instruction is said to be an xml-stylesheet processing instruction if the parsing result is not an error when invoking the rules for parsing pseudo-attributes from a string, using the processing instruction information item's [content] property as the string.]
文書は、[ `target^ii ~propが `xml-stylesheet^c であるにもかかわらず,`~xml-stylesheet処理命令$にならない処理命令~情報項目 ]を利用してはナラナイ。 ◎ Documents must not use processing instruction information items with the [target] property xml-stylesheet if they are not xml-stylesheet processing instructions.
文書は、文書~型~宣言~情報項目の `children^ii ~prop内には,`~xml-stylesheet処理命令$を利用するベキではない。 ◎ Documents should not use xml-stylesheet processing instructions that are in the [children] property of a document type declaration information item.
`~xml-stylesheet処理命令$は、次の生成規則に合致する: ◎ An xml-stylesheet processing instruction will match the following production: ◎ Production for xml-stylesheet processing instruction
- `StyleSheetPI@P
- "<?xml-stylesheet" ( (`S$P `PseudoAtts$P)? - (`Char$P* "?>" `Char$P*) ) "?>"
他が言明されない限り,文書は、`~xml-stylesheet処理命令$に,次に挙げる`疑似属性$を指定してもヨイ: ◎ Documents may specify the following pseudo-attributes on xml-stylesheet processing instructions, unless otherwise stated:
- `href@pa
- 参照先~stylesheetの~addressを与える。 この`疑似属性$は、指定されなければナラナイ。 `値$に設定する文字列は[ `RFC3987$r が与える `<IRI-reference>^P 用の構文 ]に合致しなければナラナイ。 ◎ Gives the address of the referenced style sheet. Documents must specify this pseudo-attribute. Documents must set the value to a string that matches the grammar for <IRI-reference> given in RFC 3987. [RFC3987]
-
注記: `~xml-stylesheet処理命令$の `href$pa `疑似属性$に素片~識別子を利用すれば、同じ文書~内にある~stylesheetを文書に結付けることもできる。 ◎ It is possible to associate a style sheet that is in the same document as the xml-stylesheet processing instruction by using just a fragment identifier in the href pseudo-attribute.
XSLT においてこれがどう管理されるかについては、 `XSLT$r の 埋込d~stylesheet~module 節を見よ。 ◎ For details on how this is managed in XSLT, see 3.11 Embedded Stylesheet Modules in [XSLT].
- `type@pa
- 参照先~stylesheetの助言的な~MIME型( `Internet media type^en )を与える。 指定する場合、`値$に設定する文字列は[ `RFC2616$r の "Media Types" 節に定義される `media-type^P 生成規則 ]に合致しなければナラナイ。 ◎ Gives an advisory media type for the referenced style sheet. If specified, documents must set the value to a string that matches the media-type production defined in section 3.7 "Media Types" of RFC 2616. [RFC2616]
- 注記: 上において要求される適合性は、生成規則による構文に限られる。 この仕様は、利用される~MIME型の位置付けに関する要件は課さない。 `text/xsl^c など,(この仕様の公表~時点で)登録-済みでない一部の~MIME型は,既存の実装からきちんと~supportされている一方、 `application/xslt+xml^c など,登録-済みである一部の~MIME型はそうでない。 ◎ Syntactic conformance to the production in RFC 2616 is all that is required by the above. This specification imposes no requirements with respect to the status of the types used. Some unregistered (as of the publication of this specification) media types, such as text/xsl, are well-supported by existing implementations, whereas some registered media types, such as application/xslt+xml, are not.
- `値$は,助言的であり、応用から利用されるのは,[ ~stylesheetの検索取得に際して,その~MIME型~情報の~sourceとして可用になるものが他にないとき ]に限られることが意図されている。 ◎ The value is advisory in that it is intended to be used by an application only when no other source of media type information becomes available during retrieval of the stylesheet itself.
- `title@pa
- 参照先~stylesheetの~titleを与える。 `値$には `PseudoAttValue$P 生成規則を超える拘束は課されない。 ◎ Gives the title of the referenced style sheet in a style sheet set. No constraints beyond those of the PseudoAttValue production are placed on the value.
- `media@pa
- 参照先~stylesheetの適用-対象になる媒体を与える。 指定する場合、`値$に設定する文字列は[ Media Queries 仕様 `MQ$r の `media_query_list^P 生成規則 ]に合致しなければナラナイ。 ◎ Gives the media for which the referenced style sheet applies. If specified, documents must set the value to a string that matches the media_query_list production of the Media Queries specification. [MQ]
- `charset@pa
- 参照先~stylesheetの助言的な文字~符号化法を与える。 指定する場合、`値$に設定する文字列は次に挙げるものでなければナラナイ ⇒ `IANA Character Sets registry^en において “`preferred MIME name^en” と記されている名前, またはその別名【 “`Name^en” または “`Alias^en” 】、あるいは そのような名前が無い場合は,その文字~符号化法の名前【( “`preferred MIME name^en” と記されていない) “`Name^en” 】 `IANACHARSET$r ◎ Gives an advisory character encoding for the referenced style sheet. If specified, documents must set the value to a valid character encoding name, which must be the name or alias labeled as "preferred MIME name" in the IANA Character Sets registry, if there is one, or the encoding's name, if none of the aliases are so labeled. [IANACHARSET]
- `値$が助言的であるとは,すなわち、応用がその値を利用するのは,~XML文書のときと同じく[ ~stylesheetの検索取得に際して,その符号化法~情報の~sourceとして可用になるものが他にないとき ],すなわち[ ~HTTP~headerを介して明示的に, あるいはその~MIME型を介して暗黙的に得られないとき ]に限られるものと意図されている。 ◎ The value is advisory in that it is intended to be used by an application only when no other source of encoding information becomes available during retrieval of the stylesheet itself, either explicitly via an HTTP header, or implicitly via its media type, as in the case of XML documents.
- `alternate@pa
- `値$が `yes^l の場合、参照先~stylesheetは代替~stylesheetであることを指示する。 この場合、`値$が空でない `title$pa `疑似属性$も指定されなければナラナイ。 指定する場合、`値$に設定する文字列は[ `yes^l / `no^l ]でなければナラナイ。 ◎ If the value is "yes", it indicates that the referenced style sheet is an alternative style sheet, and documents must also specify the title pseudo-attribute with a non-empty value. If specified, documents must set the value to either "yes" or "no".
`~xml-stylesheet処理命令$に、他の`疑似属性$が設定されてはナラナイ。 ◎ Documents must not specify other pseudo-attributes on xml-stylesheet processing instructions.
文書の外部として指定される~stylesheetを指す~linkによる結付け(例:~HTTP `Link^h ~headerによるそれ)は、`~xml-stylesheet処理命令$により指定される結付けよりも前に生じるものと見なされる。 各~結付けを取り入れるかどうか, それらの順序がどう処理に影響するかを決定することは、`応用$が担当する。 ◎ Any links to style sheets that are specified externally to the document (e.g. Link headers in some versions of HTTP [RFC2068]) are considered to create associations that occur before the associations specified by the xml-stylesheet processing instructions. The application is responsible for taking all associations and determining how, if at all, their order affects its processing.
第 1 版からの変更点
◎非規範的この仕様の第 1 版は,概要としては十分であったが、多くの詳細は言明されていなかった。 この第 2 版は、それを埋めることを目指す一方で,疑似属性~構成子を独立に引用したり再利用できるよう,呈示を再構成している。 ◎ The first edition of this specification was admirably brief, but at the same time left many details unstated. This second edition aims to fill the gaps left in the first edition, while restructuring the presentation to provide for independent citation and re-use of the pseudo-attribute construct.
`xml-stylesheet^c 処理命令の構文や意味論については、上述した再構成を超える変更は加えられていない。 処理器に対する適合性の拘束は、[ 内部/外部~subsetの中の `xml-stylesheet^c 処理命令 ]は無視してもヨイものと,少し緩められた。 ◎ Neither the syntax nor the semantics of the xml-stylesheet processing instructions have been changed, beyond the restructuring just mentioned. Conformance constraints on processors have been eased slightly, in that xml-stylesheet processing instructions occurring within the internal or external subset may be ignored.
主な変更点を以下に挙げる: ◎ The following list identifies the major changes which have been made:
- 第 1 版で利用されていたが定義されてはいなかった,いくつかの用語の定義を供した。 ◎ Provided definitions for a number of terms used but not defined in the first edition;
- 適合性の節を追加して、第 1 版では暗黙的であった,処理器に対する適合性と文書に対する適合性が判別されるようにした。 ◎ Added a conformance section, distinguishing between processor and document conformance, all of which was implicit in the first edition;
- 第 1 版では[ 要素の開始~tagの処理と並行するものと暗黙的に示されていた,~error事例 ]のいくつかは、識別され,処理器に期待される挙動が指定された。 ◎ Identified a number of error cases, which were implicit in the first edition's appeal to the parallel with element start tag processing, and specified expected processor behaviour;
- 配備-済みな処理器の挙動が認知される中、 `xml-stylesheet^c 処理命令は,文書~情報項目の `children^ii 内にあるものを除き 無視できるものとされた。 ◎ In recognition of deployed processor behaviour, allowed xml-stylesheet processing instructions to be ignored unless they are among the [children] of the document information item;
- 参照文献をいくつか追加して, HTML 4.0 への明示的な依存を除去した — HTML 4.0 における利用と整合しつつ現況に合う,各 疑似属性の意味の記述を追加することにより。 ◎ Added a number of references, but removed the explicit dependence on the HTML 4.0 specification by adding descriptions of the meanings of each of the pseudo-attributes consistent with their HTML 4.0 use but brought up-to-date;
- すでに現況に合わない前提を包含していた(規範的でない)“`Rationale^en” 節は、除去された。 ◎ Removed the (non-normative) Rationale section, as it contained a number of out-of-date assumptions;
- `type$pa 疑似属性は、 既存の正誤表 に一致するよう,任意選択にされた。 ◎ Made the type pseudo-attribute optional, as agreed by existing erratum.