cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sergey Beryozkin <sberyoz...@gmail.com>
Subject Re: CXF jaxb send string as CData
Date Wed, 29 Feb 2012 11:19:10 GMT
I forgot XNLStreamWriter has CDATA specific methods so those would have 
to be used instead which makes things even simpler
On 29/02/12 11:16, Sergey Beryozkin wrote:
> Hi
> On 29/02/12 09:52, Idar Borlaug wrote:
>> Hi
>>
>> I am calling a webservice outside of my control. I am being told that
>> i need to send html tags as Cdata and not&gt; tags for some reason.
>> Is it possible to force jaxb in cxf to encode a string in CDATA?
>>
> I looked at some available recommendations on the web but it appears the
> simplest and the most flexible solution is to register a custom
> XMLStreamWriter which will delegate to the default CXF utility writer
> and only override a couple of methods dealing with writing the
> characters, and optionally check the current element name if its content
> should not be wrapped, example:
>
> private static class CDataContentWriter extends DelegatingXMLStreamWriter {
>
> private String currentElementName;
>
> public CDataContentWriter(XMLStreamWriter writer) {
> super(writer);
> }
>
>
> public void writeCharacters(String text) throws XMLStreamException {
> boolean useCData = checkIfCDATAneededForCurrentElement();
> if (useCData) {
> super.writeCharacters("<[![CDATA[");
> }
> super.write(text);
> if (useCData) {
> super.writeCharacters("]]");
> }
> }
>
> // optional
> public void writeStartElement(String prefix, String local, String uri)
> throws XMLStreamException {
> currentElementName = local;
> super.writeStartElement(prefix, local, uri);
> }
> }
>
> then from the interceptor or a filer do
>
> XMLStreamWriter writer = StaxUtils.createXMLStreamWriter(outputStream);
> message.setContent(XMLStreamWriter.class, new CDataContentWriter(writer));
>
> That should do
>
> Sergey


-- 
Sergey Beryozkin

Talend Community Coders
http://coders.talend.com/

Blog: http://sberyozkin.blogspot.com

Mime
View raw message