2012-01-03 8 views
4

XmlSourceAudioLang型のオブジェクトのコレクションを含むXmlSourceというクラスがあります.XmlSourceAudioLangクラスには、XMLにマーシャルする必要のあるlanguageというフィールドがあります。単一の親タグにコレクションをラップする方法

このセットアップで
@XmlAccessorType(XmlAccessType.FIELD) 
public class XmlSource { 

    @XmlElement(name="original_audio_language", nillable=true) 
    protected Set<XmlSourceAudioLang> originalAudio; 

} 

@XmlAccessorType(XmlAccessType.FIELD) 
public class XmlSourceAudioLang { 

    @XmlElement(nillable = true) 
    private String language; 

} 

、JAXBは、コレクション内の各オブジェクトのoriginal_audio_languageタグを生成する:

<original_audio_language> 
    <language>Ukrainian</language> 
</original_audio_language> 
<original_audio_language> 
    <language>Russian</language> 
</original_audio_language> 

親のoriginal_audio_languageタグが1つだけになるようにバインディングを設定する方法はありますか?

答えて

9

あなたはこれをしたいということを意味すると仮定すると:

<original_audio_language> 
    <language>Ukrainian</language> 
    <language>Russian</language> 
</original_audio_language> 

次に、この試してみてください。

@XmlAccessorType(XmlAccessType.FIELD) 
public class XmlSource { 
    @XmlElementWrapper(name="original_audio_language") 
    @XmlElement(name="language") 
    protected Set<XmlSourceAudioLang> originalAudio; 
} 

@XmlAccessorType(XmlAccessType.FIELD) 
public class XmlSourceAudioLang { 
    @XmlValue 
    private String language;  
} 
+2

それは動作しますが、感謝を。 –

関連する問題