在Java类@XmlElement中的变量之前它意味着什么(nillable = true)

时间:2015-05-20 13:34:43

标签: java xml

在Java类@XmlElement(nillable = true)中的变量之前它意味着什么。这是否意味着xml中的字段是可选的?        例如:@XmlElement(nillable = true) protected String name;

3 个答案:

答案 0 :(得分:1)

nillableXML schema element

  

nillable :可选。 指定是否可以为元素分配显式空值。 True允许元素的实例将null属性设置为true。 null属性被定义为实例的XML Schema名称空间的一部分。默认为false。

所以:

@XmlElement(nillable = true) protected String name;

表示您可以将null分配给变量name

答案 1 :(得分:0)

这意味着它将在字段中允许null值。

答案 2 :(得分:0)

nillable选项表示使用null机制表示xsi:nil值:

<name xsi:nil="true" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>

但是JAXB中的一个元素 nillable 可选(@XmlElement有一个required选项但它是{{}}默认情况下为{1}}。通常,您将特定元素标记为普通false(不是必需的,因此Java @XmlElement表示XML中没有元素)或null(必需,因此Java @XmlElement(nillable = true, required = true)表示带有null)的XML元素。

如果一个元素既可以是可填充的又是可选的,那么它通常必须是xsi:nil="true"而不是JAXBElement<String>,以区分缺少的元素(String JAXBElement)和它存在但是&#34; nil&#34; (null返回isNil())的非null JAXBElement。