unmarshal parse jaxbunmarshaller bean java xml jaxb

java - parse - ¿Cómo configurar JAXB para que recorte los espacios en blanco al desmarcar el valor de la etiqueta?



object to xml java spring (1)

¿Cómo configurar JAXB unmarshaller para que recorte los espacios en blanco iniciales y finales de las cadenas?

Por ejemplo, consideremos un enlace simple entre un Java Bean y XML usando las anotaciones de JAXB:

@XmlRootElement(name="bean") class Bean { @XmlElement(required=true) String name; @XmlElement(required=true) int number; }

Me gustaría poder descomponer XML dado a continuación, por lo que bean.name no incluye espacios en blanco iniciales y finales: es " Mi nombre ", no " / n Mi nombre / n ".

<bean> <name> My name </name> <number>1</number> </bean>


Use una clase de adaptador personalizada. Estaba pensando que NormalizedStringAdapter haría el trabajo, pero es solo para desasociar y no hace lo que quieres de todos modos.

public class MyNormalizedStringAdapter extends XmlAdapter<String, String> { @Override public String marshal(String text) { return text.trim(); } @Override public String unmarshal(String v) throws Exception { return v.trim(); } }

luego decora el campo con tu adaptador así:

@XmlElement(required=true) @XmlJavaTypeAdapter(MyNormalizedStringAdapter.class) String name;