3

我正在使用 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 模块中,我找不到任何属性来执行此操作。请告知是否有任何属性可以实现此行为。

4

1 回答 1

3

该文档表明您可以拦截 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);
于 2013-05-30T17:47:58.080 回答