[3] [DFN[[RUBYB[体系使用宣言処理指令][architecture use declaration processing instruction]]]] ([DFN[[CODE(SGML)[arch]]]] 処理指令) は、 [[体系使用宣言]]の[[処理指令]]版です。[[データ属性指定]]が使用できない [[XML]] で[[体系]]を使用するために使用されています。 * 仕様 [1] = [CITE[ISO/IEC JTC 1/WG N1957 ISO/IEC 10744 Amendment 1]] (1997年12月4日) = [CITE[ISO/IEC JTC1/WG4 N1969 Summary of Voting on Document JTC 1 N 5123, Text for PDAM to ISO/IEC 10744, Information technology - Hypermedia/Time-based Structuring Language (HyTime)]] (1998年4月23日): N1957 の投票結果 = [CITE[ISO/IEC JTC 1/WG N1979 Disposition of comments to HyTime Amendment 1 ballot]] (1998年5月15日): N1969 への返答 = [CITE[ISO/IEC JTC 1/WG N1980 Editing Instructions for Ammendment 1 to ISO/IEC 10744:1997 (HyTime):]] (1998年5月15日) = [CITE[ISO/IEC JTC 1/WG N1985 ISO/IEC 10744 Amendment 1]] (1998年5月15日): N1957 の改訂版 [2] - [CITE[HyTime Tutrl]] - [CITE[Secretariat Manager's Interim Report]] によれば、 Amd.1 の project は cancel されてしまっているようです。 [[#comment]] * 構文 [5] 体系使用宣言処理指令は、 N1985 では次のように定義されています。 - [CODE(ABNF)[[DFN[体系使用宣言処理指令]] := [CODE(SGML)[[[pio]]]] 'IS10744' 1*[[ps]] 'arch' [[属性指定並び]] [CODE(SGML)[[[pic]]]]]] N1957 では、 - [CODE(ABNF)[[DFN[体系使用宣言処理指令]] := [CODE(SGML)[[[pio]]]] 'IS10744' (":" / 1*[[ps]]) 'arch' [[属性指定並び]] [CODE(SGML)[[[pic]]]]]] と定義されていました。しかし、 [CODE(char)[:]] は [CODE(ABNF)[[[NCName]]]] で使えないので [[XML名前空間]]的にまずいため (という理由でしょう)、 削除されています。 (ところが実際に使われている文書は [CODE(char)[:]] のものがかなりあり (例: [[XHTML m12n]])、 XML 名前空間な環境下で問題になっています。) [6] 体系使用宣言処理指令は、[[記法]]や[[データ属性]]が使用できないときに、 [[体系使用宣言]]の代わりに使うことができます。 [7] 体系使用宣言処理指令は、 [[SGML文書]]の[[前書き]]に書くことができます。 ([[文書型宣言]]や[[連結型宣言]]の内部を含みます。) ある[[体系]]に関する宣言が複数ある場合は、最初のものが使われます。 体系使用宣言処理指令を使う場合は、[[体系基底宣言]]を省略できます。 [12] [CODE[IS10744]] や [CODE[arch]] や属性指定並びの部分は、 使用している[[具象構文]]の影響を受けるのでしょうか? (そうだとすると、[[規格参照量集合]]などを使っているとすべての属性を指定することができなくなります。) [[#comment]] ** 属性 [8] 体系使用宣言処理指令には、次の属性を指定します。 [[体系記法宣言]]相当: :[CODE(SGMLa)[[[name]]]]:[[体系名]] :[CODE(SGMLa)[[[public-id]]]]:[[体系仕様文書]]の[[公開識別子]] [[体系実体宣言]]相当: :[CODE(SGMLa)[[[dtd-public-id]]]]:[[体系的DTD]] の[[公開識別子]] :[CODE(SGMLa)[[[dtd-system-id]]]]:[[体系的DTD]] の[[システム識別子]] [[体系支援属性]]相当: :[CODE(SGMLa)[[[form-att]]]]:[[体系的形式属性名]] :[CODE(SGMLa)[[[renamer-att]]]]:[[体系的属性改名子属性名]] :[CODE(SGMLa)[[[suppressor-att]]]]:[[体系抑制子属性名]] :[CODE(SGMLa)[[[ignore-data-att]]]]:[[体系無視データ属性名]] :[CODE(SGMLa)[[[doc-elem-form]]]]:[[体系文書要素形式名]] :[CODE(SGMLa)[[[bridge-form]]]]:[[体系橋梁形式名]] :[CODE(SGMLa)[[[data-form]]]]:[[体系データ形式名]] :[CODE(SGMLa)[[[auto]]]]:[[体系自動形式写像]] :[CODE(SGMLa)[[[options]]]]:[[体系選択肢支援属性名]] :[CODE(SGMLa)[[[quantity]]]]:[[体系量集合]] ([[属性値]]は[[量名]]と[[数]]の組でなければなりません。) 仕様書上は明確ではありませんが、体系支援属性定義並び宣言同様、 体系ごとの独自の体系支援属性も同様に指定できるようです。 [[#comment]] * 実装 [4] XML に対応した各種の体系処理器が、体系使用宣言処理指令にも対応しているようです。 [[#comment]] * 例 [9] [[Topic Maps]] を使用する場合 [SRC[[[ISO/IEC 13250]]:2000]] [PRE(XML deprecated example)[ ]PRE] この例は、次の[[体系使用宣言]]と同等です。 [PRE(SGML example)[ ]PRE] [10] [[ISO-HTML]] を使用する場合 [SRC[[[ISO/IEC 15445]]:2000]] [PRE(SGML example)[ ]PRE] [11] [[XHTML 1]] を使用する例 [SRC[[[XHTML m12n]] DTD 実装]] [PRE(XML illegal example)[ ]PRE] [CODE(SGMLa)[name]] が[[属性]]になっていませんが、 古い案ではこういう構文だったこともあるのでしょうか? [CODE(XMLa)[HtModReq]] 属性と [CODE(XMLa)[HtModOpt]] 属性は、 [[体系選択肢支援属性名]] ([CODE(XMLa)[options]]) [[属性]]に書かれている通り、 [[XHTML m12n]] 独自の[[体系選択肢]][[属性]]です。 但し、 [[XHTML m12n]] では [SAMP(SGML)[Text]] のような[[名前]]の[[引数実体]]を使っていませんから、 こんなので意味があるのかどうか。 [[#comment]] * メモ