在XSD中定义数据规则引用其他数据?

时间:2014-08-22 16:42:29

标签: xml configuration xsd

在XSD定义中是否可以定义类似的规则 - 在整个XML文件中必须唯一的ID - 与另一个数字相关的数字,即必须大于前一个元素的数字? - 引用,即引用另一个元素的id的值

您如何处理针对XML的此类要求?

示例:

<page id="123">
   <name>Charles</>
</page>
<wizard>
   <page ref="123">
   ...
</wizard>

在这种情况下,客户ID必须是唯一的,从订单到客户的引用必须是有效的,即引用XML中存在的客户。

我没有尝试在这里模仿数据库,我有一个复杂的配置文件,我正在寻找一种修复其定义的好方法,并且有一种更安全的编辑/验证方式。< / p>

1 个答案:

答案 0 :(得分:0)

在XSD 1.0中,您可以定义简单唯一性和参照完整性约束(必须唯一的值,必须引用其他元素的ID的值) - 阅读xs:unique,xs:key和xs:keyref。

更复杂的约束,例如&#34;必须大于前一个元素的数量&#34;需要XSD 1.1断言。