Мой стандартный класс для маршаллинга: public class XmlUtils {
/**
* XML в объект
*
* @param clazz - класс объекта
* @param xml - XML строка
* @param <T> - тип объекта
* @return - объект
* @throws JAXBException - вызывается если проблемы с демаршлизацией
*/
public static <T> T fromXml(Class<T> clazz, String xml) throws JAXBException {
final JAXBContext context2 = JAXBContext.newInstance(clazz);
final Unmarshaller unmarshaller = context2.createUnmarshaller();
return clazz.cast(unmarshaller.unmarshal(new StreamSource(new StringReader(xml))));
}
/**
* Объект в неформатированный XML
*
* @param object - объект
* @param <T> - тип объекта
* @return - строка XML
* @throws JAXBException - вызывается если неполадки с маршализацией
*/
public static <T> String toXml(T object) throws JAXBException {
return toXml(object, false);
}
/**
* Объект в XML