我来回设置元素为minOccurs =“0”和nillable =“true”。
我正在阅读this文章,现在在我的WSDL我不知道如果使用两者是值得的。本文给出了一个很好的例子,表示可能有空值散布在其中的数组,因为这不能用minOccurs =“0”来完成。现在,我一直在使用的约定是,如果一个元素不是可选的,它不是nillable。
根据我的理解,我的问题在于,通过应用nillable属性到一个元素的差异,我说你可以传递一个空值的XSD等价物?否则,一个没有nillable属性的元素,必须有一个值限制在它上面吗?
您需要决定是否将XML视为XML,或者您是否正在考虑将XML作为从这里传输Java(或其他)对象的方式。
原文链接:https://www.f2er.com/xml/293697.html在XML中,nillable允许构造< myelement xsi:nil ='true'/>作为显式缺失值的指示符,如sql NULL。这在语义上不同于仅仅< myelement /> ;.两者都不同于一切。所以,当看看XML,你必须区分四种情况:
<!-- nothing --> <myElement attr1='true'>some content</myElement> <myElement/> <myElement xsi:nil='true'/>
如果,另一方面,你主要关注Java – 也许是因为你使用SOAP,那么你需要考虑Java对象如何来回映射。
对于从Object继承的任何Java项目,JAXB和其他映射技术都需要一种处理空值的方法。 Nillable是做到这一点的方式。如果你禁止在可以是一个对象的东西,工具包会恼人地使用数组来找到一种方式来表示缺席。
另一方面,如果你有一个数组,请记住数组本身是一个对象,并且可以为null。因此,每个工具包都必须区分零元素数组和null。
另一方面,如果你有一个原始类型(例如int),nillable将导致问题,因为没有从xsi:nil到原语的映射。