Parece que XStream (com.thoughtworks.xstream -> xstream 1.4.2) maneja los guiones bajos en los nombres de elementos y atributos de una manera muy extraña. Necesito buscar y analizar un xml de un cliente que tenga caracteres de subrayado en sus atributos. Este es mi primer intento con XStream y estoy un poco decepcionado ya que esperaba evitar todo el feo análisis xml.XStream y caracteres de subrayado
Aquí proporciono una pequeña muestra de prueba para ilustrar el comportamiento. El último ejemplo muestra mi problema.
public class MyTest {
public void testIt() {
C1 a = new C1();
a.a_b= "a_b";
XStream xstream = new XStream();
xstream.processAnnotations(C1.class);
String xml = xstream.toXML(a);
Logger.info(xml);
C1 b = (C1) xstream.fromXML(xml);
Logger.info(b.a_b);
C1 c = (C1) xstream.fromXML("<C1 a_b=\"a_b\"/>");
Logger.info(c.a_b);
}
}
@XStreamAlias("C1")
class C1 {
@XStreamAsAttribute
String a_b;
}
Esto da salida a
INFO: <C1 a__b="a_b"/>
INFO: a_b
INFO: null
Ahora mi pregunta - ¿hay una manera de hacer entender xstream un solo guión?
Muchas gracias. XStream (nuevo StaxDriver (nuevo NoNameCoder())) no funcionó, así que investigaré creando uno personalizado. – eigil
NoNameCoder funciona. Me olvidé de agregar @XStreamAlias ("a_b") a la variable cuando la cambié a ab en función de su sugerencia acerca de las convenciones de nomenclatura de Java. – eigil