XMLfile の次のスニペットがあるとします。
<Active>
<SystemName Permissions="RW" Datatype="STRING" Case="MIXED_RESPECT">NASCENT Default System Name</SystemName>
<ModelNumber Permissions="RO" Datatype="STRING" Case="MIXED_RESPECT">A104S2</ModelNumber>
<!-- snip snip snip -->
およびそれに一致する DTD の対応するスニペット:
<!ELEMENT Active (SystemName,ModelNumber,SerialNumber....)>
<!ELEMENT ModelNumber (#PCDATA)>
<!ATTLIST ModelNumber Permissions CDATA #FIXED "RO">
<!ATTLIST ModelNumber Datatype CDATA #FIXED "STRING">
<!ATTLIST ModelNumber Case CDATA #FIXED "MIXED_RESPECT">
<!ELEMENT SystemName (#PCDATA)>
<!ATTLIST SystemName Permissions (RW|RO) "RO"
Datatype CDATA #FIXED "STRING"
Case CDATA #FIXED "MIXED_RESPECT">
<!-- snip snip snip -->
XML を DTD に対して実行すると、次のエラーが発生します。
/home/.../Active.xml:7: element ModelNumber: validity error : No declaration for attribute Permissions of element ModelNumber
<ModelNumber Permissions="RO" Datatype="STRING" Case="MIXED_RESPECT">A104S2</M
^
/home/.../Active.xml:7: element ModelNumber: validity error : No declaration for attribute Datatype of element ModelNumber
<ModelNumber Permissions="RO" Datatype="STRING" Case="MIXED_RESPECT">A104S2</M
^
/home/.../Active.xml:7: element ModelNumber: validity error : No declaration for attribute Case of element ModelNumber
<ModelNumber Permissions="RO" Datatype="STRING" Case="MIXED_RESPECT">A104S2</M
<!-- snip snip snip -->
誰かが泣き言を言っていることを説明できますか? 斜視になるまでGoogleを見ました。SystemName は機能し、ModelNumber などは !Attlist の!