JAXB Marshalling - расширение существующего класса

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

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

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

Каков наилучший способ сделать это?

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

1 ответ

Решение

Это очень просто: вам нужно создать файл привязки 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>

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

Другие вопросы по тегам