Найти в Дзене
Software development

Маршаллинг/демаршаллинг xml

Мой стандартный класс для маршаллинга: 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

Мой стандартный класс для маршаллинга:

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
*
*
@param object - объект
*
@param pretty - true - форматированный XML, false - нет
*
@param <T> - тип объекта
*
@return - строка XML
*
@throws JAXBException - вызывается если неполадки с маршализацией
*/
public static <T> String toXml(T object, boolean pretty) throws JAXBException {
final JAXBContext jaxbContext = JAXBContext.
newInstance(object.getClass());
final Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.
JAXB_FORMATTED_OUTPUT, pretty);
final StringWriter sw = new StringWriter();
jaxbMarshaller.marshal(object, sw);
return sw.toString();
}
}

java, spring boot, xml