Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.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_Xml Validation - Fatal编程技术网

Xml 无序xsd:所有元素后跟另一个元素

Xml 无序xsd:所有元素后跟另一个元素,xml,xsd,xml-validation,Xml,Xsd,Xml Validation,如何为以下XML编写XSD <A></A> <B></B> <C></C> <D></D> <E></E> <E></E> A、 B,C,D只有零或一个。而且它们没有顺序。它可以是D,C,B,A。最后,有一个或多个E元素 我尝试了多种方法,但都没有成功。您被XML模式的非正交性所阻碍。你会认为以下方法应该有效: <?xml version="

如何为以下XML编写XSD

<A></A>
<B></B>
<C></C>
<D></D>
<E></E>
<E></E>

A、 B,C,D只有零或一个。而且它们没有顺序。它可以是D,C,B,A。最后,有一个或多个E元素


我尝试了多种方法,但都没有成功。

您被XML模式的非正交性所阻碍。你会认为以下方法应该有效:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="top">
    <xs:complexType>
      <xs:sequence>
        <xs:all>
          <xs:element name="A" minOccurs="0"/>
          <xs:element name="B" minOccurs="0"/>
          <xs:element name="C" minOccurs="0"/>
          <xs:element name="D" minOccurs="0"/>
        </xs:all>
        <xs:element name="E" minOccurs="1" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

允许元素的任何顺序在实践中都不如在理论上重要,特别是考虑到上述非正交性以及与XML模式冲突的可能性。

您被XML模式的非正交性所阻碍。你会认为以下方法应该有效:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="top">
    <xs:complexType>
      <xs:sequence>
        <xs:all>
          <xs:element name="A" minOccurs="0"/>
          <xs:element name="B" minOccurs="0"/>
          <xs:element name="C" minOccurs="0"/>
          <xs:element name="D" minOccurs="0"/>
        </xs:all>
        <xs:element name="E" minOccurs="1" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

允许元素的任何顺序在实践中都不如在理论中重要,特别是考虑到上述非正交性以及与……冲突的可能性。。。。。。。。。。。。。。。。。。。。。。。。它不喜欢按顺序排列。。。。因为我的xml是用户定义的,所以我不希望序列给用户带来不真实的感觉。对不起,因为您的需求冲突,所以必须给出一些东西。我认为牺牲订购是一个明智的前进方向。如果愿意,您可以使用XSD以外的验证方法。也许,您可以用另一种可以接受的方式更改标记约束。您是否愿意在a、B、C和D周围添加包装器元素?对不起。。。我不想在a、B、C和D周围添加包装器元素。如果我想添加包装器元素,为什么不在多个E周围添加包装器元素呢?因为您说过E必须出现在无序的a、B、C和D之后。包装E无助于解决
xs:all
不能按顺序出现的问题。您是对的。所以XML模式无法解决这个问题。正确的?。。。。。。。。。。。。。。。。。。。。。。。。它不喜欢按顺序排列。。。。因为我的xml是用户定义的,所以我不希望序列给用户带来不真实的感觉。对不起,因为您的需求冲突,所以必须给出一些东西。我认为牺牲订购是一个明智的前进方向。如果愿意,您可以使用XSD以外的验证方法。也许,您可以用另一种可以接受的方式更改标记约束。您是否愿意在a、B、C和D周围添加包装器元素?对不起。。。我不想在a、B、C和D周围添加包装器元素。如果我想添加包装器元素,为什么不在多个E周围添加包装器元素呢?因为您说过E必须出现在无序的a、B、C和D之后。包装E无助于解决
xs:all
不能按顺序出现的问题。您是对的。所以XML模式无法解决这个问题。对吗?