本家「@IT」にはない内容をエンジニアライフで技術紹介するコラム。広く議論する場になることを目指します。

第047回_intSubset

»
ExternalIDについては説明をあとにしてintSubsetについて解説していきます。

intSubset/internal subsetのW3Cの勧告内容

今回はintSubsetlについて議論しますが、特に実装はありません。

W3Cの勧告からみていきましょう。
----W3C勧告----
2.8 Prolog and Document Type Declaration
・・・
[28b] intSubset ::= ( markupdecl | DeclSep )*
・・・
Parameter entity references are recognized anywhere in the DTD (internal and external subsets and external parameter entities), except in literals, processing instructions, comments, and the contents of ignored conditional sections (see 3.4 Conditional Sections). They are also recognized in entity value literals. The use of parameter entities in the internal subset is restricted as described below.
・・・
Well-formedness constraint: PEs in Internal Subset
In the internal DTD subset, parameter-entity references must not occur within markup declarations; they may occur where markup declarations can occur. (This does not apply to references that occur in external parameter entities or to the external subset.)
----W3C勧告----
----日本語訳----
2.8 プロローグと文書型宣言
・・・
[28b] intSubset ::= ( markupdecl | DeclSep )*
・・・
パラメータ実体の参照は
リテラル、処理命令、コメント、条件付セクション(3.4 条件付セクションを参照)で無視するものを除いた、DTDの中で、
どこでも認識する。実体値リテラルの中でも認識する。内部サブセットの中におけるパラメータ実体の使用は、後述するように制限がある。
・・・
整形式性制約: 内部サブセットの中のパラメータ実体
内部サブセットの中では、パラメータ実体の参照はマークアップ宣言の中に出現してはならない。内部サブセットの中では、パラメータ実体の参照はマークアップ宣言が現れる場所に出現して良い。(これは、外部パラメータ実体や外部サブセットの中に出現する参照については適用しない。)
----日本語訳----

intSubset/internal subsetの仕様整理

呼び方
intSubsetは、internal subset を指します。日本語では内部サブセットと呼びます。

生成規則
生成規則は、
 intSubset ::= ( markupdecl | DeclSep )*
です。

内部サブセットの立ち位置
内部サブセットはDOCTYPE宣言の中で定義するDTDを示します。生成規則から判るとおり、任意の数のマークアップ宣言(markupdecl)と(マークアップ)宣言間のパラメータ実体(DeclSep)を定義することができます。
# マークアップ宣言とパラメータ実体は別の回に説明します。

内部サブセット内のパラメータ実体の参照の記載できる位置
内部サブセット内でパラメータ実体の参照を記載できる位置は、
 (マークアップ)宣言間のパラメータ実体(DeclSep)

 実体値リテラルの中
です。
別の回で説明しますが、外部サブセットや外部パラメータ実体の中ではマークアップ宣言の特定の位置にも記載できます。
Comment(0)

コメント

コメントを投稿する