I am looking to convert a class that looks like this ...
public class Amenity {
public String id;
public String value;
}
into the following XML using JaxB annotations:
<amenity id="id-string-here">value-string-here</amenity>
Does anyone know what annotation to use on the value
member variable to accomplish this? The closest I've gotten so far is:
@XmlRootElement
public class Amenity {
@XmlAttribute
public String id;
@XmlElement
public String value;
}
Unfortunately this approach doesn't allow me to specify that the value
member variable should not be rendered as its own tag <value></value>
.
I'm not 100% sure about this, but try to use an
@XmlValue
annotation instead of@XmlElement
.It looks like the question was referring to text nodes not CDATA nodes, but here is a link on how EclipseLink JAXB (MOXy) handles CDATA:
This documentation writes:
(btw, this does not answer your particular question, but since the question title is misleading, and this is the first google result for
jaxb CDATA
, I'm answering a bit different question)JAXB does not support marshaling/marshaling to/from CDATA xml types.