0

有没有办法为具有相同名称的 2 个元素定义具有固定值和子元素的多个属性?

<Root>

  <element 
    attributeA="1" 
    attributeB="2">
    <subElement/>
  </element>

  <element 
    attributeA="3" 
    attributeB="4">
    <subElement/>
  </element>

 </Root>

我希望这些元素中的任何一个都是可能的,但不允许以下元素:

<element 
   attributeA="1" 
   attributeB="4">
   <subElement/>
</element>

我知道在 xsd 中不可能在一个“父级”下有 2 个同名的元素。仅在元素上创建并通过枚举限制它似乎不起作用,因为我必须避免“混合”形式。元素的名称必须相同,并且必须具有父元素。

有没有我看不到的解决方案或解决此问题的方法?

4

1 回答 1

2

这样的模型将违反约束“元素声明一致”,该约束要求如果内容模型中的两个元素粒子具有相同的名称,则它们必须具有相同的类型。

当然,您可以在 XSD 1.1 中使用断言来实现。

于 2013-03-14T15:51:53.100 回答