xml – nillable和minOccurs XSD元素属性
我来回设置元素为minOccurs =“0”和nillable =“true”。
我正在阅读this文章,现在在我的WSDL我不知道如果使用两者是值得的。本文给出了一个很好的例子,表示可能有空值散布在其中的数组,因为这不能用minOccurs =“0”来完成。现在,我一直在使用的约定是,如果一个元素不是可选的,它不是nillable。
您需要决定是否将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'/> 如果,另一方面,你主要关注Java – 也许是因为你使用SOAP,那么你需要考虑Java对象如何来回映射。 对于从Object继承的任何Java项目,JAXB和其他映射技术都需要一种处理空值的方法。 Nillable是做到这一点的方式。如果你禁止在可以是一个对象的东西,工具包会恼人地使用数组来找到一种方式来表示缺席。 另一方面,如果你有一个数组,请记住数组本身是一个对象,并且可以为null。因此,每个工具包都必须区分零元素数组和null。 另一方面,如果你有一个原始类型(例如int),nillable将导致问题,因为没有从xsi:nil到原语的映射。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |