如何使"使用"属性(必需/可选)取决于另一个值?

2 xml schema xsd

我正在尝试在XSD XML Schema中做一些特定的事情.我想将元素设置为use="required",只有当另一个元素的属性有特定值时.

例:

<udi att1="all">
   <name att2="dsd"/>
   <phone att3="dsd"/>
</udi>
Run Code Online (Sandbox Code Playgroud)

我希望phone元素是必需的,只有att1值是all.

我被告知XPath可以为此工作 - 或者有更好的方法吗?

Wel*_*bog 8

XML不是关系型的,它是分层的.模式旨在强制执行嵌套规则,而不是兄弟之间的规则.它根本不是你可以用XSD做的事情.

但是,在解析或创建符合格式的文档时,可以执行此操作.在这种情况下,当您解析XML文档时,您会强制执行约束,例如您在问题中说明的约束.