根元素minOccurs或maxOccurs

时间:2015-04-07 06:43:23

标签: xml xsd

在XSD ......

是否允许使用minOccurs =" 0"在根元素旁边写入? maxOccurs的=" 1" ? 如下所示

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

  <xs:element name="shiporder" minOccurs="0" maxOccurs="1">
    <xs:complexType>
      <xs:sequence>
        ........
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

过去是否允许这样的事情?

1 个答案:

答案 0 :(得分:0)

否。 minOccursmaxOccurs出现在validation root上是没有意义的,因为well-formed XML必须有一个根元素:

  

[定义:只有一个元素,称为 root ,或者   文档元素,其中任何一部分都不会出现在其他内容中   元件。]

如何在根级别>表达可选性

可以使用多个顶级元素声明,这可能是您使用minOccurs="0"后的效果:

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

这表示根元素可以是shipordere2e3

如何在根级别表达多样性

要允许多个发货订单,请将它们包装在单个容器shiporders中,元素:

<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="shiporders">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="shiporder" minOccurs="0" maxOccurs="unbounded">
           ...
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>