Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 向JAX-B生成的元素添加静态属性_Java_Xml_Jaxb - Fatal编程技术网

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

Java 向JAX-B生成的元素添加静态属性,java,xml,jaxb,Java,Xml,Jaxb,假设我有这样一个JAXB元素: @XmlElement private double value; <value>3.14159</value> 这将生成如下所示的XML: @XmlElement private double value; <value>3.14159</value> 3.14159 现在,我如何修改我的声明(或定制JAXB编组)以生成如下XML: <value type="double">3.14159&l

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

@XmlElement
private double value;
<value>3.14159</value>
这将生成如下所示的XML:

@XmlElement
private double value;
<value>3.14159</value>
3.14159
现在,我如何修改我的声明(或定制JAXB编组)以生成如下XML:

<value type="double">3.14159</value>
3.14159
type
属性将始终具有相同的值,即“double”


谢谢

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

public class MyDouble {
    @XmlValue
    private double value;

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

}
因此,您的代码变成:

@XmlElement
private MyDouble value;

完美的我总是忘记@XmlValue。谢谢