2009-09-23 57 views
2

假设我有一个这样的JAXB元素:添加静态属性JAXB生成的元素

@XmlElement 
private double value; 

这会产生这样的XML:

<value>3.14159</value> 

现在,我该如何修改我的声明(或定制JAXB编组),以产生这样的XML代替:

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

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

谢谢!

回答

2

你需要一个定义,它封装了双重和字符串的组合类,然后注释静态固定值:

public class MyDouble { 
    @XmlValue 
    private double value; 

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

} 

所以你的代码变成:

@XmlElement 
private MyDouble value; 
+0

完美。我总是忘记@XmlValue。谢谢! – 2009-09-23 13:17:04