为什么 minOccurs="0" 不允许元素为空?

Why is minOccurs="0" not allowing an element to be empty?

我已将元素 "FURNITURE" 设置为 minOccurs="0" 但它仍然返回

Element 'FURNITURE' cannot be empty according to the DTD/Schema.

当我尝试验证它时

<xsd:element name="FURNITURE" minOccurs="0" maxOccurs="6">
  <xsd:complexType>
    <xsd:sequence>
      <xsd:element name="ID" type="xsd:integer" />
      <xsd:element name="rNumber" type="xsd:string" /> 
      <xsd:element name="type" type="xsd:string" />
    </xsd:sequence>
  </xsd:complexType>
</xsd:element>

<FURNITURE />

通过将 minOccurs="0" 放在 FURNITURE 上,您指定 FURNITURE 不需要存在,但这并没有说明 FURNITURE 的内容模型。事实上,FURNITURE 必须由一系列 IDrNumbertype 元素组成,这些元素必须恰好出现一次。

如果您希望 FURNITURE 在存在时可能为空,则通过向每个 xsd:element 添加 minOccurs="0" 或通过添加 [=10 共同使每个子元素可选=] 到包装 xsd:sequence.

另见

  • XML Schema minOccurs / maxOccurs default values