Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml XSD中的无序元素包含强制元素和无界元素?_Xml_Xsd - Fatal编程技术网

Xml XSD中的无序元素包含强制元素和无界元素?

Xml XSD中的无序元素包含强制元素和无界元素?,xml,xsd,Xml,Xsd,我的XSD中有以下元素: 您可以看到,文档必须始终具有发票,并且可以选择具有单个报表和零个或多个附加值 问题是这些元素可能有不同的外观顺序,所以我不能再使用序列了。我试图使用all,但问题是附加元素,因为它有maxOccurs=“unbounded” 我怎样才能拥有一个无序的元素列表,其中一个元素总是必需的,而另一个元素的出现次数是无限的?三条建议。要么: 强加命令。几乎总是认为需要允许任何 在实践中,元素的排序是不必要的 使用XSD 1.1,其中XSD:all支持maxOccurs=“un

我的XSD中有以下元素:


您可以看到,文档必须始终具有发票,并且可以选择具有单个报表和零个或多个附加值

问题是这些元素可能有不同的外观顺序,所以我不能再使用
序列了。我试图使用
all
,但问题是附加元素,因为它有
maxOccurs=“unbounded”


我怎样才能拥有一个无序的元素列表,其中一个元素总是必需的,而另一个元素的出现次数是无限的?

三条建议。要么:

  • 强加命令。几乎总是认为需要允许任何 在实践中,元素的排序是不必要的
  • 使用XSD 1.1,其中
    XSD:all
    支持
    maxOccurs=“unbounded”
  • 在您希望允许的元素周围使用包装器
    maxOccurs=“unbounded”
    。请参阅下面XSD中的
    附加列表
    ,了解工作示例
  • 使用包装器元素的XSD解决了无限XSD:all限制
    
    
    我想使用包装器,但目前无法修改xml结构。不幸的是,在这种情况下,顺序不可能总是一样的。我想保留
    序列
    ,但我不能。那么我假设您不能强制订购?然后转到XSD 1.1,其中
    XSD:all
    支持
    maxOccurs=“unbounded”
    。如何切换到1.1?检查验证解析器是否支持XSD 1.1,或者是否能够切换到支持XSD 1.1的解析器。我正在使用Notepad++的XML工具插件。我不知道验证解析器能做什么。你可以想象我是一个大XSD noob:(
    <?xml version="1.0" encoding="utf-8" standalone="no"?>
    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
               elementFormDefault="qualified">
      <xs:element name="documents">
        <xs:complexType>
          <xs:all>
            <xs:element name="invoice" minOccurs="1" maxOccurs="1">
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:minLength value="1"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="report" minOccurs="0" maxOccurs="1">
              <xs:simpleType>
                <xs:restriction base="xs:string">
                  <xs:minLength value="1"/>
                </xs:restriction>
              </xs:simpleType>
            </xs:element>
            <xs:element name="additionalList" minOccurs="0">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="additional" minOccurs="0" maxOccurs="unbounded">
                    <xs:simpleType>
                      <xs:restriction base="xs:string">
                        <xs:minLength value="1"/>
                      </xs:restriction>
                    </xs:simpleType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:all>
        </xs:complexType>
      </xs:element>
    </xs:schema>