JAXB Lista genérica de clasificación con nombre de elemento raíz variable

Así que estoy tratando de reunir una lista genérica de objetos, pero quiero que cada lista tenga un XmlRootElement específico (nombre ...). De la forma en que lo hago, sé que no es realmente posible sin escribir una clase de contenedor específica para cada tipo de objeto y declarar el XmlRootElement. Pero tal vez hay otra manera ...?

Considere las siguientes clases:

abstract public class Entity {

}

@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name="user")
public class User extends Entity {

    private String username;

    public String getUsername() {
        return username;
    }

    public void setUsername( String username ) {
        this.username = username;
    }

}

@XmlRootElement
public class EntityList<T extends Entity> {

    @XmlAnyElement(lax=true)
    private List<T> list = new ArrayList<T>();

    public void add( T entity ) {
        list.add( entity );
    }

    public List<T> getList() {
        return list;
    }

}


public class Test {

    public static void main( String[] args ) throws JAXBException {

        User user1 = new User();
        user1.setUsername( "user1" );

        User user2 = new User();
        user2.setUsername( "user2" );

        EntityList<User> list = new EntityList<User>();
        list.add( user1 );
        list.add( user2 );

        JAXBContext jc = JAXBContext.newInstance( EntityList.class, User.class );
        Marshaller m = jc.createMarshaller();
        m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
        m.marshal( list, System.out );
   }

}

Como se esperaba, esto produce:

<entityList>
    <user>
        <username>user1</username>
    </user>
    <user>
        <username>user2</username>
    </user>
</entityList>

Lo que quiero es poder modificar el nombre de esa etiqueta, dependiendo del tipo de Entidad que creo, la EntityList con.

Sé que estamos hablando de compilación vs tiempo de ejecución aquí, pero ¿tal vez hay algún tipo de forma hacky para cambiar el contenedor del elemento padre del hijo?

Respuestas a la pregunta(2)

Su respuesta a la pregunta