我有一个名为XmlSource的类,它包含XmlSourceAudioLang类型的对象集合,而XmlSourceAudioLang类有一个名为language的字段,我需要将其编组为XML,即:
@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标记?
答案 0 :(得分: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;
}