Я нуждаюсь в некоторой помощи относительно следующей проблемы с JAXB 2.1.
Образец: я создал класс SpecialPerson, который расширяет Человека абстрактного класса. Теперь я хочу преобразовать свою структуру объекта в XML-схему с помощью JAXB. Таким образом, я не хочу, чтобы Человек тип XML, казался, в моей XML-схеме сохранять схему простой. Вместо этого я хочу, чтобы поля класса Человека появились в типе SpecialPerson XML.
Обычно я добавил бы аннотацию @XmlTransient на уровне класса в код Человека.
Проблема состоит в том, что Человек является сторонним классом, и у меня нет возможности добавить @XmlTransient здесь. Как я могу сказать JAXB, что он должен проигнорировать класс Человека, не аннотируя класс. Действительно ли возможно настроить это внешне так или иначе?
У Вас была та же проблема прежде? Какие-либо идеи, каково лучшее решение для этой проблемы было бы?
Вы можете предоставить сопоставления для сторонних классов, используя Annox .
Вы можете аннотировать свой класс SuperPerson с помощью @XmlTransient, что укажет JaxB не автоматически выстроить все свойства. А затем аннотируйте каждый получатель (или поле), которое вы хотите сериализовать, соответствующей аннотацией.
Этот подход не очень элегантен, но он должен работать
Реализация EclipseLink JAXB (MOXy) предлагает средства представления метаданных в виде XML, которые вы можете использовать:
Вы можете указать некоторые метаданные с помощью аннотаций, а остальные в виде XML. Ниже показано, как будет выглядеть ваш документ: