18

我正在寻找一个看起来像这样的类......

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成员变量不应呈现为它自己的 tag <value></value>

4

4 回答 4

29

我对此不是 100% 确定,但尝试使用@XmlValue注释而不是@XmlElement.

于 2009-09-30T08:43:00.527 回答
4

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

于 2010-07-15T00:12:26.970 回答
1

本文档写道:

问:如何使 Marshaller 生成 CDATA 块?

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

(顺便说一句,这并不能回答您的特定问题,但由于问题标题具有误导性,而且这是 google 的第一个结果jaxb CDATA,我正在回答一个有点不同的问题)

于 2011-02-04T13:07:57.537 回答
0

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

于 2010-07-13T05:21:51.763 回答