Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.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_Xsd Validation_Xml Validation - Fatal编程技术网

Xml 如何允许XSD中的一个元素或另一个元素选择?

Xml 如何允许XSD中的一个元素或另一个元素选择?,xml,xsd,xsd-validation,xml-validation,Xml,Xsd,Xsd Validation,Xml Validation,假设我有一个元素,它可以包含以下元素: <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="scene"> <xs:complexType> <xs:choice> <xs:element name="part" ma

假设我有一个
元素,它可以包含以下元素:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="scene">
    <xs:complexType>
      <xs:choice>
        <xs:element name="part" maxOccurs="unbounded"/>
        <xs:choice maxOccurs="unbounded">
          <xs:element name="episode"/>
          <xs:element name="season"/>
        </xs:choice>
      </xs:choice>
    </xs:complexType>
  </xs:element>

</xs:schema>
  • 和/或
一些例子:

<scene>
  <part></part>
</scene>

另一个例子:

<scene>
 <episode></episode>
 <episode></episode>
 <season></season>
 </scene>

另一个:

<scene>
 <episode></episode>
 <season></season>
 <episode></episode>
 </scene>

所以这里的想法是允许
中的
剧集
季节
(具有无限的限制)。如果这两个元素(季节和剧集)不存在,您可以在
中使用
元素,并具有无限的限制


我试图在XML模式中实现这一点。我尝试了分组和复杂内容,但没有成功。有什么想法吗?

使用复合
xs:choice
元素:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="scene">
    <xs:complexType>
      <xs:choice>
        <xs:element name="part" maxOccurs="unbounded"/>
        <xs:choice maxOccurs="unbounded">
          <xs:element name="episode"/>
          <xs:element name="season"/>
        </xs:choice>
      </xs:choice>
    </xs:complexType>
  </xs:element>

</xs:schema>


这意味着,
场景
可以由无限数量的
部分
元素组成,也可以由无限数量的
插曲
季节
元素组成。

向我们展示您已经拥有的内容。这将有助于回答问题;)不过,这能确保元素是互斥的吗?@Therley:在
部分
元素和
插曲
季节
元素的无限混合之间存在互斥,是的,但在
插曲
季节
之间不存在互斥,因为
最大值=“无界的
xs:choice上
包装这些元素。