具有枚举和属性的类型的XML模式构造

时间:2008-12-05 00:25:15

标签: xml xsd schema

我正在尝试在XML架构中创建一个类型,以强制执行以下两个元素:

  • 单个属性;和
  • 与枚举匹配的简单内容。

在XML文档中,元素可能如下所示:

<Operator Permutation="true">
  Equals
</Operator>

“等于”将是枚举之一。

这可能吗?如果是这样,怎么样?

我尝试过使用XMLSpy但没有成功。如果我创建一个简单类型,它只允许没有属性的内容枚举。如果我创建一个复杂类型,它只允许没有内容枚举的属性。

编辑: 谢谢,大卫。这完全有效,但我只是在限制内添加了这个,所以验证忽略了换行符:

<xs:whiteSpace value="collapse"/>

1 个答案:

答案 0 :(得分:2)

怎么样

  <xs:element name="Operator" type="MixedElement" />

  <xs:complexType name="MixedElement">
    <xs:simpleContent>
      <xs:extension base="EnumType">
        <xs:attribute name="Permutation" type="xs:boolean">
        </xs:attribute>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="EnumType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Equals"/>
      <xs:enumeration value="NotEquals"/>
    </xs:restriction>
  </xs:simpleType>