Domanda

Primo tentativo di utilizzare questo sito interessante, dopo aver cercato per 2 ore: Quindi ho un Java Bean che mi viene dato (posso solo annotare non cambiare) e ho bisogno di mapparlo su XML usando JAXB. Vorrei che i tipi di primitive non venissero stampati quando contengono la lingua predefinita o predefinita dall'utente.

Come detto, non posso cambiare il java bean, e quindi cambiare i tipi primitivi nelle loro controparti Object Wrappers.

Come lo fai meglio?

Esempio di bean:

class Foo {  
public String name;  
// -1 is user defined default, to indicate field is not set.  
public long someIdx=-1;  
// ...  
}  

Foo f = new Foo();  
f.name = "Duke";

per questa istanza, ciò che vorrei è il seguente output:

<foo><name>Duke</name></foo>
È stato utile?

Soluzione

È possibile utilizzare XmlAdapters di JAXB. Disponibile da JAXB 2.0 (JDK 6.0)

Usando l'adattatore, lasciate solo il bean e annotate / cambiate una classe completamente diversa. Questo non dovrebbe essere un problema nel tuo caso.

Vedi la mia risposta qui

Vedi il post sul blog dell'autore di JAXB

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top