xml - 如何使 "use"属性(必需/可选)依赖于另一个值?

标签 xml xsd schema

我正在尝试在 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/

相关文章:

java - Android Studio DatatypeFactoryImpl 未找到

android - 按应用程序图标按钮返回父 Activity

sql-server - SQL Server 架构命名约定

Java 到 XSD 或 XSD 到 Java

c# - LinqToXml 未按预期处理可空元素

java - 在 Java 中使用 XSOM 解析 XSD 架构。如何访问元素和复杂类型

java - 如何更改 Java Transformer 中的默认日志记录

c# - C#反序列化在InvalidOperationException上捕获并继续。怎么样?

使用 XSLT 进行 XML 到 XML 转换 - 循环子节点

java - Pentaho Web 服务查找无法加载我的 wsdl