我正在尝试在 XSD XML 模式中做一些特定的事情。我想将一个元素设置为 use="required"
,仅当另一个元素的属性具有特定值时。
例子:
<udi att1="all">
<name att2="dsd"/>
<phone att3="dsd"/>
</udi>
我希望只有 att1
值为 all
时才需要 phone
元素。
有人告诉我 XPath 可以解决这个问题——或者有更好的方法吗?
最佳答案
XML 不是关系型的,而是层次型的。模式旨在强制执行嵌套规则,而不是 sibling 之间的规则。这根本不是您可以使用 XSD 做的事情。
但是,当您解析或创建符合格式的文档时,您可以这样做。在这种情况下,当您通过 XML 文档进行解析时,您会强制执行您在问题中陈述的约束。
关于xml - 如何使 "use"属性(必需/可选)依赖于另一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/511148/