package com.gs.xiaomi.util; import com.gs.xiaomi.dto.BizDocument; import com.gs.xiaomi.dto.ZfmWsApiRequest; import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller; import java.io.StringWriter; public class SoapXmlBuilder { public static String build(ZfmWsApiRequest req) throws Exception { JAXBContext jaxbContext = JAXBContext.newInstance(BizDocument.class); Marshaller marshaller = jaxbContext.createMarshaller(); marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); StringWriter xmlWriter = new StringWriter(); marshaller.marshal(req.getIvInfo(), xmlWriter); String innerXml = xmlWriter.toString().replace("", "").trim(); String wrappedXml = "\n" + innerXml; return String.format("\n" + " \n" + " \n" + " \n" + " %s\n" + " %s\n" + " %s\n" + " \n" + " %s\n" + " %s\n" + " \n" + " \n" + "", req.getIvCode(), req.getIvEvent(), req.getIvFlag(), wrappedXml, req.getIvPass(), req.getIvUser()); } }