Hi Eric, Yea we have the stream write function which directly write the xml in the generated code. So fixing it axiom_node_serialize is not enough, we have to change the generated code a little bit. But for your custom need it is better setting data after escaping special characters.
On Sat, Jan 31, 2009 at 3:25 AM, Haszlakiewicz, Eric <ehas...@transunion.com > wrote: > > hmm... I had assumed that the adb code would just generate an > appropriately structured axiom_node_t, and it seems like it does return > a node, but it's also generating xml directly and writing it out (with > axutil_stream_write). huh? I think I'm missing something with how this > works. > > I tried to read through the axis2_svc_client_send_receive_with_op_qname > call that uses the axiom_node_t (which is called from the stub "myOp" > call), hoping that that might provide some insight, but quickly got > lost. It seems the figuring out what this code does will take more time > than I have available right now. :( > > >-----Original Message----- > >From: Haszlakiewicz, Eric [mailto:ehas...@transunion.com] > >Sent: Friday, January 30, 2009 3:04 PM > >To: Apache AXIS C User List > >Subject: RE: special character escaping in adb requests > > > > > >Until you try to send some data that contains "]]>". There is > >no way to > >avoid to the need to escape the data. This should be handled by the > >serialization methods. I'm very surprised that it isn't. I haven't > >looked at the code that does the serialization yet, but if there's a > >general axion serialize-an-element routine, this probably won't be too > >hard to fix. > > > >>-----Original Message----- > >>From: Dumindu Pallewela [mailto:pallew...@gmail.com] > >>Sent: Friday, January 30, 2009 12:27 PM > >>To: Apache AXIS C User List > >>Subject: Re: special character escaping in adb requests > >> > >>Does AXIOM support CDATA sections? > >> > >>If so I think this can simply be solved by using a CDATA section. > >> > >>Thanks, > >>Dumindu. > >> > >>On Fri, Jan 30, 2009 at 9:20 AM, Dimuthu Gamage > >><dimut...@gmail.com> wrote: > >>> Unfortunately we don't have such a function in the axutil > >>yet. But it is > >>> trival to implement. > >>> I just did a google and found this, [1]. We can use the > >>algorithm for the > >>> parse data. > >>> > >>> > >>> [1] http://www.hdfgroup.org/HDF5/XML/xml_escape_chars.htm > >>> > >>> Thanks > >>> Dimuthu > >>> > >>> On Thu, Jan 29, 2009 at 10:48 PM, Haszlakiewicz, Eric > >>> <ehas...@transunion.com> wrote: > >>>> > >>>> hmm... well that sucks. Is there an axis function to do > >>this easily, or > >>>> do I need to find one somewhere else? > >>>> > >>>> Also, how do I know what kind of escaping to do? It's > >>possible to have > >>>> axis send the request as a soap doc, or as a json message, > >>so I can't > >>>> use the same escaping for each, right? > >>>> > >>>> eric > >>>> > >>>> >-----Original Message----- > >>>> >From: Dimuthu Gamage [mailto:dimut...@gmail.com] > >>>> >Sent: Wednesday, January 28, 2009 9:01 PM > >>>> >To: Apache AXIS C User List > >>>> >Subject: Re: special character escaping in adb requests > >>>> > > >>>> >Hi Eric, > >>>> >Unfortunately You have to set the texts after escaping these > >>>> >characters at least for now. It is apparently a bug. (we > >>>> >should do it inside). Can you please raise a JIRA issue on that. > >>>> > > >>>> >Thanks > >>>> >Dimuthu > >>>> > > >>>> > > >>>> >On Thu, Jan 29, 2009 at 12:48 AM, Haszlakiewicz, Eric > >>>> ><ehas...@transunion.com> wrote: > >>>> > > >>>> > > >>>> > > >>>> > I have an app that uses adb to construct messages to > >>>> >send to a web > >>>> > service. Everything works fine, unless my data > >>>> >contains characters like > >>>> > '<', in which case axis fails to escape the characters > >>>> >and generates > >>>> > invalid xml (I'm using xml messages). > >>>> > > >>>> > I'm doing things like: > >>>> > > >>>> > axis2_stub_t *my_service = > >>>> >axis2_stub_create_MyService(env, client_home, > >>>> > url); > >>>> > adb_foo_t *myreq = adb_foo_create(env); > >>>> > adb_foo_set_myfield(myreq, env, "abc<xyz"); > >>>> > adb_fooresp_t *response = > >>>> >axis2_stub_op_MyService_myOp(an_service, env, > >>>> > myreq); > >>>> > > >>>> > The adb code was generated from a wsdl (and xsd) that > >>>> >has elements > >>>> > defined like: > >>>> > <xs:element name="foo" type="xs:string"/> > >>>> > and the command used was: > >>>> > axis2.sh org.apache.axis2.wsdl.WSDL2C -uri > >>>> >myservice.wsdl -d adb -u > >>>> > -o generated > >>>> > > >>>> > Is there some extra step I need to take to make this > >>>> >work right? Or, is > >>>> > there some bug that might be fixed in a more > >recent version? > >>>> > > >>>> > eric > >>>> > > >>>> > > >>>> > > >>>> > > >>>> > > >>>> >-- > >>>> >Thanks, > >>>> >Dimuthu Gamage > >>>> > > >>>> >http://www.dimuthu.org > >>>> >http://www.wso2.org > >>>> > > >>>> > > >>> > >>> > >>> > >>> -- > >>> Thanks, > >>> Dimuthu Gamage > >>> > >>> http://www.dimuthu.org > >>> http://www.wso2.org > >>> > >> > > > -- Thanks, Dimuthu Gamage http://www.dimuthu.org http://www.wso2.org