XML//妥当性制約

妥当性制約

[1]

妥当性制約 (だとうせいせいやく) (validity constraint)
[定義: すべての妥当XML文書に適用される規則。妥当性制約への違反は誤りとする。妥当性検証するXML処理器は、利用者の任意選択により、これを報告しなければならない。]
出典: <IW:XML1:"#dt-vc">

一覧

名前対象
>>2根要素型文書実体
>>3宣言引数実体が適切に入れ子になっていることDTD
>>4単独文書宣言文書実体
>>5要素妥当文書実現値
>>6属性値型文書実現値
>>7一意な要素型宣言DTD
>>8引数実体が適切に入れ子になっていることDTD
>>9重複なしDTD
>>10識別子文書実現値
>>111要素型1識別子DTD
>>12識別子属性既定値DTD
>>13識別子参照文書実現値
>>14実体名文書実現値
>>16名前字句文書実現値
>>17記法属性文書実現値
>>181要素型1記法DTD
>>19空要素記法なしDTD
>>35重複字句なしDTD
>>20列挙文書実現値
>>21必須属性文書実現値
>>22属性[既定値]]が構文的に正しいことDTD
>>23固定属性既定値文書実現値
>>25条件区間引数実体が適切に入れ子になっていることDTD
>>26実体宣言されていること文書実現値DTD
>>27記法宣言されていることDTD
>>28一意な記法名DTD
>>37妥当xml:lang文書実現値

[41] XML文書の条件は整形式たることですから、妥当性制約が満たされないとしても、XML文書たりえます。ただし、妥当性制約への違反は誤りです (>>1) から、処理した結果は未定義です。

[42] >>41 ということは、例えば妥当でない要素が出てきたらそこで処理終了しても構わないということになります。妥当性検証を行う処理器なら普通な動作ですが、行わない処理器でもそうしてもいい、と。 (例えば要素内容の検証はしないけど強制空要素の検証はする、とか。)

[43] >>3,>>8,>>25引数実体との入れ子に関する制約も妥当性制約ということは、入れ子関係がおかしくても整形式たり得るということだ。正しく処理される保証はないだけで。

でも >>3生成規則を満たしつつ違反するのは無理だろう。

妥当性検証はしない処理器でも、これくらいの誤りの検出はしておいた方が実装が楽かもしれない (し、そうでないかもしれない)。

[44] SGML互換性のために属性値の列挙の群と引数実体が適当に入れ子になっていることという条件が必要なような。。。

>>8モデル群しかカバーしていない。

(名無しさん)

処理系と妥当性制約

[29] 妥当性を検証する処理系は、利用者の任意選択により、 DTD の宣言により表現された制約への違反及び XML 仕様書の妥当性制約への違反を報告しなければなりません。 <http://www.w3.org/TR/REC-xml#dt-validating>

この条件を満たすため、妥当性を検証する処理系は DTD 全体と全ての外部解析実体を読まなければなりません。 <http://www.w3.org/TR/REC-xml#dt-validating>

[36] 妥当性制約はXML//整形式制約に加えての追加の制約です。 XML 文書は必ずしも妥当性制約を満たしている必要はありませんが、 できるなら満たすことが望ましいでしょう。特に、宣言の完全性 (DTD で定義されていること) 以外の制約は必ず満たすべきです。

メモ