JAXB编组-扩展现有类

JAXB编组-扩展现有类,jaxb,marshalling,base-class,Jaxb,Marshalling,Base Class,我需要使用JAXB通过XML创建一系列Java对象,这些对象都扩展了已经创建的公共基类(不使用JAXB)。例如,假设我正在尝试生成以下JAXB类: Penguin.xml -> Penguin.java Robin.xml -> Robin.java Cardinal.xml -> Cardinal.java 我已经有了一个名为Bird.java的现有基类,我希望上面的三个类能够扩展它 最好的方法是什么 谢谢你的帮助 这非常简单:您需要创建包含以下内容的JAXB绑定文件:

我需要使用JAXB通过XML创建一系列Java对象,这些对象都扩展了已经创建的公共基类(不使用JAXB)。例如,假设我正在尝试生成以下JAXB类:

Penguin.xml  -> Penguin.java
Robin.xml -> Robin.java
Cardinal.xml -> Cardinal.java
我已经有了一个名为
Bird.java
的现有基类,我希望上面的三个类能够扩展它

最好的方法是什么


谢谢你的帮助

这非常简单:您需要创建包含以下内容的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>


您可以找到有关此选项(以及其他可爱的东西)的更多信息。

有没有办法指定巫婆类扩展Bird类。如果我只想让Robin和Cardinal扩展Bird类呢?+1如果出现错误:“严格模式下不允许使用供应商扩展绑定(jaxb:extensionBindingPrefixes)。”,如果在maven pom中,请在maven-jaxb2中使用:-extension-plugin@Chobicus:您的问题的答案是您特别需要激活的。