【发布时间】:2020-01-31 07:19:59
【问题描述】:
我需要创建 DTD 或 XMLSchema。如何将元素 collection@key="role" 与 collection@key="tie" 联系起来? 这是可能的还是需要在不同的元素中完成?
我有 XML
<!DOCTYPE schema [
<!ELEMENT schema (collection+, part+)>
<!ELEMENT collection[key=role] (name, partref+)>
<!ATTLIST collection[key=role] collection-id ID #REQUIRED
key CDATA #REQUIRED>
<!ELEMENT name (#PCDATA)>
<!ELEMENT partref EMPTY>
<!ATTLIST partref refid IDREF #REQUIRED>
<!ELEMENT collection[key=tie] (name)>
<!ATTLIST collection[key=tie] part-id ID #REQUIRED>
]>
<schema>
<collection collection-id="C28392-33-TT" key="role">
<name>Turnip Twaddler</name>
<partref refid="P81952-26-PK"/>
<partref refid="P86679-52-SP"/>
<partref refid="P81472-68-FD"/>
<partref refid="P88107-39-GT"/>
</collection>
<collection collection-id="C28772-63-OB" key="role">
<name>Olive Bruiser</name>
<partref refid="P80228-21-PT"/>
<partref refid="P82387-85-PA"/>
</collection>
<part part-id="P80228-21-PT">
<name>Pitter</name>
</part>
<collection part-id="P86994-25-RC" key="tie">
<name>Ribbon Curler</name>
</collection>
</schema>
【问题讨论】:
-
很抱歉,但是从用您自己发明的语言编写的代码中解决您的需求并不容易。我不明白你所说的“链接”两个元素是什么意思,我不明白你的伪 DTD 中的
[...]表示法,我不知道你想施加什么约束。投反对票。 -
抱歉造成混淆 ATTLIST 集合 [key = tie] part-id ID #REQUIRED 这是一个不正确的代码,我想向他们展示
属性等于 属性的值。所以他们是有联系的,但是我不知道如何在DTD中体现出来
标签: xslt dtd xml-schema-collection