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=607524messageID=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


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=607524messageID=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=607524messageID=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