代码之家  ›  专栏  ›  技术社区  ›  dirtside

同一个元素,具有XML架构的多个类型

  •  0
  • dirtside  · 技术社区  · 15 年前

    我要构造以下XML:

    <?xml version="1.0"?>
    <foo>
      <bar type="alpha">
        <first />
        <second />
      </bar>
      <bar type="bravo">
        <third />
        <fourth />
      </bar>
    </foo>
    

    最突出的一点是,我希望“bar”根据其类型具有不同的子元素——如果类型是“alpha”,则子元素必须是“first”和“second”;如果类型是“bravo”,则子元素必须是“third”和“fourth”。XSD验证器似乎不喜欢用两个不同的规则集定义相同元素的想法。

    如何构造XML架构文档以强制执行此规则?

    1 回复  |  直到 15 年前
        1
  •  1
  •   jelovirt    15 年前

    不幸的是,对于XDS不能这样做,请参见模式组件约束。 cos-element-consistent . 您可以将内容模型更改为解决方案,或者使用允许这样做的RELAXNG。