У меня есть этот код:
Transformer transformer1 = TransformerFactory.newInstance().newTransformer();
final DOMResult domResult = new DOMResult();
marshaller.marshal(objectForMarshall, domResult);
transformer1.setOutputProperty(OutputKeys.INDENT, "yes");
transformer1.setOutputProperty(
OutputKeys.CDATA_SECTION_ELEMENTS,
"Parameters");
transformer1.setOutputProperty("{http://xml.apache.org/xslt}indent-amount", "2");
transformer1.transform(new DOMSource(domResult.getNode()), new StreamResult(new FileOutputStream("D:\\1.xml")));
В objectForMarshall
есть поле типа байтов массива.Содержимое этого я хочу поместить в раздел CDATA
.
У меня есть этот адаптер:
public class CDATAAdapter extends XmlAdapter<String, byte[]> {
@Override
public String marshal(byte[] v) throws Exception {
return new String(v);
}
@Override
public byte[] unmarshal(String v) throws Exception {
return v.getBytes();
}
}
После преобразования в окончательном файле я получаю содержимое в CDATA, которое разделено новой строкой:
<ConditionInstance ActionConditionComponent="Regular" Id="1026">
<Parameters><![CDATA[<regular_condition>
<union type="AND">
<operation allow_absent_property="false" type="BIGGER">
<left>
<Entity item="value" property="DateTo" type="datetime"/>
</left>
<right>
<Entity item="value" property="DateTo" type="datetime"/>
</right>
</operation>
</union>
</regular_condition>
]]></Parameters>
</ConditionInstance>
Почему это происходит, я не могу понять?Как это можно исправить?Почему преобразователь изменяет содержимое моего контента?
Если я удаляю:
transformer1.setOutputProperty(
OutputKeys.CDATA_SECTION_ELEMENTS,
cDataTagName);
Новые строки не добавляются !!!
<ConditionInstance ActionConditionComponent="Regular" Id="1026">
<Parameters><regular_condition>
<union type="AND">
<operation allow_absent_property="false" type="BIGGER">
<left>
<Entity item="value" property="DateTo" type="datetime"/>
</left>
<right>
<Entity item="value" property="DateTo" type="datetime"/>
</right>
</operation>
</union>
</regular_condition>
</Parameters>
</ConditionInstance>