Маршаллинг одного и того же объекта двумя разными способами с использованием стандартного JAXB? - PullRequest
1 голос
/ 23 февраля 2012

У меня есть класс Person (помеченный @XmlRootElement) в Java с двумя свойствами (имя, день рождения), которые мне нужно маршалировать двумя разными способами, генерируя два разных файла XML.

В первом файле объект Person должен содержать только свойство name:

<Person>
    <name>John Doe</name>
</Person>

Во втором файле объект Person должен содержать все свойства.

<Person>
    <name>John Doe</name>
    <birthday>1980-01-01</birthday>
</Person>

Есть ли способ добиться этого с JAXB?

С уважением, Jochen

1 Ответ

1 голос
/ 24 февраля 2012

Примечание: Я EclipseLink JAXB (MOXy) и являюсь членом JAXB 2 (JSR-222) экспертная группа.

Вы можете использовать аннотации JAXB для предоставления одного представления и использовать внешний связующий документ MOXy для предоставления альтернативных представлений.

Вариант использования 1 -Незначительные различия между представлениями

По умолчанию внешний картографический документ MOXy используется для переопределения метаданных, предоставляемых аннотациями.Это позволяет настроить представление между версиями.Ниже приведена ссылка на ответ, который я дал с подробным примером:

Вариант использования 2 - Основные различия между представлениями

Внешний картографический документ MOXy также можно использовать для переопределения всех аннотаций.Это полезно, когда представления не связаны.Ниже приведена ссылка на пример, в котором я сопоставляю одну и ту же объектную модель с метеорологическими службами Google и Yahoo:

Для получения дополнительной информации

...