I have something like
@XmlElementWrapper(name="Mylist")
List<Items> myItems = new ArrayList<Items>()
and that comes out like
<Mylist>
   <myItems>item 1</myItems>
   <myItems>item 2</myItems>
   <myItems>item 3</myItems>
</Mylist>
Is it possible to make this come out more like
<Mylist>
   <myItems>item 1, item 2, item 3</myItems>
</Mylist>
Since the data I am after is all just textual anyway?
You can use @XmlList to make it a space separated value.
For a comma separated list you will need to use an XmlAdapter. For more information on XmlAdapter see:
Here's an XmlAdapter to handle comma separated lists:
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.adapters.XmlAdapter;
public class CommaSeparatedListAdapter extends XmlAdapter<String, List<String>> {
    @Override
    public List<String> unmarshal(final String string) {
        final List<String> strings = new ArrayList<String>();
        for (final String s : string.split(",")) {
            final String trimmed = s.trim();
            if (trimmed.length() > 0) {
                strings.add(trimmed);
            }
        }
        return strings;
    }
    @Override
    public String marshal(final List<String> strings) {
        final StringBuilder sb = new StringBuilder();
        for (final String string : strings) {
            if (sb.length() > 0) {
                sb.append(", ");
            }
            sb.append(string);
        }
        return sb.toString();
    }
}
You would use it like this:
@XmlElementWrapper(name="Mylist")
@XmlJavaTypeAdapter(CommaSeparatedListAdapter.class)
List<Items> myItems = new ArrayList<Items>()
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With