xsd中的条件逻辑

时间:2013-12-04 04:59:17

标签: xsd conditional-statements

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

这里最重要的是改变设计,因为A元素显然根本没有提供任何信息。让root包含B或C。

如果您真的想要探索在违反规则“不要重复自己”并在XML中引入不必要的冗余时可能存在的不良生活,那么您的选择是Schematron断言,RNG和XSD 1.1断言。