对于Integer,XmlElement required = true不起作用

时间:2014-10-23 12:04:55

标签: java xml jaxb jax-rs required

我使用jax-rs服务。我的类中有两个用@XmlElement注释的字段(required = true),一个用于布尔值,另一个用于Integer。但如果我发送没有值的xml标签,对于布尔我收到空,但对于整数我收到0

@XmlElement(required = true)
private Integer intValue;

@XmlElement(required = true)
private Boolean booleanValue;

为什么我在整数中没有收到空?

2 个答案:

答案 0 :(得分:1)

我应该添加defaultValue =" null"

@XmlElement(required = true, defaultValue = "null")
private Integer intValue;

有趣的' (不期望)整数字段的行为。我找不到在jaxb中为默认整数赋值的解释。

答案 1 :(得分:1)

required注释上的@XmlElement属性对JAXB执行的编组/解组没有影响。它仅在XML Schema生成期间用于确定元素声明是否应该minOccurs 0(对于false)或1(对于true)。

BooleanInteger的解组行为之间的区别是由于JAXB参考实现中的错误。