Xsd XML模式&x2B;complexType元素+;序列的替代方案

Xsd XML模式&x2B;complexType元素+;序列的替代方案,xsd,complextype,Xsd,Complextype,我想创建一个XML模式——一个XSD文件——来应用于XML文档。 让我们考虑下面的XML文档: <root> <a /> <b /> <c /> <a /> <a /> <b /> </root> 符合以下要求的约束条件: 是根元素 、和元素可以出现无限次 、和元素未分组。例如,元素可以在元素之前和之后 如果我必须创建一个XML模式来应用于示例XM

我想创建一个XML模式——一个XSD文件——来应用于XML文档。 让我们考虑下面的XML文档:

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

符合以下要求的约束条件:

  • 是根元素
  • 元素可以出现无限次
  • 元素未分组。例如,元素可以在元素之前和之后
  • 如果我必须创建一个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>
    

    因此,您的root模型是:重复地从这些可能性中选择:a、b、c。是这样吗?最重要的一句话是选择。也许我遗漏了什么,但答案似乎很明显