在我的wsdl中我有一个元素:
<xsd:element minOccurs="0" name="birthDate" nillable="true" type="xsd:dateTime"/>
我知道nillable true允许空值这是否意味着它可以允许xml空标记?即
<birthDate/>
在我的wsdl中我有一个元素:
<xsd:element minOccurs="0" name="birthDate" nillable="true" type="xsd:dateTime"/>
我知道nillable true允许空值这是否意味着它可以允许xml空标记?即
<birthDate/>
设置 nillable="true"
意思是 <birthDate>
标签可以显示如下:
<birthDate xsi:nil="true"/>
但是,既然你也设定了 minOccurs="0"
,你也可以省略 <birthDate>
完全从XML标记,它仍然会对您的XSD进行验证。
注意 <birthDate/>
要么 <birthDate></birthDate>
根据XSD规则,不被视为空。
看一下 这个伟大的博客 发表进一步阅读。
设置 nillable="true"
意思是 <birthDate>
标签可以显示如下:
<birthDate xsi:nil="true"/>
但是,既然你也设定了 minOccurs="0"
,你也可以省略 <birthDate>
完全从XML标记,它仍然会对您的XSD进行验证。
注意 <birthDate/>
要么 <birthDate></birthDate>
根据XSD规则,不被视为空。
看一下 这个伟大的博客 发表进一步阅读。
将我的观点添加到上面的答案,许多初学者不知道或不考虑的基本事情是绑定 XSI 具有Schema Instance命名空间的变量。
例如:xmlns:xsi =“http://www.w3.org/2001/XMLSchema-instance”[在xml开始标记中的任何位置添加此属性]。
属性前缀“XSI“在这种情况下必须与XML命名空间绑定”http://www.w3.org/2001/XMLSchema-instance“。此绑定可以在任何父元素或根元素本身中完成,绑定取决于您希望xsi可用的范围。
PS:我意识到xml命名空间绑定和前缀属性的全部重要性,无论何时需要,当我在工作中挣扎时,再多花3个小时来理解,为什么我的xml节点即使在nillable属性的情况下也没有得到xsd的验证目前在模式定义中。