我拥有包含父子关系的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>
尝试了一些东西,但没有运气。
答案 0 :(得分:1)
您无法在XSD中的属性之间表达这些类型的关系(也称为限制)。您可以指定parent_id
的值应从id
元素的category
值之一中选择(使用KEY和KEYREF元素),但不能指定具有相同值的值{{1}}两个属性之间无效。