1

我想创建一个 XML Schema(一个 XSD 文件)以应用于 XML 文档。让我们考虑以下 XML 文档:

<root>
    <a />
    <b />
    <c />
    <a />
    <a />
    <b />
</root>

在遵守以下所需约束的情况下:

  1. <root> 是根元素。
  2. < a >、< b > 和 < c > 元素可以出现无数次。
  3. <a>、<b> 和<c> 元素未分组。例如,一个元素可以在 < b > 元素之前和之后。

如果我必须创建一个 XML 模式以应用于示例 XML 文档,我将从以下开始:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema  targetNamespace="http://doesnotmatter.com/"
            xmlns="http://doesnotmatter.com/"
            xmlns:xs="http://www.w3.org/2001/XMLSchema">

    <xs:element name="root"
                min="1"
                max="1">
        <complexType>

            <!-- ? -->

        </complexType>
    </xs:element>

</xs:schema>

我不知道如何在我的架构中填充 < complexType > 元素。
由于第三个约束,我不能使用 <sequence> 元素。
我怎样才能实现我的架构以尊重所有 3 个约束。

编辑

选择元素是我的问题的基石。
这是与上述我的需求相对应的 XML 模式:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema  targetNamespace="http://doesnotmatter.com/"
            xmlns="http://doesnotmatter.com/"
            xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="root">
    <xs:complexType>

      <xs:choice maxOccurs="unbounded">
        <xs:element name="a" />
        <xs:element name="b" />
        <xs:element name="c" />
      </xs:choice>

    </xs:complexType>
  </xs:element>

</xs:schema>
4

1 回答 1

0

因此,您的 root 模型是:从以下可能性中反复选择:a、b、c。是这样吗?操作词是choice as inchoice。也许我遗漏了一些东西,但答案似乎很明显。

于 2012-02-09T19:32:12.863 回答