Comment pourrais-je le maréchal une Liste de Jaxb Éléments sans en faire une classe wrapper?

Court d'en faire réellement un écrivain et ajoutant chaque élément sur la chaîne. Est-il possible d'obtenir le JAXB marshaller au maréchal une liste d'objets où je peux juste lui donner le nom de l'élément supérieur?

Je sens que je suis proche avec cette

//http://blog.bdoughan.com/2012/07/jaxb-no-annotations-required.html
public <T> String jaxb(Collection<T> o, Class<T> clazz, String plural){
    try {
        ArrayList<T> al = new ArrayList<T>(o.size());
        al.addAll(o);
        JAXBContext jc = JAXBContext.newInstance(ArrayList.class);
        JAXBElement<ArrayList> amenity = new JAXBElement(new QName(plural), ArrayList.class, al);
        Marshaller marshaller = jc.createMarshaller();
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        StringWriter writer = new StringWriter();
        marshaller.marshal(amenity, writer);
        return writer.toString();
    } catch (JAXBException e) {
        throw new RuntimeException(e);
    }
}

mais le résultat est toujours de revenir une liste vide

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<pluralName/>

Est-il un moyen de le faire sans coller manuellement les chaînes de xml ensemble?

Mise à jour

Avec l'aide de Michael Glavassevich j'ai été capable de le faire avec une mise en garde, tous les éléments sont <Item>s

//http://blog.bdoughan.com/2012/07/jaxb-no-annotations-required.html
@SuppressWarnings({ "unchecked", "rawtypes" })
public <T> String jaxb(Collection<T> elements, Class<T> elementClass, String plural){
    try {
        T[] array = (T[]) Array.newInstance(elementClass, elements.size());
        elements.toArray(array);
        JAXBContext jc = JAXBContext.newInstance(array.getClass());
        JAXBElement<T[]> topElement = new JAXBElement(new QName(plural), array.getClass(), array);
        Marshaller marshaller = jc.createMarshaller();
        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
        StringWriter writer = new StringWriter();
        marshaller.marshal(topElement, writer);
        return writer.toString();
    } catch (JAXBException e) {
        throw new RuntimeException(e);
    }
}

Le résultat devient alors

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Basketballs>
    <item>basketball one</item>
    <item>basketball two</item>
</Basketballs>

OriginalL'auteur mike | 2016-02-16