【问题标题】:XML Schema + complexType element + Alternative to sequenceXML Schema + complexType 元素 + 替代序列
【发布时间】:2012-02-27 13:12:14
【问题描述】:

我想创建一个 XML 模式 - 一个 XSD 文件 - 以应用于 XML 文档。 让我们考虑以下 XML 文档:

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

遵守以下要求的约束:

  1. 是根元素。
  2. 元素可以出现无限次。
  3. 元素未分组。例如,一个元素可以在 元素之前和之后。

如果我必须创建一个 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>

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

【问题讨论】:

    标签: xsd complextype


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2010-12-02
      • 1970-01-01
      • 1970-01-01
      • 2020-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多