Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xslt xml dtd或xml模式链接具有不同属性的元素_Xslt_Dtd_Xml Schema Collection - Fatal编程技术网

Xslt xml dtd或xml模式链接具有不同属性的元素

Xslt xml dtd或xml模式链接具有不同属性的元素,xslt,dtd,xml-schema-collection,Xslt,Dtd,Xml Schema Collection,我需要创建DTD或XMLSchema。如何链接元素collection@key=“角色”与collection@key“平局”? 这是可能的还是需要在不同的元素中完成 我有XML <!DOCTYPE schema [ <!ELEMENT schema (collection+, part+)> <!ELEMENT collection[key=role] (name, partref+)> <!ATTLIST collection[key=role]

我需要创建DTD或XMLSchema。如何链接元素collection@key=“角色”与collection@key“平局”? 这是可能的还是需要在不同的元素中完成

我有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中,可以将一个属性定义为ID,将另一个属性定义为IDREF;ID值在文档中必须是唯一的,IDREF值必须“指向”文档中存在的ID

但是对于同一个元素名,不能有两个不同的内容模型,因此属性的类型不能取决于它出现的位置


在XSD中,通过定义本地元素声明,可以为相同的元素名创建两个不同的内容模型;但是,如果它们显示为兄弟(同一父元素的子元素),您就不能这样做。

很抱歉,从用您自己发明的语言编写的代码中计算出您的需求并不容易。我不明白“链接”两个元素是什么意思,我不明白伪DTD中的
[…]
符号,我也不知道您想要施加什么约束。向下投票。对于ATTLIST集合[key=tie]part id#REQUIRED造成的混乱表示抱歉。这是一个错误的代码,我想向他们显示属性值等于属性值。所以它们是相互关联的,但我不知道如何在DTD中反映出来