Похоже, что XStream (com.thoughtworks.xstream -> xstream 1.4.2) обрабатывает подчеркивания в именах элементов и атрибутов очень странным образом.Мне нужно получить и разобрать xml от клиента, у которого есть подчеркивание в его атрибутах.Это моя первая попытка с XStream, и я немного разочарован, так как надеялся избежать всего уродливого разбора XML.
Здесь я приведу небольшой тестовый образец, чтобы осветить поведение.Последний пример показывает мою проблему.
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;
}
Это выводит
INFO: <C1 a__b="a_b"/>
INFO: a_b
INFO: null
Теперь мой вопрос - есть ли способ заставить XStream понимать единственное подчеркивание?