2013-09-29 62 views
0

我有具有父子关系的XML数据,并且想要防止(每个XSD),该子项是其自己的父项。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

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