prev | table of contents | next |
XmlList
The attribute XmlList
instructs JAXB that a list value is to
be represented as a blank separated list of values of some simple type
rather than a list of individual child elements. The annotated class
Sentence
@XmlType class Sentence { @XmlElement List<String> word; }produces XML such as
<sentence> <word>This</word> <word>is</word> <word>verbose</word> </sentence>In contrast, the addition of
XmlList
@XmlType class Sentence { @XmlElement @XmlList List<String> word; }results in
<sentence> <word>This is terse</word> </sentence>Needless to say, using the XML representation of lists for strings is risky unless you can be sure that no string value contains a blank.
Also, remember the restriction for XML Schema's xsd:list
,
which is only valid for types that are simple according to XML Schema
rules. An class such as Paragraph
@XmlType class Paragraph { @XmlElement @XmlList // Not valid - Sentence isn't a simple type. List<Sentence> word; }is bound to fail as soon as JAXB inspects the annotations. (The Java compiler has no way of knowing that something is amiss here.)
prev | table of contents | next |