Hi All, I am using AXIS2C version 1.6.0 on an X86 64-bit Redhat machine. I use soapUI for sending requests and AXIS2C receives newlines and spaces in the request which I cannot control from the request part.
For example, My soapUI request looks like: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:typ="http://ws.apache.org/axis2/services/Calculator/types"> <soapenv:Header/> <soapenv:Body> <typ:add xmlns:typ = 'http://example.com/add/2010/11/policy'> <param_1>11</param_1> <param_2>22</param_2> </typ:add> </soapenv:Body> </soapenv:Envelope> Here, axiom_node_to_string() function for <add> node yields "<typ:add xmlns:typ = 'http://example.com/add/2010/11/policy'>\n <param_1>11</param_1>\n <param_2>22</param_2>\n </typ:add>" I thought I will first convert this node to a buffer (addBuf); then I will process this buffer to remove newlines; and then I will pass the processed buffer to axiom_xml_reader_create_for_memory(). So the sequence of my calls is: reader = axiom_xml_reader_create_for_memory(env, (void*)addBuf, axutil_strlen(addBuf), "utf-8", AXIS2_XML_PARSER_TYPE_BUFFER); builder = axiom_stax_builder_create(env, reader); document = axiom_stax_builder_get_document(builder, env); processedAddNode = axiom_document_get_root_element(document, env); My observations: 1. CASE1: addBuf is passed as it is (with newlines and spaces) to axiom_xml_reader_create_for_memory. The call to axiom_xml_reader_create_for_memory() is successful; but the processedAddNode does not have <param_1> and <param_2> tags. 2. CASE2: Before calling axiom_xml_reader_create_for_memory, I process addBuf just to remove newlines. addBuf looks like "<typ:add xmlns:typ = 'http://example.com/add/2010/11/policy'> <param_1>11</param_1> <param_2>22</param_2> </typ:add>". The spaces that existed after the newlines, still remain there. Here also, the call to axiom_xml_reader_create_for_memory() is successful; but the processedAddNode does not have <param_1> and <param_2> tags. 3. CASE3: I hardcoded addBuf to "<typ:add xmlns:typ = 'http://example.com/add/2010/11/policy'><param_1>11</param_1><param_2>22</param_2></typ:add>". Note that the newlines are removed and spaces after the newlines were also removed. This time call to axiom_xml_reader_create_for_memory() was successful. processedAddNode was perfect. So, if there are any spaces after the ending tags, AXIOM does not seem to handle them very well. Of course, I can process the buffer to remove these obsolete spaces as well, but I have a gut feeling that AXIOM must have some efficient mechanism, which I am not aware of as of now, to handle this situation. I would be really thankful if you could provide me any ideas on implementing better mechanisms for this. Best Regards, Pankaj Kharwal Stockholm, Sweden ______________________________________________________________________ This email has been scanned by the Symantec Email Security.cloud service. For more information please visit http://www.symanteccloud.com ______________________________________________________________________