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

Can XML schemas enforce dependencies between values?

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

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

是否有可能以某种方式限制 "value"(在 DTD and/or 模式中),只要我在 XML 数据中为 x 选择某些内容,值 y 就会变成相同。

例如: 我写 <B value ="water"> 所以 <C value =""> 把自作用变成 <C value ="water">

XML 模式(DTD、XSDs、Schematron 等)定义有效性 of XML 文件。它们不会实现更改一个值会导致更改另一个值的关系。

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

最后说明:DTD 和 XSD1.0 无法强制执行这种跨元素的有效性约束; XSD 但是,1.1 或 Schematron 可以使用基于 XPath 的断言。