xsd中的条件逻辑

xsd中的条件逻辑,xsd,conditional-statements,Xsd,Conditional Statements,我有一个带有以下标记的xml <root> <A>xxx </A> <B>xxx </B> <C>xxx </C> </root> xxx xxx xxx A的数据类型为整数,可能的值为1或2。我想使用xsd设置以下限制: 如果A=1,则存在标签B, 如果A=2,则存在标签C 有没有一种巧妙的方法来实现这一点?谢谢大家! 这里要做的最整洁的事情是更改设计,因为A元素显然根本不提供任何

我有一个带有以下标记的xml

<root>
  <A>xxx </A>
  <B>xxx </B>
  <C>xxx </C>
</root>

xxx
xxx
xxx
A的数据类型为整数,可能的值为1或2。我想使用xsd设置以下限制:

如果A=1,则存在标签B, 如果A=2,则存在标签C


有没有一种巧妙的方法来实现这一点?谢谢大家!

这里要做的最整洁的事情是更改设计,因为A元素显然根本不提供任何信息。让根包含B或C


如果您真的想探究当您违反规则“不要重复您自己”并在XML中引入不必要的冗余时可能出现的糟糕生活,那么您可以选择Schematron断言、RNG和XSD 1.1断言

谢谢大家!!我正在制作xml格式的配置文件,xsd是配置文件的规范。A、 B、C是应该在xsd中公开的参数,但它们具有如上所述的某些逻辑关系。我想知道我们是否可以在xsd中包含这些逻辑关系。似乎很难做到这一点,那么,什么是最合理的解决方案呢?