3

jaxb-object-to-xml-transformerオブジェクトを XML に変換するためにMule XML モジュールを使用しています。次に、テンプレートを使用して、この XML を別の XML に埋め込みます。

しかし、ここでの問題は、XML トランスフォーマーへのオブジェクトがプロローグで 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 に答える