什么是Jaxb等效的Text节点值?

时间:2009-09-30 03:57:48

标签: java xml-serialization annotations jaxb jaxb2

我希望转换一个看起来像这样的类......

public class Amenity {
   public String id;
   public String value;
}

使用JaxB注释进入以下XML:

<amenity id="id-string-here">value-string-here</amenity>

有谁知道在value成员变量上使用什么注释来完成此任务?我到目前为止最接近的是:

@XmlRootElement
public class Amenity {
   @XmlAttribute
   public String id;
   @XmlElement
   public String value;
}

不幸的是,这种方法不允许我指定value成员变量不应该呈现为自己的标记<value></value>

4 个答案:

答案 0 :(得分:25)

我对此并不是百分之百确定,但尝试使用@XmlValue注释而不是@XmlElement

答案 1 :(得分:4)

看起来这个问题是指文本节点而不是CDATA节点,但这里有一个关于EclipseLink JAXB(MOXy)如何处理CDATA的链接:

答案 2 :(得分:1)

This documentation写道:

  

Q值。如何让Marshaller生成CDATA块?

     

一个。 JAXB无法直接使用此功能,但您可以配置Apache Xerces-J XMLSerializer来生成CDATA块。有关更多详细信息,请查看JaxbCDATASample.java示例应用程序。

(顺便说一句,这不能回答你的特定问题,但由于问题标题具有误导性,这是jaxb CDATA的第一个谷歌搜索结果,我回答了一个不同的问题)

答案 3 :(得分:0)

JAXB不支持对CDATA xml类型进行编组/编组。