【问题标题】:Using minoccurs="0" and nillable ="false" in XSD for an element type string is valid?在 XSD 中对元素类型字符串使用 minoccurs="0" 和 nillable ="false" 是否有效?
【发布时间】:2018-01-22 16:16:50
【问题描述】:
<xs:element minOccurs="0" name="Name" nillable="false">
        <xs:simpleType>
                <xs:restriction base="xs:string">
                <xs:maxLength value="25"/>
                </xs:restriction>
            </xs:simpleType>
</xs:element>

对于上述元素,当请求元素为空值时,会不会验证失败?

下面的 xml 请求没有错误-

 <con:name></con:name> - no error.

如果类型为字符串且 minoccurs 为零且 nillable 为 false,请告诉我什么将响应 xml 验证。

提前致谢。

【问题讨论】:

  • 我会说,它在评论中,所以minOccurs 是有效的,并且它不是空的(因为不存在)。
  • 这里我的要求是,当请求 xml 中存在名称标签时,名称不应为空。上面的 xsd 将支持?
  • 但是您的姓名标签不在 XML 中。它在评论中。
  • sry 它不在评论中...我添加错误。

标签: xml xsd


【解决方案1】:

这个声明没有理由说明为什么空元素会验证失败。

minOccurs="0" 表示可以省略元素:如果元素存在,它不会影响元素的验证方式。

nillable="false" 表示您不能拥有属性 xsi:nil="true"。但是您没有此属性,因此不会使其无效。您不需要将其设为可空;由于元素的类型无论如何都允许为空内容,因此无需将其标记为 nil(除非您可能想将“”值与“未知”值区分开来)。

【讨论】:

    【解决方案2】:

    我认为该 xml 片段的验证不会失败。 首先,minOccurs 指的是序列中元素的最小数量,因此它适用于 con:name(如果有)的父元素,但不适用于元素本身。

    出现指示器用于定义元素出现的频率。

    'nillable' 指的是 nil 属性:nil="true" 用于将 null 值赋给一个元素。

    更多详情http://www.dimuthu.org/blog/2008/08/18/xml-schema-nillabletrue-vs-minoccurs0/comment-page-1/

    【讨论】:

      猜你喜欢
      • 2020-01-20
      • 1970-01-01
      • 1970-01-01
      • 2014-12-22
      • 1970-01-01
      • 1970-01-01
      • 2015-04-16
      • 1970-01-01
      • 2013-11-27
      相关资源
      最近更新 更多