[3] 整形式制約違反のうちのいくつか (例: 実体が宣言されていること >>14、解析対象実体 >>16、 再帰なし >>17) は、外部実体を読まないと検出できません。
[5] [内部部分集合中のパラメーター実体]: 内部 DTD 部分集合では、 パラメーター実体参照はマーク宣言が出現可能な場所にのみ出現可能であり、 マーク宣言の内部には出現できない。 (これは外部パラメーター参照や外部部分集合に出現する参照には適用しない。)
[6] [外部部分集合]: 外部部分集合は、
使用する場合には生成規則 extSubset
と一致しなければならない。
[8] [宣言間のパラメーター実体]: DeclSep
中のパラメーター実体参照の置換文は生成規則
extSubsetDecl
と一致しなければならない。
[9] [要素型名一致]: 終了タグの要素型名は開始タグの要素型名と一致しなければならない。
[10] [属性指定の一意性]: 同じ開始タグ又は空要素タグに複数個の同じ属性を指定してはいけない。
[11] [(属性値で) 外部実体への参照が無いこと]: 属性値は直接であれ間接であれ、 外部実体への参照を含めることはできない。
[12] [属性値に < を含まないこと]:
属性値中で直接又は間接に参照されている実体の置換文は
<
を含んでいてはいけない。
[13] [正当な文字]:
文字参照で参照される文字は生成規則 Char
に一致しなければならない。
[14] [実体が宣言されていること]:
standalone="yes"
の文書で、外部部分集合やパラメーター実体以外に出現する実体参照は、
その名前が外部部分集合やパラメーター実体中に出現しない実体
(ENTITY
) 宣言の名前と一致していなければならない
(但し amp
などを除く)。
一般実体の宣言は、 それが属性の既定値の宣言で参照される前になければなりません。
[15] >>14 なお、外部部分集合又は外部パラメーター実体で宣言された実体については、
妥当性を検証しない処理系はその宣言を必ずしも読んで処理する必要はありません。
そのような文書では、実体は宣言されていなければならないという規則は
standalone="yes"
の場合のみ適用されます。
[16] [解析実体]:
実体参照は非解析実体の名前を含んでいてはいけません。
非解析実体は ENTITY
又は ENTITIES
の属性値でのみ使えます。
[17] [(解析実体) 再帰なし]: 解析実体は直接又は間接に自身への参照を含んでいてはいけません。
[18] [(パラメーター実体参照は) DTD の中]: パラメーター実体参照は DTD の中でのみ使えます。
standalone="yes"
の場合を除いて、
その続きの実体宣言および属性並び宣言を処理してはいけません。
<http://www.w3.org/TR/REC-xml#dt-use-mdecl>standalone="yes"
の場合、処理しなければなりません。
<http://www.w3.org/XML/xml-V10-2e-errata#E47>[26] 多分、「妥当性を検証しない処理系は」ではなく、 「妥当性を検証しない処理系が外部実体を読まないときは」でしょうね。