什么是JAXB相当于一个文本节点值吗?(What is the Jaxb equivalent of

2019-08-17 02:02发布

我期待将一个类,看起来像这样...

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>

Answer 1:

我不是100%地肯定这一点,但尝试使用@XmlValue注释,而不是@XmlElement



Answer 2:

它看起来像这个问题指的是文本节点不CDATA节点,但这里是对的EclipseLink JAXB(莫西)如何处理CDATA链接:

  • http://bdoughan.blogspot.com/2010/07/cdata-cdata-run-run-data-run.html


Answer 3:

该文件写道:

问:如何导致Marshaller产生CDATA块?

答:此功能是无法从JAXB直接,但您可以配置一个Apache Xerces的-J的XMLSerializer生产CDATA块。 请查看JaxbCDATASample.java示例应用程序的更多细节。

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



Answer 4:

JAXB不支持封送处理/从CDATA XML类型的封送处理/。



文章来源: What is the Jaxb equivalent of a Text node value?