XStream: как сопоставить смешанные атрибуты и элементы xml с POJO?


person anonymous    schedule 23.02.2010    source источник


Ответы (3)


Аннотируйте свой класс следующим образом (отметьте http://x-stream.github.io/annotations-tutorial.html для подробностей):

@XStreamAlias("cat")
class Cat {
  @XStreamAsAttribute
  int age;
  String name;
}

Теперь просто используйте XStream следующим образом:

xstream = new XStream();
xstream.processAnnotations(Cat.class);
Cat roundtripGarfield = (Cat)xstream.fromXML(xstream.toXML(garfield));
person Christopher Oezbek    schedule 23.02.2010
comment
Как раз то же самое писал. Добавьте ссылку на документы с аннотациями: xstream.codehaus.org/annotations-tutorial.html - person daveb; 24.02.2010
comment
+1 Я совершенно упустил из виду, что для этого будет аннотация. Надо было подумать... - person MCory; 24.02.2010
comment
@MCory: Нет проблем ;-) Если вы понимаете unmarshal, вы можете решить вопрос в stackoverflow.com/questions/2045290/, на который мне было бы интересно увидеть ответ. - person Christopher Oezbek; 24.02.2010
comment
Спасибо, Кристофер - я ценю совет (и не стесняйтесь проверить ответ, чтобы увидеть, стоит ли он чего-нибудь; он уже опубликован). - person MCory; 24.02.2010
comment
Спасибо за советы, кстати, без аннотаций у меня тоже работал xstream.aliasAttribute(Cat.class, age, age). - person anonymous; 24.02.2010


Вы можете использовать XPath.

Это очень быстро на современных JVM и передаваемый навык. Например. вы можете использовать XPath на .NET и т. д.

person Fortyrunner    schedule 23.02.2010