0
我試圖將下面的XML轉換成JAXB帶註釋的類,但我無法想到元素在XML根內重複出現的解決方案。將XML轉換爲JAXB帶註釋的類
<addresses xmlns='http://jabber.org/protocol/address'>
<address type='to' jid='[email protected]/Work' />
<address type='cc' jid='[email protected]/Home' />
</addresses>
我有這個類映射到XML,我想與屬性「類型」和「JID」元素「地址」,形成XML根元素列表中的每個項目的地址「內我傳入構造函數。
@XmlRootElement(name = "addresses", namespace = "http://jabber.org/protocol/address")
@XmlAccessorType(XmlAccessType.FIELD)
public class Addresses {
@XmlElement
private List<String> address;
private Addresses() {
// Private no-args default constructor for JAXB.
}
public Addresses(List<String> address) {
this.address = address;
}
}
例如,如果我通過列表(「用戶1」,「用戶2」,「用戶3」)實例化對象時,生成的XML將看起來像:
<addresses xmlns='http://jabber.org/protocol/address'>
<address type='to' jid='User1' />
<address type='to' jid='User2' />
<address type='to' jid='User3' />
</addresses>
嘗試閱讀解決方案發布[這裏](http://stackoverflow.com/questions/24307106/how-to-annotate-a-list-using-xmlelement)。但似乎我不能使用@XmlElementWrapper註釋,因爲沒有辦法設置根元素的屬性(例如地址的名稱空間) – jeffsia
「」的子元素不是簡單的字符串值。它們是空的''具有兩個屬性的元素,所以你需要一個表示該對象的類,即具有兩個字段的對象:'type'和'jid'。然後將'List '替換爲'List '。 –
Andreas
首先構建一個'xsd schema',然後使用maven插件'org.jvnet.jaxb2.maven2'或'xjc'來構建'JAXB'類。它更清楚地瞭解元素層次結構 – ulab