XML模式可以强制值之间的依赖关系吗?

时间:2015-10-20 22:12:31

标签: xml xsd dtd

假设我们有这个简单的XML文档:

 <A>
     <B value ="x">
     <C value ="y">
 </A> 

在某种程度上可以限制“值”(在DTD和/或Schema中),只要我在XML数据中选择x的内容,值y就会变成相同的值。

例如: 我写<B value ="water">所以<C value ="">将自我行为转变为<C value ="water">

1 个答案:

答案 0 :(得分:0)

XML模式(DTD,XSD,Schematron等)定义XML文档的 有效性 。它们不实现关系,其中一个值的改变将导致另一个值的改变。

因此,您可以使用XML架构来表示valueB元素之间的C属性必须相等,但这与使它们相等不同。验证将报告您的约束是否得到满足 - 布尔结果,以及描述约束违规的一些诊断消息。要根据文档中其他位置的其他更改来更改XML文档,您需要对其进行编程。

最后注意事项:DTD和XSD 1.0无法强制跨越元素的这种有效性约束;但是,XSD 1.1或Schematron可以使用基于XPath的断言。