[1] [[一般体系]]から[[派生]]した[[体系]]や[[文書型]]を作成する時は、 その [[DTD]] に[DFN[[RUBYB[一般体系宣言][General Architecture declaration]]]]を記述します。 といっても[[一般体系]]は[[体系]]の一種なので、 一般体系宣言とは単なる[[体系支援宣言]]です。 [2] 仕様書: -[[ISO/IEC 10744]]:1997 --[CSECTION[A.5.1 General Architecture Declaration Template]] --[CSECTION[A.5.8.1.1 Minimal General Architecture document]] [[#comment]] * 属性 [6] [[体系支援属性]]として、通常のものの他に[[体系選択肢]]属性が 2種類、独自の属性が1種類あります。 [7] '''共通要素属性の選択肢''': [DFN[[RUBYB[[[共通要素属性選択肢]]][common element attribute options]] ([CODE(SGMLa)[[[commatts]]]]) [[体系選択肢]]属性]]は、 [[共通要素属性]]に関する選択肢の有効・無効を制御します。 [[属性型]]は [CODE(SGML)[[[CDATA]]]] で、 [[字句型]]は [CODE(SGML)[[[csname]]+]] (制約: [[体系DTD]]内の[[引数実体]]の[[名前]]の[[並び]]) です。 指定された名前の[[引数実体]]の値が [CODE(SGML)[[[INCLUDE]]]] に設定されます。 指定できる値は [CODE(SGML)[[[dafe]]]], [CODE(SGML)[[[dvlist]]]], [CODE(SGML)[[[ireftype]]]], [CODE(SGML)[[[HyLex]]]], [CODE(SGML)[[[HyOrd]]]], [CODE(SGML)[[[lextype]]]], [CODE(SGML)[[[opacity]]]], [CODE(SGML)[[[REGEX]]]] です。元々[[一般体系]]の[[体系DTD]] では [CODE(SGML)[[[IGNORE]]]] になっているので、指定すれば有効、指定しなければ無効となります。 [7] '''共通データ属性の選択肢''': [DFN[[RUBYB[[[共通データ属性選択肢]]][common data attribute options]] ([CODE(SGMLa)[[[dcnatts]]]]) [[体系選択肢]]属性]]は、 [[共通データ属性]]に関する選択肢の有効・無効を制御します。 [[属性型]]は [CODE(SGML)[[[CDATA]]]] で、 [[字句型]]は [CODE(SGML)[[[csname]]+]] (制約: [[体系DTD]]内の[[引数実体]]の[[名前]]の[[並び]]) です。 指定された名前の[[引数実体]]の値が [CODE(SGML)[[[INCLUDE]]]] に設定されます。 指定できる値は [CODE(SGML)[[[altreps]]]], [CODE(SGML)[[[included]]]], [CODE(SGML)[[[superdcn]]]] です。元々[[一般体系]]の[[体系DTD]] では [CODE(SGML)[[[IGNORE]]]] になっているので、指定すれば有効、指定しなければ無効となります。 [8] '''複雑な模型群の使用''': [[ID即時参照要素型]] ([CODE(SGMLa)[[[ireftype]]]]) [[属性]]では [[SGML]] の[[模型群]]を使いますが、 簡単なものだけが使える場合と完全な [[SGML]] の[[模型群]]で可能なものが使える場合が設けられています。 どちらのモードかを指定するのが[DFN[[RUBYB[[[ID即時参照要素型SGML模型群]]][SGML model groups for ireftype]] ([CODE(SGMLa)[[[irefmodl]]]]) [[体系支援属性]]]]です。 属性の値は[[列挙型]]で [CODE(SGML)[[[SGMLmdl]]]] (完全な [[SGML]] の[[模型群]]が使用可能) と [CODE(SGML)[[[nSGMLmdl]]]] (簡単な[[模型群]]のみ使用可能) です。[[既定値]]は [CODE(SGML)[[[nSGMLmdl]]]] です。 [[#comment]] *関連 [9] [[一般体系]]を実装した[[体系機関]]は[[一般体系システム宣言]]を用意することになっていますが、 [WEAK[[[SGML宣言]]と[[システム宣言]]の関係のように]]一般体系宣言に丁度対応するもので、 ほとんど同じことを記述します。 [[#comment]] * 例 [3] 一般体系宣言の雛形が仕様書 [SRC[ISO/IEC 10744:1997 A.5.1]] にあります。 [4] また、[[最小適合一般体系文書]]用の一般体系宣言の例 [SRC[ISO/IEC 10744:1997 A.5.8.1.1]] もあります。 実際には例示されているものに加えて[[体系実体宣言]]が必要です。 [5] [CITE[ISO/IEC 10744 - C.2 HyTime Meta-Declarations]] [[一般体系]]から[[派生]]した [[HyTime]] の[[体系DTD]] です。 でもこれ、[[属性値指定]]の中で[[引数実体参照]]らしきものが使われているという非常に怪しい代物です。 [[一般体系]]側の選択肢を [[HyTime]] [[体系DTD]] を参照する側から制御可能にするために[[引数実体]]を使っているのだと思いますが・・・。 [[#comment]] * メモ