package at.gv.egiz.moazs.config; import at.gv.egiz.moazs.scheme.Marshaller; import at.gv.egiz.moazs.scheme.MoaZSPrefixMapper; import com.sun.xml.bind.marshaller.NamespacePrefixMapper; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.oxm.jaxb.Jaxb2Marshaller; import java.util.HashMap; @Configuration public class MarshallerConfig { @Bean public NamespacePrefixMapper msgMapper() { return new MoaZSPrefixMapper(false); } @Bean public NamespacePrefixMapper mzsMapper() { return new MoaZSPrefixMapper(true); } @Bean public Jaxb2Marshaller mzsJaxbMarshaller() { Jaxb2Marshaller marshaller = new Jaxb2Marshaller(); marshaller.setClassesToBeBound( at.gv.zustellung.app2mzs.xsd.ObjectFactory.class, at.gv.zustellung.app2mzs.xsd.persondata.ObjectFactory.class, at.gv.zustellung.msg.xsd.ObjectFactory.class); var map = new HashMap(); map.put(javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT, true); map.put("com.sun.xml.bind.namespacePrefixMapper", mzsMapper()); marshaller.setMarshallerProperties(map); return marshaller; } @Bean public Jaxb2Marshaller msgJaxbMarshaller() { Jaxb2Marshaller marshaller = new Jaxb2Marshaller(); marshaller.setClassesToBeBound( at.gv.zustellung.msg.xsd.ObjectFactory.class, at.gv.zustellung.msg.xsd.persondata.ObjectFactory.class); var map = new HashMap(); map.put(javax.xml.bind.Marshaller.JAXB_FORMATTED_OUTPUT, true); map.put("com.sun.xml.bind.namespacePrefixMapper", msgMapper()); marshaller.setMarshallerProperties(map); return marshaller; } @Bean public Marshaller mzsMarshaller() { return new Marshaller(mzsJaxbMarshaller()); } @Bean public Marshaller msgMarshaller() { return new Marshaller(msgJaxbMarshaller()); } }