我使用Java wsimport工具从WSDL生成了一个Web服务客户端。
但是,当我使用Marshaller类生成XML文件时,根名称空间将获得名称<Object xmlns:ns2="(...)"
。
像这样:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Object xmlns:ns2="(...)"
我希望它具有这样的特定名称:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<myName xmlns:ns2="(...)"
这就是我使用Marshaller的方式:
Writer w = new StringWriter();
JAXBElement<ObjectType> element = new ObjectFactory().createObject(evt);
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
marshaller.marshal(element, w);
答案 0 :(得分:0)
下面是适合我的代码。这应该对您有用。
JAXBContext jaxbCtx = JAXBContext.newInstance(classToBeBound.getClass());
StringWriter writer = new StringWriter();
Marshaller marshaller = jaxbCtx.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, Boolean.TRUE);
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(The root of content tree to be marshalled, writer);