Re: REST CDATA Marshalling

2008-03-01 Thread Benson Margulies
Why do you want to do this? The distinction between CDATA and various
&-entities is way below the level of web service semantics. Any conformant
XML parser is going to treat them identically.

On Sat, Mar 1, 2008 at 2:01 PM, Todd Orr <[EMAIL PROTECTED]> wrote:

> I'm attempting to get String data wrapped in CDATA before being
> returned to the client. I do not want special characters to be
> escaped. First I tried simply wrapping the properties in my getters
> with the CDATA block. Unfortunately, JAXB continued to escape all the
> special characters.
>
> I found this post:
> http://forum.java.sun.com/thread.jspa?threadID=607524&messageID=3531931.
> Although promising, I could not find out how to setup JAXB in my
> applicationContext in such a way to set this as the XMLSerializer.
>
> Has anyone accomplished this? It seems as though it would be a fairly
> common need.
>
> Thanks,
> T
>


Re: REST CDATA Marshalling

2008-03-01 Thread Benson Margulies
Indeed, the CXF JAXB data binding does not provide any simple way around
this.

In the example at hand, the code knows the target byte stream for the
output, and is concocting a specialized XML writer that has the desired
behavior. CXF uses StaX to write out XML. You'd need a StaX implementation.

I wonder if you could create an interceptor that rewrote the XML the way you
like it? I'm not much of an interceptor expert.

On Sat, Mar 1, 2008 at 4:32 PM, Benson Margulies <[EMAIL PROTECTED]>
wrote:

> Why do you want to do this? The distinction between CDATA and various
> &-entities is way below the level of web service semantics. Any conformant
> XML parser is going to treat them identically.
>
>
> On Sat, Mar 1, 2008 at 2:01 PM, Todd Orr <[EMAIL PROTECTED]> wrote:
>
> > I'm attempting to get String data wrapped in CDATA before being
> > returned to the client. I do not want special characters to be
> > escaped. First I tried simply wrapping the properties in my getters
> > with the CDATA block. Unfortunately, JAXB continued to escape all the
> > special characters.
> >
> > I found this post:
> > http://forum.java.sun.com/thread.jspa?threadID=607524&messageID=3531931.
> > Although promising, I could not find out how to setup JAXB in my
> > applicationContext in such a way to set this as the XMLSerializer.
> >
> > Has anyone accomplished this? It seems as though it would be a fairly
> > common need.
> >
> > Thanks,
> > T
> >
>
>


Re: REST CDATA Marshalling

2008-03-03 Thread Daniel Kulp

Yea, there really is NOT a way to do this with JAXB.   Jaxb doesn't call 
the writeCData method on the XmlStreamWriter at all, ever.  (I just 
grepped the source).   The ONLY way I can see to do this would be write 
a XmlStreamWriter wrapper that wraps the "real" writer and keeps track 
of the element it's in and if in the appropriate element, foward the 
writeCharacters calls to writeCData calls instead.  Not sure how worth 
it that would be.

Dan

On Saturday 01 March 2008, Todd Orr wrote:
> I'm attempting to get String data wrapped in CDATA before being
> returned to the client. I do not want special characters to be
> escaped. First I tried simply wrapping the properties in my getters
> with the CDATA block. Unfortunately, JAXB continued to escape all the
> special characters.
>
> I found this post:
> http://forum.java.sun.com/thread.jspa?threadID=607524&messageID=353193
>1. Although promising, I could not find out how to setup JAXB in my
> applicationContext in such a way to set this as the XMLSerializer.
>
> Has anyone accomplished this? It seems as though it would be a fairly
> common need.
>
> Thanks,
> T



-- 
J. Daniel Kulp
Principal Engineer, IONA
[EMAIL PROTECTED]
http://www.dankulp.com/blog


Re: REST CDATA Marshalling

2008-03-04 Thread Sergey Beryozkin
Hi,

One way would be to use a CXF JAX-RS implementation. I'm presuming no SOAP is 
involved as Todd is
asking about CDATA in a context of the REST application, right ?
If so, then with JAX-RS one can just return a String which uses CData to 
encapsulate XML..., with no JAXB involved.
JAXB might be used to create the actual XML, but the String will be written 
directly to the output stream or read as is from the input stream...

Cheers, Sergey

> 
> Yea, there really is NOT a way to do this with JAXB.   Jaxb doesn't call 
> the writeCData method on the XmlStreamWriter at all, ever.  (I just 
> grepped the source).   The ONLY way I can see to do this would be write 
> a XmlStreamWriter wrapper that wraps the "real" writer and keeps track 
> of the element it's in and if in the appropriate element, foward the 
> writeCharacters calls to writeCData calls instead.  Not sure how worth 
> it that would be.
> 
> Dan
> 
> On Saturday 01 March 2008, Todd Orr wrote:
>> I'm attempting to get String data wrapped in CDATA before being
>> returned to the client. I do not want special characters to be
>> escaped. First I tried simply wrapping the properties in my getters
>> with the CDATA block. Unfortunately, JAXB continued to escape all the
>> special characters.
>>
>> I found this post:
>> http://forum.java.sun.com/thread.jspa?threadID=607524&messageID=353193
>>1. Although promising, I could not find out how to setup JAXB in my
>> applicationContext in such a way to set this as the XMLSerializer.
>>
>> Has anyone accomplished this? It seems as though it would be a fairly
>> common need.
>>
>> Thanks,
>> T
> 
> 
> 
> -- 
> J. Daniel Kulp
> Principal Engineer, IONA
> [EMAIL PROTECTED]
> http://www.dankulp.com/blog


IONA Technologies PLC (registered in Ireland)
Registered Number: 171387
Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland