在XSD中使用minoccurs =“0”和nillable =“false”表示元素类型字符串是否有效?

时间:2018-01-22 16:16:51

标签: xml xsd

<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验证的响应是什么。

先谢谢。

2 个答案:

答案 0 :(得分:0)

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

的更多详情

答案 1 :(得分:0)

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

char *d_again = *((char * *) Items[0].x); printf("%s\n", d_again); 表示可以省略该元素:如果元素存在,它对元素的验证方式没有影响。

minOccurs="0"表示您不能拥有属性xsi:nil =“true”。但是你没有这个属性,所以这不会使它无效。你不需要让它成为可能的;因为元素的类型无论如何都允许空内容,所以不需要将其标记为nil(除非您想要将值“”与“未知”值区分开来。)