XSD:节点内的唯一属性值

时间:2013-09-29 16:34:38

标签: xml xsd unique

我拥有包含父子关系的XML数据,并希望防止(根据XSD)该子项是其自己的父项。

XML:

<categories>
        <category id="1">
            <name>cat1</name>
        </category>
        <category id="2">
            <name>cat2</name>
        </category>
        <category id="5" parent_id="5"> <!-- should not validate!-->
            <name>subcat5</name>
        </category>
</categories>

所以约束是,id和parent_id需要不同。我用<xs:unique>尝试了一些东西,但没有运气。

1 个答案:

答案 0 :(得分:1)

您无法在XSD中的属性之间表达这些类型的关系(也称为限制)。您可以指定parent_id的值应从id元素的category值之一中选择(使用KEY和KEYREF元素),但不能指定具有相同值的值{{1}}两个属性之间无效。