значение инициализации по умолчанию для сгенерированного jaxb класса - PullRequest
0 голосов
/ 08 декабря 2011

У меня есть простой класс:

@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 для бара.

1 Ответ

0 голосов
/ 08 декабря 2011

JAXB аннотация @XmlElement(defaultValue = "defValue") - это то, что вам нужно.( Javadoc )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...