/ / Pomiń prolog od XML podczas marshallingu - java, xml, jaxb, marshalling, mule

Wyłącz prolog z XML podczas zestawiania - java, xml, jaxb, marshalling, mule

Korzystam z modułu Mule XML jaxb-object-to-xml-transformer przekonwertować mój obiekt na XML. Następnie ten kod XML jest osadzany w innym formacie XML za pomocą szablonów.

Problem polega jednak na tym, że transformator XML podaje dane wyjściowe XML z prologiem:

 <?xml version="1.0" encoding="utf-8"?>

Potrzebuję XML bez tego. Aby można go bez problemu osadzić w innym szablonie.

    <flow name="main.flow">
....
....
<mule-xml:jaxb-object-to-xml-transformer name="obj2xml" jaxbContext-ref="myJaxbContext"  returnClass="java.lang.String" />
<custom-transformer ..... >
....
....
</flow>

W zwykłym JAXB istnieje na to sposób. Ale w module Mule XML nie mogłem znaleźć żadnej właściwości, która by to zrobiła. Proszę doradzić, czy istnieje jakaś właściwość umożliwiająca osiągnięcie tego zachowania.

Odpowiedzi:

2 dla odpowiedzi № 1

Dokumentacja wskazuje, że można przechwycić transformacje JAXB (patrz: http://www.mulesoft.org/documentation/display/current/JAXB+Bindings). Poniższy przykład pochodzi z tej dokumentacji.

@Transformer(sourceTypes = {String.class, InputStream.class})
public Person toPerson(Document doc, JAXBContext context) throws JAXBException
{
return (Person) context.createUnmarshaller().unmarshal(doc);
}

Zakładając, że istnieje odpowiednia rzecz, którą możesz zrobić dla zestawiania, możesz ustawić niezbędną właściwość JAXB.

marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);