XML Schema + complexType元素+序列的替代

时间:2012-02-05 22:31:58

标签: xsd complextype

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

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

在遵守以下期望约束的情况下:

  1. &LT; root&gt;是根元素。
  2. &lt; a&gt;,&lt; b>和&lt; c>元素可以出现无限次数。
  3. &lt; a&gt;,&lt; b>和&lt; c>元素没有分组。例如,元素可以在&之前和之后。 b>元件。
  4. 如果我必须创建一个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>
    

    我不知道如何填写&lt; complexType&gt;我的架构中的元素 我不能用&lt; <序列>元素因为第三个约束。
    我怎样才能实现我的架构以尊重所有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>
    

1 个答案:

答案 0 :(得分:0)

所以,你的root模型是:从这些可能性中反复选择:a,b,c。是吗?操作词是选择中的选择。也许我错过了什么,但答案似乎很明显。