0

我正在尝试编写一个 XSD 架构,其中某些元素可以按任何顺序出现 - 但不能有重复项。

所以这是有效的:

<parent>
    <my-element-A>1</my-element-A>
    <my-element-B>2</my-element-B>
    <my-element-C>3</my-element-C>
</parent>

...这是有效的:

<parent>
    <my-element-B>2</my-element-B>
    <my-element-A>1</my-element-A>
    <my-element-C>3</my-element-C>
</parent>

但这不是:

<parent>
    <my-element-A>1</my-element-A>
    <my-element-B>2</my-element-B>
    <my-element-A>1</my-element-A><!-- Fail! Duplicate my-element-A -->
    <my-element-C>3</my-element-C>
</parent>

我怎样才能用 XSD 做到这一点?

4

1 回答 1

2

<xs:all>元素定义“序列的分组是一组子序列,其中一些或全部可能为空,使得原始序列的每个成员在其中一个子序列中出现一次且仅出现一次,并且所有成员所有子序列都在原始序列中。”

  <?xml version="1.0" encoding="UTF-8"?>
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xs:element name="parent">
      <xs:complexType>
        <xs:all minOccurs="0">
          <xs:element name="my-element-A" type="xs:string"/>
          <xs:element name="my-element-B" type="xs:string"/>
          <xs:element name="my-element-C" type="xs:string"/>
        </xs:all>
      </xs:complexType>
    </xs:element>
  </xs:schema>
于 2012-12-01T22:15:32.543 回答