在Java类@XmlElement(nillable = true)
中,在变量之前是什么意思。这是否意味着xml中的字段是可选的?例如:@XmlElement(nillable = true) protected String name;
发布于 2015-05-20 21:42:18
nillable
是一个XML schema element
nillable:可选。指定是否可以将显式NULL值分配给元素。true使元素的实例可以将null属性设置为True。null属性被定义为实例的XML架构命名空间的一部分。默认值为false。
所以:
@XmlElement(nillable = true) protected String name;
意味着您可以将null
赋值给变量name
。
发布于 2015-05-20 21:39:38
这意味着它将允许字段中的null
值。
发布于 2015-05-20 22:15:21
nillable
选项表示将使用xsi:nil
机制表示null
值:
<name xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
但是JAXB中的一个元素同时是nillable和可选的情况并不常见(@XmlElement
有一个required
选项,但缺省情况下它是false
)。通常,您可以将特定元素标记为普通@XmlElement
(不是必需的,因此Java中没有元素)或@XmlElement(nillable = true, required = true)
(必需的,因此Java表示带有xsi:nil="true"
的null
元素)。
如果一个元素既是可空的又是可选的,那么它通常必须是一个JAXBElement<String>
,而不仅仅是String
,以区分缺少的元素( null
JAXBElement)和存在但"nil“的元素(一个非空JAXBElement,其isNil()
返回true
)。
https://stackoverflow.com/questions/30351286
复制相似问题