【问题标题】:Why is minOccurs="0" not allowing an element to be empty?为什么 minOccurs="0" 不允许元素为空?
【发布时间】:2022-01-09 13:20:39
【问题描述】:

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

根据 DTD/Schema,元素“FURNITURE”不能为空。

当我尝试验证它时

<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 />

【问题讨论】:

    标签: xml xsd xsd-validation xml-validation


    【解决方案1】:

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

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

    另见

    【讨论】:

      猜你喜欢
      • 2013-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-19
      • 2023-03-16
      • 1970-01-01
      • 2012-08-12
      • 1970-01-01
      相关资源
      最近更新 更多