2012-02-14 11 views
3

jaxbライブラリをバージョン2.0に更新しました。 次のjar、jaxb-api-2.0.jar、およびjaxb-imp-2.0.jarを使用しています。 問題は、@ XmlRootElement(name = "something")を使用していないことです。 しかし、以前のライブラリの助けを借りて、xmlは生成されたxmlで定義された名前 "something"を使用しました。今は、名前属性に定義された「何か」の代わりに、ラクダのケースでクラス名を取ります。それは最新のjaxbライブラリのバグですか?助けてください!xaxrootelementのname属性を使用していないjaxbバージョン2.0

答えて

1

以下は、役立つ例です。 @XmlRootElementアノテーションは、XMLドキュメントのルート要素の名前を制御します。内部要素の名前を制御する場合は、@XmlElementアノテーションを使用できます。私の子クラスで

SomeObjectの

package forum9272675; 

import javax.xml.bind.annotation.XmlElement; 
import javax.xml.bind.annotation.XmlRootElement; 

@XmlRootElement(name="something") 
public class SomeObject { 

    private SomethingElse somethingElse; 

    @XmlElement(name="something-else") 
    public SomethingElse getSomethingElse() { 
     return somethingElse; 
    } 

    public void setSomethingElse(SomethingElse somethingElse) { 
     this.somethingElse = somethingElse; 
    } 

} 

SomethingElse

package forum9272675; 

public class SomethingElse { 

} 

出力

<?xml version="1.0" encoding="UTF-8"?> 
<something> 
    <something-else/> 
</something> 
+1

ありがとうございました。はい、私は自分のルートクラスが実際に他のクラスを呼び出していることに気づきませんでした。ルート要素では名前はうまく表示されていますが、問題は呼び出されたクラスのルート要素にあります。溶液。 –

0

私はuのでした@XmlRootElement(name = "some-thing")を歌います。それに加えて、@ XmlType(name = "some-thing")を使用すると、私の問題は解決しました!

関連する問題