From c8271e5684e26b57880de7f1b8a3b0195ad6f68e Mon Sep 17 00:00:00 2001 From: Christof Rabensteiner Date: Mon, 15 Apr 2019 14:08:12 +0200 Subject: Add Marshaller for autogenerated Schema Types --- src/main/java/at/gv/egiz/moazs/MyMarshaller.java | 51 ++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 src/main/java/at/gv/egiz/moazs/MyMarshaller.java (limited to 'src/main/java/at/gv/egiz/moazs/MyMarshaller.java') diff --git a/src/main/java/at/gv/egiz/moazs/MyMarshaller.java b/src/main/java/at/gv/egiz/moazs/MyMarshaller.java new file mode 100644 index 0000000..609a3c8 --- /dev/null +++ b/src/main/java/at/gv/egiz/moazs/MyMarshaller.java @@ -0,0 +1,51 @@ +package at.gv.egiz.moazs; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import javax.xml.bind.*; +import java.io.ByteArrayInputStream; +import java.io.StringWriter; + +@Component +public class MyMarshaller { + +// @Value("classpath:mzs/app2mzs.xsd") +// private Resource mzsSchema; +// +// @Value("classpath:mzs/mzs_mypersondata_en.xsd") +// private Resource mzsPersonSchema; +// +// @Value("classpath:zusemsg/zuse_p2.xsd") +// private Resource msgSchema; +// +// @Value("classpath:zusemsg/zuse_mypersondata_en_p2.xsd") +// private Resource msgPersonSchema; + + + @Autowired + private JAXBContext context; + + public byte[] toBytes(JAXBElement element) { + try { + Marshaller marshaller = context.createMarshaller(); + StringWriter sw = new StringWriter(); + marshaller.marshal(element, sw); + return sw.toString().getBytes(); + } catch (JAXBException e) { + throw new RuntimeException(e); + } + } + + public JAXBElement toJAXBElement(byte[] bytes) { + try { + Unmarshaller unmarshaller = context.createUnmarshaller(); + + var stream = new ByteArrayInputStream(bytes); + return (JAXBElement) unmarshaller.unmarshal(stream); + + } catch (JAXBException e) { + throw new RuntimeException(e); + } + } +} -- cgit v1.2.3