在我的WSDL我有一个元素:
<xsd:element minOccurs="0" name="birthDate" nillable="true" type="xsd:dateTime"/>
我知道的nillable真正允许空值这并不意味着它可以让XML空标签?即
<birthDate/>
设置nillable="true"
指<birthDate>
标签可以显示如下:
<birthDate xsi:nil="true"/>
不过,既然你还设置minOccurs="0"
,你也可以完全从XML省略<birthDate>
标签,它也仍然会验证对您的XSD。
需要注意的是<birthDate/>
或根据XSD规则<birthDate></birthDate>
不被视为无效。
看看this great blog后进一步阅读。
加入我的观点上面的答案,一个基本的东西,很多新手不知道或考虑是有约束力的与架构实例命名空间中的XSI变量。
例如:XMLNS:的xsi =“http://www.w3.org/2001/XMLSchema-instance” [在任何地方一个xml开始标记添加为属性。
在这种情况下,属性前缀“XSI”必须与XML命名空间“http://www.w3.org/2001/XMLSchema-instance”粘合。这种结合可以在任何父元素或根元素本身,在哪里做的绑定取决于您要的XSI可用范围来完成。
PS:我意识到任何需要的地方,当我在工作中努力通过保持背部3额外的时间去理解,为什么我的XML节点是没有得到它的XSD甚至在的nillable属性的情况下验证XML命名空间绑定和前缀属性的整体重要性在目前的架构定义。