向JAX-B生成的元素添加静态属性

时间:2009-09-23 12:44:48

标签: java xml jaxb

假设我有一个像这样的JAXB元素:

@XmlElement
private double value;

这将生成如下XML:

<value>3.14159</value>

现在,我如何修改我的声明(或自定义JAXB编组)来生成这样的XML:

<value type="double">3.14159</value>

type属性将始终具有相同的值,即“double”。

谢谢!

1 个答案:

答案 0 :(得分:2)

您需要定义一个封装double和string组合的类,然后注释一个静态固定值:

public class MyDouble {
    @XmlValue
    private double value;

    @XmlAttribute(name="type")
    private final static String TYPE = "double";

}

那么你的代码就变成了:

@XmlElement
private MyDouble value;