2

私の質問が正しくされているかどうかわかりません。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 を制限したいと思います。

これは可能ですか?

4

1 に答える 1