Собственно, на сайте XStream есть ответ - в руководстве по конвертеру;)
С http://x -stream.github.io / converter-tutorial.html :
public Object unmarshal(HierarchicalStreamReader reader,
UnmarshallingContext context) {
Birthday birthday = new Birthday();
if (reader.getAttribute("gender").charAt(0) == 'm') {
birthday.setGenderMale();
} else {
birthday.setGenderFemale();
}
reader.moveDown();
Person person = (Person)context.convertAnother(birthday, Person.class);
birthday.setPerson(person);
reader.moveUp();
reader.moveDown();
Calendar date = (Calendar)context.convertAnother(birthday, Calendar.class);
birthday.setDate(date);
reader.moveUp();
return birthday;
}
(это самый последний пример / блок кода на странице.)
НТН
РЕДАКТИРОВАТЬ: Просто хотел добавить, что вы хотите пройти весь этот учебник, а не просто искать этот блок кода. Вам нужно будет создать свой собственный конвертер и зарегистрировать его в своем экземпляре XStream. (Вероятно, очевидно, но на всякий случай ...)