2012-02-20 11 views
4

JAXBを使用してXMLを使用して一連のJavaオブジェクトを作成する必要があります。これらのオブジェクトはすべて、すでに作成されている(JAXBを使用しない)共通基本クラスを拡張します。たとえば、のは、私は生成しようとしているJAXBクラスを以下しているとしましょう:私はすでに既存の基本クラスは、私が拡張するために、上記の3つのクラスを希望Bird.javaと呼ばれているJAXBマーシャリング - 既存のクラスを拡張する

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

これを行うにはどのような方法が最適ですか?

ありがとうございました!

答えて

7

それは非常に簡単です:あなたは、次の内容で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> 

詳しい情報あなたがhereを見つけることができます。

+0

ありがとうdma_k。これはうまくいく。 – risingTide

+1

魔法のクラスを指定する方法はBirdクラスを拡張しますか? RobinとCardinalだけがBirdクラスを拡張したいのですが? – Chobicus

+1

+1:「ベンダー拡張バインディング(jaxb:extensionBindingPrefixes)は厳密モードでは許可されていません。あなたの使用する必要があります - 拡張、maven pom使用の場合: - 拡張子 ... maven-jaxb2-プラグインで – user1697575

関連する問題