Задать вопрос
zolt85
@zolt85
Программист

Как работает наследование в классах для сериализации xml JAXB?

Здравствуйте.
Подскажите как работает наследование в классах для сериализации xml JAXB.

Т.е. у меня есть класс MySuperXml:
@XmlRootElement(name = "super-xml")
@XmlSeeAlso(OtherSuperXml.class)
public class MySuperXml {
     private List<Long> numbers;
 }


У него есть потомок OtherSuperXml:
public class OtherSuperXml extends MySuperXml {
     private List<String> names;
 }


При маппинге я получаю пустой список numbers хотя в xml физически они есть. Как сделать маппинг родительских полей (если я правильно понимаю задачу)?
  • Вопрос задан
  • 4091 просмотр
Подписаться 2 Оценить Комментировать
Решения вопроса 1
Вероятно, они просто добавились в names. Не хотите всё-таки добавить аннотации для numbers и names? Я вот даже не знаю, как это будет представлено в XML без них.

Например, вот так можно сделать:
@XmlRootElement(name = "super-xml")
@XmlSeeAlso(OtherSuperXml.class)
public class MySuperXml {
     @XmlElement(name = "number")
     private List<Long> numbers;
}
@XmlRootElement(name = "other-super-xml")
public class OtherSuperXml extends MySuperXml {
    @XmlElement(name = "name")
    private List<String> names;
}

Вообще, тяжко что-то отвечать на выдуманном примере. Вы же явно другую схему XML используете...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
Сбер Москва
от 300 000 до 350 000 ₽
DIGITAL SECTOR Краснодар
от 250 000 до 450 000 ₽
Сбер Санкт-Петербург
До 350 000 ₽