0
我有一個JAXB註解類客戶如下需要一個空的XML,而解組JAXB註釋類
@XmlRootElement(namespace = "http://www.abc.com/customer")
public class Customer{
private String name;
private Address address;
@XmlTransient
private HashSet set = new HashSet<String>();
public String getName(){
return name;
}
@XmlElement(name = "Name", namespace = "http://www.abc.com/customer")
public void setName(String name){
this.name = name;
set.add("name");
}
public String getAddress(){
return address;
}
@XmlElement(name = "Address", namespace = "http://www.abc.com/customer")
public void setAddress(Address address){
this.address = address;
set.add("address");
}
public HashSet getSet(){
return set;
}
}
我需要返回表示此給用戶一個空的XML,這樣他可以填充necesary值在XML和發送請求 所以我需要的是:
<Customer>
<Name></Name>
<Address></Address>
</Customer>
如果我簡單地創建一個空的對象
Customer cust = new Customer() ;
marshaller.marshall(cust,sw);
我所得到的只是頂級元素,因爲該類的其他字段未設置。
我能做些什麼來獲得這樣一個空的XML?我嘗試將nillable = true註釋添加到元素,但是,這返回給我一個xsi:nil =「true」的XML,然後導致我的反編組人員忽略此操作。
我該如何做到這一點?
我的類可以有任何數據類型的成員。如果它的整數,我將不得不初始化爲0,布爾值爲false等 我正在寫一個通用程序,應該給我一個空白的所有元素,而不考慮數據類型,還初始化複雜類型及其元素與一個空白值。這意味着我將不得不循環遍歷所有元素及其子元素。 – sswdeveloper 2010-04-22 11:04:47
@sswdeveloper:的確如此。然而,這是它的工作方式。 XML中的' '意味着不存在任何元素的不同之處。如果你想要這個元素,你必須提供一個值。 –
skaffman
2010-04-22 11:14:27