我要来回设置一个元素minOccurs="0"和nillable="true".
我正在阅读这篇文章,现在在我的WSDL中,我不确定使用它们是否值得.本文给出了一个很好的例子来表示你可能在其中散布空值的数组,因为这不能用于完成minOccurs="0".现在,我一直在使用的约定是,如果一个元素不是可选的,那么它就不是可用的.根据我的理解和我的问题所在的区别在于,通过将nillable属性应用于元素,我说你可以传入相当于NULL值的XSD?否则,没有nillable属性的元素必须在限制内放置一个值?
bma*_*ies 56
您需要决定是将XML视为XML,还是将XML视为从此处传输Java(或其他)对象的方式.
在XML中,nillable允许构造<myelement xsi:nil='true'/>作为显式缺失值的指示符,如SQL NULL.这在语义上不同于<myelement/>.两者都完全不同.因此,在查看XML时,您必须区分四种情况:
<!-- nothing -->
<myElement attr1='true'>some content</myElement>
<myElement/>
<myElement xsi:nil='true'/>
Run Code Online (Sandbox Code Playgroud)
另一方面,如果您主要关注Java - 可能是因为您使用的是SOAP,那么您需要考虑Java对象如何来回映射.
对于从Object继承的任何Java项,JAXB和其他映射技术需要一种处理空值的方法.Nillable是这样做的方式.如果你禁止对可以作为对象的东西进行支持,那么工具包会恼人地使用数组来找到表示缺席的方法.
另一方面,如果你有一个数组,请记住数组本身是一个对象,并且可以为null.因此,每个工具包都必须区分零元素数组和空元素.
另一方面,如果你有一个原始类型(例如int),nillable将导致问题,因为没有从xsi:nil到基元的映射.
| 归档时间: |
|
| 查看次数: |
57511 次 |
| 最近记录: |