Voglio XML come questo:Come utilizzare JAXB @XmlValue in una sottoclasse?
<simple>Foo</simple>
posso farlo con successo tramite una classe JAXB che assomiglia a questo:
@XmlRootElement(name="simple")
class Simple {
@XmlValue
public String contents;
}
Ma ora ho bisogno di rendere la classe semplice essere una sottoclasse di un altro classe in questo modo:
@XmlRootElement(name="simple")
class Simple extends OtherClass {
@XmlValue
public String contents;
}
che non riesce con @XmlValue is not allowed on a class that derives another class.
non può facilmente refactoring la superclasse di distanza (a causa del modo in cui stiamo usando @XmlE lementRef su una classe wrapper). C'è una soluzione che mi consentirà di annotare la mia sottoclasse per generare quel semplice XML?
Wow, grazie per l'esempio dettagliato! Sfortunatamente, il mio contenitore dell'app (Karaf) utilizza jaxb-impl/jaxb-xjc da ServiceMix e sarebbe difficile da cambiare, credo. –
@ChrisDolan - Dipende dall'ambiente dell'applicazione. Il provider JAXB può essere configurato a livello di modello. Nel seguente post MOXy viene utilizzato nel server GlassFish che utilizza il RI JAXB per impostazione predefinita: http://blog.bdoughan.com/2010/08/creating-restful-web-service-part-35.html –
@ChrisDolan - quando si utilizza il JAXB RI si può essere in grado di marcare 'OtherClass' come @XmlTransient: http://blog.bdoughan.com/2011/06/ignoring-inheritance-with-xmltransient.html –