1

我正在尝试在 XML 模式中创建一个类型以强制使用两者的元素:

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

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

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

其中“等于”将是枚举之一。

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

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

编辑:谢谢,大卫。这很好用,但我只是在限制中添加了这个,所以验证会忽略换行符:

<xs:whiteSpace value="collapse"/>
4

1 回答 1

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>
于 2008-12-05T00:58:58.403 回答