2 u010875056 u010875056 于 2016.01.23 05:39 提问

关于JAXB生成XML的小问题

我需要用JAXB生成如下的XML文件
图片说明
但是无法加入图中的属性type。
我的代码如下:
package Task2.Generated;

import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"food"
})
@XmlRootElement(name = "menu")
public class Menu {

@XmlElement(required = true)
protected List<Menu.Food> food;

public List<Menu.Food> getFood() {
    if (food == null) {
        food = new ArrayList<Menu.Food>();
    }
    return this.food;
}

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "name",
    "price",
    "description",
    "calories",
    //"type"
})
public static class Food {
    //private String type;  

    @XmlElement(required = true)
    protected String name;
    @XmlElement(defaultValue = "1")
    protected float price;
    @XmlElement(required = true, defaultValue = "")
    protected String description;
    protected int calories;
    @XmlAttribute(name = "category", required = true)
    protected String category;
    @XmlAttribute(name = "type", required = true)
    protected String type;
    public String getName() {
        return name;
    }
    public void setName(String value) {
        this.name = value;
    }
    public float getPrice() {
        return price;
    }
    public void setPrice(float value) {
        this.price = value;
    }
    public String getDescription() {
        return description;
    }
    public void setDescription(String value) {
        this.description = value;
    }
    public int getCalories() {
        return calories;
    }
    public void setCalories(int value) {
        this.calories = value;
    }

    public String getCategory() {
        return category;
    }
    public void setCategory(String value) {
        this.category = value;
    }




    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {

        "type"
    })
    public static class Description {
        //private String type;  


        @XmlAttribute(name = "type", required = true)
        protected String type;
        public String getType() {
            return type;
        }
        public void setType(String value) {
            this.type = value;
        }
  }
}

}

4个回答

u010875056
u010875056   2016.01.28 08:16
已采纳

自己做出了了,就是加个class

devmiao
devmiao   Ds   Rxr 2016.01.23 09:33
u010875056
u010875056 我自己已经做出了了。。。。当时太累出了个送分题都没人答
接近 2 年之前 回复
u010875056
u010875056 我想在生成的XML元素description中增加属性type,就像<description type="hot">bad</description>,我现在的代码无法把type加进去。你给的链接我看了,没有解决这种情况的
接近 2 年之前 回复
made_differ
made_differ   2016.01.23 11:50

遇到什么问题?描述清楚

made_differ
made_differ 回复浅水微渤:用dom4j
接近 2 年之前 回复
u010875056
u010875056 我想在生成的XML元素description中增加属性type,就像<description type="hot">bad</description>,我现在的代码无法把type加进去
接近 2 年之前 回复
u010875056
u010875056   2016.01.28 08:16

自己做出了了,就是加个class

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!