I use document/literal sytle
looking at the soap using tcpmon it looks like this
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<getListResponse xmlns="">
<getListReturn><![CDATA[<?xml version="1.0"
encoding="UTF-8"?>
<ROOT><RECORD><id>1</id><id>1</id><contactid>20</contactid&id>1</id><contactid>29</contactid><emailcount>2</emailcount><emailaddress>[EMAIL
PROTECTED]</emailaddress></RECORD></ROOT>
]]></getListReturn>
</getListResponse>
</soapenv:Body>
</soapenv:Envelope>
but when i retutn the result using call.invoke the xml is well formed
From: "Chris Nappin" <[EMAIL PROTECTED]>
Reply-To: [email protected]
To: <[email protected]>
Subject: RE: xml with strange characters
Date: Wed, 31 Aug 2005 09:57:17 +0100
You might be able to get away with that if you know your XML never contains
"]]".
The "proper" way to pass XML in a web service is to use the
"document/literal" style - have a look at the Axis User guide for further
details.
-----Original Message-----
From: Plorks mail [mailto:[EMAIL PROTECTED]
Sent: 31 August 2005 09:52
To: [email protected]
Subject: Re: xml with strange characters
thanks - don't know whether you have heard of it, but we are uisng a
product called laszlo and even though the xml i return is perfect when i
write a java client to my web service when laszlo is used it escapes the
angle brackets - we have now found out xml isn't supported!
so now i have to re-write my ws
i have this code which returns the xml
StringWriter writer = new StringWriter();
// create a resultsetbuilder to transform resultset to XML
try
{
RecordsetToXML rsXML = new RecordsetToXML(rs, "ROOT", "RECORD");
// create the XML from recordset
Document jDOMDoc = rsXML.build();
rs = null;
XMLOutputter outputter = new XMLOutputter();
outputter.output(jDOMDoc, writer);
result = writer.toString();
//System.out.print("XML " + writer);
writer.close();
}
.......
return result;
So do i do this - [CDATA[writer.toString()]]
when i'm testing i do String ret - (String) call.invoke(new
Object[]{params}); as normal
thanks for your help
>From: Guy Rixon <[EMAIL PROTECTED]>
>Reply-To: [email protected]
>To: [email protected]
>Subject: Re: xml with strange characters
>Date: Wed, 31 Aug 2005 09:17:46 +0100 (BST)
>
>CDATA like this: instead of
>
> String s = "<someXmlStructure>...</someXmlStructure>";
>
>put
>
> String s = "<![CDATA[<someXmlStructure>...</someXmlStructure>]]>";
>
>in the string that you return from your service implementation. This
makes
>the
>return message something like
>
><soap:envelope>
> <soap:body>
> <xsd:string>
> <![CDATA[<someXmlStructure>...</someXmlStructure>]]>
> </xsd:string>
> </soap:body>
></soap:envelope>
>
>
>See
>
> http://www.w3schools.com/xml/xml_cdata.asp
>
>for more details and examples.
>
>However, doing it that way is against the spirit of SOAP. You should
really
>have your someXmlStructure directly in the body of the message:
>
><soap:envelope>
> <soap:body>
> <someXmlStructure>...</someXmlStructure>
> </soap:body>
></soap:envelope>
>
>If you mapped someXmlStructure to SomeJavaClass using WSDL2Java, then you
>could return an instance of SomeJavaClass from your service
implementation
>and
>Axis would serialize it into the required XML. If you want to generate
your
>someXmlStructure as a DOM, then you might be able to get that serialized;
>check out the SAAJ spec. (Anybody have a succint example of returning a
DOM
>from a service implementation?) I don't think Axis has a way to accept
>serialized XML from a service implementation; i.e. you can't write out
>text-with-angle-brackets and have Axis include it literally in the return
>message, other than the XML-in-a-string trick that you've already found.
>
>Cheers,
>Guy
>
>
>
>On Wed, 31 Aug 2005, Plorks mail wrote:
>
> >
> > hi
> >
> > i'm returning the xml as a result of call.invoke. when i write a test
> > client using java the xml is well frmed, however we are also usg an
> > application called laszlo, but when you get the same xml using laszlo
>that's
> > whe it comes back with the &alt for the angle brackets
> >
> > would it be possible to lead me to an example of cdata and sending the
>xml
> > as the body of the message (i think this is what i'm doing but just
want
>to
> > make sure)
> >
> > thanks for your help
> >
> >
> > >From: Guy Rixon <[EMAIL PROTECTED]>
> > >Reply-To: [email protected]
> > >To: [email protected]
> > >Subject: Re: xml with strange characters
> > >Date: Tue, 30 Aug 2005 17:24:35 +0100 (BST)
> > >
> > >If I understand you correctly, you're putting data marked up as XML
in
>a
> > >string and then sending that string as an XML element in a SOAP
>message. In
> > >this usage, Axis has to turn the angle brackets into entity
references
>in
> > >order to make the XML well-formed; you're not allowed to have literal
>angle
> > >brackets in the value of an XML element.
> > >
> > >If you desparately need to send your XML structure as the value of
> > >some XML element, then you can wrap it in a CDATA section so that
Axis
>need
> > >not mess
> > >with the angle brackets. However, why not just send the XML as the
body
>of
> > >the
> > >message (normal document/literal style)?
> > >
> > >On Tue, 30 Aug 2005, Plorks mail wrote:
> > > >
> > > > it's not - when the client receives the xml it has &alt instead of
<
>or
> > > >
> > > >
> > > > Also when i test my service get the same characters in the soap
>message
> > > >
> > > > Thanks
> > > >
> > > >
> > > >
> > > > >From: WAJSBERG Julien RD-BIZZ <[EMAIL PROTECTED]>
> > > > >Reply-To: [email protected]
> > > > >To: [email protected]
> > > > >Subject: Re: xml with strange characters
> > > > >Date: Tue, 30 Aug 2005 14:30:59 +0200
> > > > >
> > > > >Plorks mail a écrit :
> > > > >
> > > > > >
> > > > > > hi all
> > > > > >
> > > > > > i'm retruning a xml string when a method is called.
> > > > > >
> > > > > > When i look at the soap returned xml is formatted with <
> > >charactes
> > > > > > instead of < or >
> > > > > >
> > > > > > e.g.
> > > > > >
> > > > > > <ROOT>
> > > > > > ............
> > > > > > </ROOT>
> > > > > >
> > > > > > can anyone help me to solve this
> > > > > >
> > > > >Why is it a problem ?
> > > > >Axis should deserialize this message correctly on the client
>side...
> > > > >
> > > >
> > > > _________________________________________________________________
> > > > Want to block unwanted pop-ups? Download the free MSN Toolbar now!
> > > > http://toolbar.msn.co.uk/
> > > >
> > >
> > >Guy Rixon [EMAIL PROTECTED]
> > >Institute of Astronomy Tel: +44-1223-337542
> > >Madingley Road, Cambridge, UK, CB3 0HA Fax: +44-1223-337523
> >
> > _________________________________________________________________
> > Want to block unwanted pop-ups? Download the free MSN Toolbar now!
> > http://toolbar.msn.co.uk/
> >
>
>Guy Rixon [EMAIL PROTECTED]
>Institute of Astronomy Tel: +44-1223-337542
>Madingley Road, Cambridge, UK, CB3 0HA Fax: +44-1223-337523
_________________________________________________________________
Winks & nudges are here - download MSN Messenger 7.0 today!
http://messenger.msn.co.uk
CONFIDENTIALITY & PRIVILEGE NOTICE
This e-mail is confidential to its intended recipient. It may also be
privileged. Neither the confidentiality nor any privilege attaching to this
e-mail is waived lost or destroyed by reason that it has been mistakenly
transmitted to a person or entity other than its intended recipient. If you
are not the intended recipient please notify us immediately by telephone or
fax at the numbers provided above or e-mail by Reply To Author and return
the printed e-mail to us by post at our expense. We believe, but do not
warrant, that this e-mail and any attachments are virus-free, but you
should check. We may monitor traffic data of both business and personal
e-mails. We are not liable for any opinions expressed by the sender where
this is a non-business e-mail. If you do not receive all the message, or if
you have difficulty with the transmission, please telephone us immediately.
_________________________________________________________________
Winks & nudges are here - download MSN Messenger 7.0 today!
http://messenger.msn.co.uk