Xml 儿童';s属性取决于父项';XSD中的s属性

Xml 儿童';s属性取决于父项';XSD中的s属性,xml,xsd,Xml,Xsd,考虑下面的xml代码 <panel col="2"> <label value="old password" /> <text id="oldPass" /> </panel> 现在我想为上面的xml声明一个XSD文件,我想当面板的属性col大于零时,面板中的所有元素都有特殊的colspan属性,如果不正确,它们就没有colspan属性 如何实现这个目标?在XSD 1.1中,在面板的complexType中,您可以使用断言测试

考虑下面的xml代码

<panel col="2">
    <label value="old password" />
    <text id="oldPass" />
</panel>

现在我想为上面的xml声明一个XSD文件,我想当面板的属性col大于零时,面板中的所有元素都有特殊的colspan属性,如果不正确,它们就没有colspan属性


如何实现这个目标?

在XSD 1.1中,在
面板的
complexType
中,您可以使用
断言
测试

<xs:assert test="(@col > 0)  and (./child::*[@colspan])"/>
<xs:assert test="(@col <= 0)  and (count(./child::*[@colspan]) = 0)"/>


我使用Eclice Luna Service Release 2(4.4.2),当我将剪断的代码放入complexType中时,我会得到以下错误-->s4s elt无效内容。1:“#AnonType_priceProduct”的内容无效。元素“assert”无效、放错位置或出现频率太高。恐怕eclipse验证在1.0中,问题仍然存在: