XStream и символы подчеркивания

Похоже, что XStream (com. Shouldtworks.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 понимать один символ подчеркивания?

21
задан skaffman 17 February 2012 в 17:56
поделиться