JAXB使用变量值作为XML标记

时间:2014-05-23 20:23:09

标签: java jaxb

问题很简单,但我找不到其他人有同样的问题。 我正在尝试使用JAXB来创建XML,所以 我有课:

@XmlRootElement
public class Container{
private String name;
private String value;

public Container(String name, String value){
    this.name = name;
    this.value = value;
  }
}

使用编组:

公共课演示{

public static void main(String[] args) throws Exception {
    JAXBContext jc = JAXBContext.newInstance(Container.class);

    Container container = new Container("potatoes","5");


    Marshaller marshaller = jc.createMarshaller();
    marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
    marshaller.marshal(container, System.out);
  }
 }

我收到的输出是:

<Container>
<name>potatoes</name>
<value>5</value>
 </Container>

是否有任何输出方式如下:

<Container>
<potatoes>5</potatoes>
</Container>

使用JAXB?

1 个答案:

答案 0 :(得分:3)

您可以使用@ XmlAnyElement-annotated属性并将返回元素用作JAXBElement:

@XmlAnyElement
public JAXBElement<String> getThing() {
    return new JAXBElement<String>(new QName(this.name), String.class, this.value);
}