的minOccurs 0的nillable真

问题描述 投票:15回答:2

在我的WSDL我有一个元素:

<xsd:element minOccurs="0" name="birthDate" nillable="true" type="xsd:dateTime"/>

我知道的nillable真正允许空值这并不意味着它可以让XML空标签?即

<birthDate/>
xml soap xsd wsdl
2个回答
26
投票

设置nillable="true"<birthDate>标签可以显示如下:

<birthDate xsi:nil="true"/>

不过,既然你还设置minOccurs="0",你也可以完全从XML省略<birthDate>标签,它也仍然会验证对您的XSD。

需要注意的是<birthDate/>或根据XSD规则<birthDate></birthDate>不被视为无效。

看看this great blog后进一步阅读。


0
投票

加入我的观点上面的答案,一个基本的东西,很多新手不知道或考虑是有约束力的与架构实例命名空间中的XSI变量。

例如:XMLNS:的xsi =“http://www.w3.org/2001/XMLSchema-instance” [在任何地方一个xml开始标记添加为属性。

在这种情况下,属性前缀“XSI”必须与XML命名空间“http://www.w3.org/2001/XMLSchema-instance”粘合。这种结合可以在任何父元素或根元素本身,在哪里做的绑定取决于您要的XSI可用范围来完成。

  • 在嵌套的所有元素来声明得到了相同的值
  • 即使你可以绑定的命名空间,简洁使用任何名称的通常建议使用XSI为“qazxsw POI”

PS:我意识到任何需要的地方,当我在工作中努力通过保持背部3额外的时间去理解,为什么我的XML节点是没有得到它的XSD甚至在的nillable属性的情况下验证XML命名空间绑定和前缀属性的整体重要性在目前的架构定义。

© www.soinside.com 2019 - 2024. All rights reserved.