JAXB Java a XML: cómo no imprimir miembros de tipo primitivo cuando está predeterminado
-
22-07-2019 - |
Pregunta
Primer intento de usar este sitio genial, después de buscar durante 2 horas: Así que tengo un Java Bean que se proporciona (solo puedo anotar, no cambiar) y necesito asignarlo a XML usando JAXB. Me gustaría que los tipos primitivos no se impriman cuando contienen su idioma predeterminado o un valor predeterminado definido por el usuario.
Como dije, no puedo cambiar el bean Java y, por lo tanto, cambiar los tipos primitivos en sus contrapartes de Object Wrappers.
¿Cómo lo haces mejor?
Bean de muestra:
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";
para esta instanciación, lo que me gustaría es el siguiente resultado:
<foo><name>Duke</name></foo>
Solución
Podría usar los adaptadores Xml de JAXB. Disponible desde JAXB 2.0 (JDK 6.0)
Usando el adaptador, deja solo el bean y anota / cambia una clase completamente diferente. Esto no debería ser un problema en su caso.