2011-12-21 13 views
1

を必要とJAXBクラスの数を減らします。プレーヤーのための1つ; 1つはフィットネスのためです。私はこれが過度だと思う。とにかくこれをカバーするアノテーションをスマートに使用したFitness属性のPlayerクラスを持つことができますか?は、私はこのようなものですXMLを持って

また、私はアンマーシャリングしています。私は興味のフィットネス/スピードのみを持っています。私は適性/強さに関心がありません。私は、Player JAXBクラスにただのスピード属性を持たせたいと思っています。これを行うためにとにかくありますか?

ありがとうございます。

+1

標準JAXBではありません。しかし、MOXyのようなものからの独自の拡張機能は、それを行うことができるかもしれません。 – skaffman

答えて

1

注:私はEclipseLink JAXB (MOXy)人とJAXB 2 (JSR-222)専門家のメンバーです。

skaffmanにより述べたように、MOXYこのユースケースに使用することができる@XmlPath拡張有する:

import javax.xml.bind.annotation.*; 
import org.eclipse.persistence.oxm.annotations.XmlPath; 

@XmlRootElement 
@XmlAccessorType(XmlAccessType.FIELD) 
@XmlType(propOrder={"id", "name", "speed", "strength"}) 
public class Player { 

    private String id; 
    private String name; 

    @XmlPath("fitness/speed/text()") 
    private String speed; 

    @XmlPath("fitness/strength/text()") 
    private String strength; 

} 

詳細情報

+0

Blaiseありがとうございます。リリースのドキュメントをチェックするだけで、あなたのリリースが互換性のあるJDKのバージョンを知りたいと思っていましたか?また、eclipselinkはJPAのリファレンス実装です。 MOXyの今後のJDKへのあなたのアイデアを見ることができると思いますか? – dublintech

+0

@dublintech - EclipseLink MOXyには、最低限のJava SE 5(JDK 1.5)が必要です。 JAXB 2専門家グループの一員として、今後のJAXB仕様に最も役立つ拡張機能を追加する予定です。これは、JPA仕様の進め方です。 WebLogicユーザーである場合、MOXyはWebLogic 12cのデフォルトのJAXB実装(http://blog.bdoughan.com/2011/12/eclipselink-moxy-is-jaxb-provider-in.html)になりました。 –

+0

JAXBについての一つのことは、内部クラスが気に入らないことです。それは静的なものだけを許可します。 MOXyにはここに余分な機能がありますか? – dublintech

関連する問題