You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by sa...@apache.org on 2005/10/04 06:41:56 UTC

svn commit: r293524 - in /webservices/axis2/trunk/c/modules/xml: guththila/src/guththila_xml_stream_writer.c om/src/axis2_om_element.c om/src/axis2_om_output.c

Author: samisa
Date: Mon Oct  3 21:41:43 2005
New Revision: 293524

URL: http://svn.apache.org/viewcvs?rev=293524&view=rev
Log:
More additions towards serialization

Modified:
    webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_xml_stream_writer.c
    webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_element.c
    webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_output.c

Modified: webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_xml_stream_writer.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_xml_stream_writer.c?rev=293524&r1=293523&r2=293524&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_xml_stream_writer.c (original)
+++ webservices/axis2/trunk/c/modules/xml/guththila/src/guththila_xml_stream_writer.c Mon Oct  3 21:41:43 2005
@@ -250,11 +250,7 @@
         char** element_data = (char**) apr_array_pop(stream_writer->element_stack);
         if (!element_data )
             return GUTHTHILA_STREAM_WRITER_ERROR_ELEMENT_STACK_EMPTY;
-        if(element_data[0])
-            free( element_data[0]);
-        if(element_data[1])
-            free( element_data[1]);
-        element_data = 0;
+
             //end pop element stack
 
         fputs("</", stream_writer->writer);
@@ -263,9 +259,21 @@
         {
             fputs(element_data[0], stream_writer->writer);
             fputs(":", stream_writer->writer);
+            free( element_data[0]);
         }
-        fputs(element_data[1], stream_writer->writer);
+
+        if(element_data[1] && strlen(element_data[1]) > 0)
+        {
+            fputs(element_data[1], stream_writer->writer);
+            free( element_data[1]);
+        }
+        else
+            return GUTHTHILA_STREAM_WRITER_ERROR_ELEMENT_STACK_EMPTY;
+        
         fputs(">", stream_writer->writer);
+        
+        element_data = 0;
+
         return GUTHTHILA_SUCCESS;
     }
 

Modified: webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_element.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_element.c?rev=293524&r1=293523&r2=293524&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_element.c (original)
+++ webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_element.c Mon Oct  3 21:41:43 2005
@@ -454,11 +454,12 @@
 axis2_om_element_serialize_start_part (axis2_om_element_t * element_node,
                                        axis2_om_output_t * om_output)
 {
-    if (element_node->ns && element_node->ns->prefix)
+    // TODO : handle null pointer errors
+    if (element_node->ns && element_node->ns->uri && element_node->ns->prefix)
         axis2_om_output_write (om_output, AXIS2_OM_ELEMENT, 3,
                                element_node->localname, element_node->ns->uri,
                                element_node->ns->prefix);
-    else if (element_node->ns)
+    else if (element_node->ns && element_node->ns->uri)
         axis2_om_output_write (om_output, AXIS2_OM_ELEMENT, 2,
                                element_node->localname,
                                element_node->ns->uri);
@@ -473,5 +474,6 @@
 axis2_om_element_serialize_end_part (axis2_om_element_t * element_node,
                                      axis2_om_output_t * om_output)
 {
-
+    // TODO : handle null pointer errors
+    axis2_om_output_write (om_output, AXIS2_OM_ELEMENT, 0);
 }

Modified: webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_output.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_output.c?rev=293524&r1=293523&r2=293524&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_output.c (original)
+++ webservices/axis2/trunk/c/modules/xml/om/src/axis2_om_output.c Mon Oct  3 21:41:43 2005
@@ -59,11 +59,14 @@
             va_end(ap);
             switch (no_of_args)
             {
+                case 0:
+                    guththila_xml_stream_writer_write_end_element( om_output->xml_writer);
                 case 1:
                     guththila_xml_stream_writer_write_start_element( om_output->xml_writer, args_list[0] );
                     break;
                 case 2:
                     guththila_xml_stream_writer_write_start_element_with_namespace( om_output->xml_writer, args_list[0], args_list[1] );
+                    break;
                 case 3:
                     guththila_xml_stream_writer_write_start_element_with_namespace_prefix( om_output->xml_writer, args_list[0], args_list[1], args_list[2] );
                     break;