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