Jaxb如何抑制tagName但获取值

时间:2018-04-13 22:14:37

标签: java xml jaxb

使用JAXB我正在生成xml。XML必须看起来像

<batch>
<elem id=101>
<field name=country>US</field>
<field name=criteria>Test criteria</field>
:
:
</elem>
</batch>

所有内部内容都是字段。我有一个名为&#39; field&#39;其名称为&#39;和&#39;价值&#39; getter和setter的字符串属性。 &#39; ELEM&#39;班级有&#39;字段&#39;作为arraylist。 当我编组它时使用Jaxb包含&#34;值&#34;也在内场。 实现这一目标的有效方法是什么?我应该过滤&#39;重视&#39;标签(抑制)或java对象结构应该改变? 我得到的是这个

<batch>
<elem id=101>
<field name=country><value>US</value></field>
<field name=criteria><value>Test criteria</value></field>
:
:
</elem>
</batch>

字段类如下所示

import javax.xml.bind.annotation.XmlAttribute;
public class Field {
    private String name;
    private String value;
    public Field() {
    }
    public Field(String name, String value) {
        super();
        this.name = name;
        this.value = value;
    }
    @XmlAttribute
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getValue() {
        return value;
    }
    public void setValue(String value) {
        this.value = value;
    }
}

1 个答案:

答案 0 :(得分:1)

我已经弄清楚它的标签@XmlValue应该应用于Field类中的value字段,并且给我正确的格式化xml。