Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在编组期间禁止XML中的prolog_Java_Xml_Jaxb_Marshalling_Mule - Fatal编程技术网

Java 在编组期间禁止XML中的prolog

Java 在编组期间禁止XML中的prolog,java,xml,jaxb,marshalling,mule,Java,Xml,Jaxb,Marshalling,Mule,我正在使用Mule-XML模块jaxb-object-to-XML-transformer将我的对象转换为XML。然后使用模板将此XML嵌入到另一个XML中 但这里的问题是,object to XML transformer使用prolog提供XML输出: <?xml version="1.0" encoding="UTF-8"?> 我需要一个没有这个的XML。这样就可以将其嵌入到另一个模板中而不会出现问题 <flow name="main.flow">

我正在使用Mule-XML模块
jaxb-object-to-XML-transformer
将我的对象转换为XML。然后使用模板将此XML嵌入到另一个XML中

但这里的问题是,object to XML transformer使用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中,有一种方法可以做到这一点。但在MuleXML模块中,我找不到任何属性来执行此操作。请告知是否有任何属性可以实现此行为。

文档表明您可以拦截JAXB转换(请参阅:)。以下示例取自该文档

@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);

谢谢你的回答。我可以看到这是一个定制的变压器。我正在寻找某种类型或属性(属性)在当前的骡子变压器,可以做到这一点。