JAXB: @XmlTransient на стороннем или внешнем суперклассе

Я нуждаюсь в некоторой помощи относительно следующей проблемы с JAXB 2.1.

Образец: я создал класс SpecialPerson, который расширяет Человека абстрактного класса. Теперь я хочу преобразовать свою структуру объекта в XML-схему с помощью JAXB. Таким образом, я не хочу, чтобы Человек тип XML, казался, в моей XML-схеме сохранять схему простой. Вместо этого я хочу, чтобы поля класса Человека появились в типе SpecialPerson XML.

Обычно я добавил бы аннотацию @XmlTransient на уровне класса в код Человека.

Проблема состоит в том, что Человек является сторонним классом, и у меня нет возможности добавить @XmlTransient здесь. Как я могу сказать JAXB, что он должен проигнорировать класс Человека, не аннотируя класс. Действительно ли возможно настроить это внешне так или иначе?

У Вас была та же проблема прежде? Какие-либо идеи, каково лучшее решение для этой проблемы было бы?

5
задан Phil 30 March 2010 в 08:40
поделиться

3 ответа

Вы можете предоставить сопоставления для сторонних классов, используя Annox .

2
ответ дан 14 December 2019 в 13:32
поделиться

Вы можете аннотировать свой класс SuperPerson с помощью @XmlTransient, что укажет JaxB не автоматически выстроить все свойства. А затем аннотируйте каждый получатель (или поле), которое вы хотите сериализовать, соответствующей аннотацией.

Этот подход не очень элегантен, но он должен работать

0
ответ дан 14 December 2019 в 13:32
поделиться

Реализация EclipseLink JAXB (MOXy) предлагает средства представления метаданных в виде XML, которые вы можете использовать:

Вы можете указать некоторые метаданные с помощью аннотаций, а остальные в виде XML. Ниже показано, как будет выглядеть ваш документ:

1
ответ дан 14 December 2019 в 13:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: