私の質問が正しくされているかどうかわかりません。DTD を含む XML ドキュメントがあります。ATTLIST を定義しましたが、同じ属性を複数回使用した場合に XML 検証がエラーをスローするか失敗するように、DTD を制限または変更したいと考えています。私の XML ドキュメントは次のようになります。
<?xml version="1.0" encoding="utf-8"?>
<!-- DTD START -->
<!DOCTYPE dtype
[
<!ELEMENT dtype (ea?, eb?, ec, ed?) >
<!ELEMENT ea (data+) >
<!ELEMENT eb (ee+) >
<!ELEMENT ec (data+) >
<!ELEMENT ed (data+) >
<!ELEMENT ee (data+) >
<!ELEMENT data (#PCDATA) >
<!ATTLIST ee
ef CDATA #REQUIRED
>
<!ATTLIST data
element CDATA #REQUIRED
value CDATA #IMPLIED
unit CDATA #IMPLIED
min CDATA #IMPLIED
max CDATA #IMPLIED
avg CDATA #IMPLIED
>
]>
<!-- DTD END -->
<!-- DATA START -->
<dtype>
<ec>
<data element="A" unit="counts" min="0.6621" avg="0.6819" max="0.7089" />
<data element="B" unit="counts" min="0.0463" avg="0.0473" max="0.0503" />
<data element="C" unit="counts" min="0.1238" avg="0.1264" max="0.1344" />
</ec>
</dtype>
<!-- DATA END -->
<!-- should be detected as not ok ! -->
<!--
<dtype>
<ec>
<data element="A" unit="counts" min="0.6621" avg="0.6819" max="0.7089" />
<data element="B" unit="counts" min="0.0463" avg="0.0473" max="0.0503" />
<data element="B" unit="counts" min="0.1238" avg="0.1264" max="0.1344" />
<data element="C" unit="counts" min="0.1348" avg="0.1644" max="0.1654" />
</ec>
</dtype>
-->
element="B"
たとえば、1 つの属性を許可するように DTD を制限したいと思います。
これは可能ですか?