[1] [DFN[[RUBYB[体系] [architeture]] DTD]] は、体系定義の宣言を集めたものです。 体系 DTD は、[[文書実現値]]内の体系物体の[[妥当性検証]]のために使用できますが、 体系物体以外 (他の体系に属する物体や、[[非体系的]]である物体) の検証はできません。 (当たり前。) 仕様書: ISO/IEC 10744:1997 A.3.2.1.2 [2] [[メタDTD]] = [[高次DTD]] = meta DTD ともいいますが、 ([[ISO/IEC 10744]]:1997 もそう呼んでいますが、) 数学や論理学でいう「メタ」とは意味的に異なっていて誤解を招くので「体系 DTD」 と呼ぶのがお勧めらしいです。 [3] 体系 DTD は、文書実現値を直接検証する普通の [[DTD]] と同じように [[SGML]] の[[マーク宣言]]を使って記述します。 構文的にも意味的にも、ほとんど同じです。 ただし適用対象が文書実現値の物体そのものではなく、 [[体系文書実現値]] (文書実現値を[[文書体系]]の定義によって変形したもの) となります。 [4] 体系や体系 DTD は、文書実現値を制約しますが、文書型定義は制約しません。ですから、ある基底体系から派生した体系で認められている構造が基底体系でも認められているとは限りません。逆に、派生体系で認められている構造はどうしても基底体系で認められないという状況すら可能です。 しかし、そのような状態が好ましくないことは確かです。 検証体系機関は任意選択でそのような状況にないかを検証してもよいことになっています。 ([[名無しさん]]) [5] 体系 DTD は、[[クライアント文書]]と同じ [[SGML宣言]]が適用されます。ただし、体系 DTD を参照する[[体系支援宣言]]に[[体系量集合]] (ArcQuant) 支援属性がある場合は、体系量集合属性の値が SGML の量集合引数に代えて用いられます。 仕様書: ISO/IEC 10744:1997 A.3.4.2 [6] ISO/IEC 10744:1997 の拡張を使った体系 DTD は、体系 DTD のできるだけはじめの方で、 拡張を使う以前に、 [SAMP(SGML)[]] と書かなければなりません。 (拡張を使っていない体系 DTD では必要ありません。) 仕様書: ISO/IEC 10744:1997 A.3.8.1 [7] 適合体系から[[派生]]した体系や文書は、 [[体系支援記法宣言]]に [PRE[ A base architecture used in conformance with the Architectural Form Definition Requirements of International Standard ISO/IEC 10744. ]PRE] と書くべき (should) です。 仕様書: ISO/IEC 10744:1997 A.3.8.2 [8] '''Conventional comment''': [[ISO/IEC 10744]]:1997 では [DFN@en[conventional comment]] と称して、[[体系的DTD]] の中に [[SGML]] [[DTD]] で記述できる以上の情報をある程度[[形式的]]に記述しています。 基本的には人間向けであって[[処理器]]が理解することは目的としていませんが、 その一部は[[検証]]のために機械処理することも想定されています。 詳しくは[[注釈]]の項を参照して下さい。 [8] '''任意選択機能の引数実体''': [[ISO/IEC 10744]]:1997 では、[[任意選択]]の[[機能]]について、 [[機能]]の[[名前]]と同じ[[名前]]の[[引数実体]]を[[宣言]]しています。 そしてその[[引数実体参照]]が[[マーク区間]]の[[状態]]の部分で使われています。 [[体系的DTD]] を使用する際に、その[[機能]]を有効にするなら [CODE(SGML)@en[[[INCLUDE]]]]、無効にするなら [CODE(SGML)@en[[[IGNORE]]]] を[[機能]]の[[名前]]と同じ[[引数実体]]として[[宣言]]して切換えできます。 仕様書: - [[ISO/IEC 10744]]:1997 --[CSECTION@en[5.8 Identification of optional facilities]] [9] 参照: [[体系支援宣言]]