JaxB Marhsalling utilizando interfaces

Tengo la siguiente clase, quiero ser capaz de producir xml de forma dinámica en una interfaz, con implementaciones cambiantes ... es posible ... lo he intentado con poca suerte ...

@xmlRootElement
public class Vehicles {
   private String id;

   private List<VehicleType> types;


   .... various setters and getters...
   ... with annotated getters...

}

public interface VehicleType {
   public String getName();
}

public Car implements VehicleType {

    private String name;
    private String wheels;

    ...various constructors...

    @XmlElement
    public String getName() {
      return name;
    }

    @XmlElement
    public String getWheels() {
      return wheels;
    }

 }

public Motorbike implements VehicleType {

    private String name;
    private String exhaust;

    ...various constructors...

    @XmlElement
    public String getName() {
      return name;
    }

    @XmlElement
    public String getExhaust() {
      return exhaust;
    }

 }

Quiero que la mezcla de vehículos produzca el siguiente resultado:

<vehicles>
   <types>
     <car>
        ..car specific elements
     </car>
     <motorbike>
        .. mototrbike specific elements
     <motorbike>
   </types>
</vehicles> 

La clase de vehículos no puede saber sobre las implementaciones, o cuáles existen ... solo conoce sobre la interfaz, que aquí estoy usando realmente como una interfaz de marcador ... para permitirme llenar una lista con diferentes implementaciones en tiempo de ejecución ...

¿Hay alguna forma en la que pueda obtener jaxb be para representar el resultado como xml sin que el padre sepa realmente sobre las implementaciones?

Respuestas a la pregunta(1)

Su respuesta a la pregunta