XSD:定义2个具有相同名称但属性的确切定义的元素

时间:2013-03-14 13:03:07

标签: xml xsd

有没有办法为具有相同名称的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中,不可能在一个“parent”下有2个具有相同名称的元素。 仅在元素上创建并通过枚举限制它似乎不起作用,因为我必须避免“混合”形式。 元素的名称必须相同,并且必须具有父元素。

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

1 个答案:

答案 0 :(得分:2)

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

当然,您可以使用断言在XSD 1.1中执行此操作。