2016-08-22 76 views
0

假設我正在嘗試從對象中創建XML文檔。這可能在單個Food類上使用JAXB註釋,還是需要爲Cost和Flavor創建內部類?序列化多層XML元素

我知道我可以使用@XmlElement或@XmlAttribute來設置我的根元素的直接子元素。但是,我不確定是否/如何創建<cost><Flavor>標籤,如我在此處展示的那樣。

<Food> 
    <cost amt=13.5 unit=USD/> 
    <Flavor spicy=5>It tastes good</Flavor> 
</Food> 


@XmlRootElement("Food") 
public class Food { 

    private float amount; 
    private String units; 
    private String flavorType; 
    private STring flavorDescription; 
} 
+0

我認爲你需要內部類兩種'cost'和'flavor' –

回答

1

添加一個新的Java類成本

public class Cost 
{ 
    @XmlAttribute 
    double amt; 
    @XmlAttribute 
    String unit; 
} 

而且exdend類食品

@XmlRootElement 
public class Food { 

    private float amount; 
    private String units; 
    private String flavorType; 
    private String flavorDescription; 

    private Cost cost; 
    ... 
0

你也可以使用類似這樣的香精類

公共課風味{

私人長辣;
private String shortDesc;

@XmlValue
公共字符串getShortDesc(){
返回shortDesc;
}
public void setShortDesc(String shortDesc){
this.shortDesc = shortDesc;
}
@XmlAttribute
衆長getSpicy(){
回報辛辣;
}
public void setSpicy(long spicy){
this.spicy = spicy;
}

}