JAXB Marshalling - расширение существующего класса - PullRequest
4 голосов
/ 20 февраля 2012

Мне нужно создать серию объектов Java через XML с использованием JAXB, которые расширяют общий базовый класс, который уже создан (без использования JAXB).Например, допустим, у меня есть следующие классы JAXB, которые я пытаюсь сгенерировать:

Penguin.xml  -> Penguin.java
Robin.xml -> Robin.java
Cardinal.xml -> Cardinal.java

У меня уже есть существующий базовый класс с именем Bird.java, который я хочу расширить тремя вышеупомянутыми классами.

Как лучше всего это сделать?

Спасибо за помощь!

1 Ответ

7 голосов
/ 22 февраля 2012

Это очень просто: вам нужно создать файл привязки JAXB со следующим содержимым:

<jaxb:bindings version="1.0"
    xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
    xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
>

    <jaxb:globalBindings>
        <!-- All beans should extend this base class: -->
        <xjc:superClass name="org.mycompany.common.Bird" />
    </jaxb:globalBindings>

</jaxb:bindings>

Более подробную информацию об этой опции (и других приятных вещах) вы можете найти здесь .

...