我正在使用Mule XML模块jaxb-object-to-xml-transformer
将我的对象转换为XML。然后使用模板将此XML嵌入到另一个XML中。
但问题是XML转换器的对象是使用prolog提供XML输出:
<?xml version="1.0" encoding="UTF-8"?>
我没有这个需要XML。这样它就可以毫无问题地嵌入到另一个模板中。
<flow name="main.flow">
....
....
<mule-xml:jaxb-object-to-xml-transformer name="obj2xml" jaxbContext-ref="myJaxbContext" returnClass="java.lang.String" />
<custom-transformer ..... >
....
....
</flow>
在普通的JAXB中,有一种方法可以做到这一点。但在Mule XML模块中,我找不到任何属性来执行此操作。请告知是否有任何财产可以实现此行为。
答案 0 :(得分:2)
文档表明您可以拦截JAXB转换(请参阅:http://www.mulesoft.org/documentation/display/current/JAXB+Bindings)。以下示例取自该文档。
@Transformer(sourceTypes = {String.class, InputStream.class})
public Person toPerson(Document doc, JAXBContext context) throws JAXBException
{
return (Person) context.createUnmarshaller().unmarshal(doc);
}
假设您可以为编组做一个相应的事情,那么您就可以设置必要的JAXB属性。
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);