У меня есть простой класс:
@XmlRootElement
@XmlAccessorType(XmlAccessType.PROPERTY)
public class foo {
boolean bar = true;
boolean getBar () {
return this.bar;
}
void setBar (boolean bar) {
this.bar = bar;
}
}
Обратите внимание, что bar инициализируется как true при создании класса.
Когда этот класс генерируется из сгенерированной схемы jaxb, он теряет инициализацию по умолчанию. Есть ли какая-нибудь аннотация jaxb, которая может установить значения инициализации по умолчанию? Или любой другой способ сделать это?
UPDATE:
Добавляем @XmlElement (defaultvalue = "true") следующим образом:
@XmlElement (defaultvalue="true")
boolean getBar () {
return this.bar;
}
генерирует следующую схему:
<xs:element default="true" name="bar" type="xs:boolean"/>
Однако реализация JAXB на Java не учитывает это при реконструкции класса. Сгенерированный класс выглядит так:
@XmlAccessorType(XmlAccessType.FIELD)
public class foo {
@XmlElement(defaultValue = "true")
protected boolean bar;
boolean getBar () {
return this.bar;
}
void setBar (boolean bar) {
this.bar = bar;
}
}
Обратите внимание, что мы потеряли значение инициализации по умолчанию true для бара.