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 na...@apache.org on 2006/03/31 11:40:56 UTC
svn commit: r390381 - /webservices/axis2/trunk/c/xdocs/docs/om_tutorial.html
Author: nandika
Date: Fri Mar 31 01:40:48 2006
New Revision: 390381
URL: http://svn.apache.org/viewcvs?rev=390381&view=rev
Log:
tutorial modified
Modified:
webservices/axis2/trunk/c/xdocs/docs/om_tutorial.html
Modified: webservices/axis2/trunk/c/xdocs/docs/om_tutorial.html
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/xdocs/docs/om_tutorial.html?rev=390381&r1=390380&r2=390381&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xdocs/docs/om_tutorial.html (original)
+++ webservices/axis2/trunk/c/xdocs/docs/om_tutorial.html Fri Mar 31 01:40:48 2006
@@ -1,4 +1,3 @@
-<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
@@ -260,21 +259,19 @@
<div>
<p><b>Code Listing 1</b></p>
</div>
-<pre text="#oooo">
-<font face="Monospace">
-<font color="#000000">axis2_xml_reader_t</font> *<font color="#000000">xml_reader</font> = <font color="#000000">NULL</font>;<br>
-<font color="#000000">axis2_om_stax_builder_t</font> *<font color="#000000">om_builder</font> = <font color="#000000">NULL</font>;<br>
-<font color="#000000">axis2_soap_builder_t</font> *<font color="#000000">soap_builder</font> = <font color="#000000">NULL</font>;<br>
-<font color="#000000">axis2_soap_envelope_t</font> *<font color="#000000">soap_envelope</font> = <font color="#000000">NULL</font>;<br>
-<font color="#808080"><i>/** create the parser */</i></font><br>
-<font color="#000000">axis2_xml_reader_t</font> *<font color="#000000">xml_reader</font> = <font color="#000000">axis2_xml_reader_create_for_file</font>(<font color="#000000">env</font>, <font color="#FF0000">"test_soap.xml"</font>,<font color="#000000">NULL</font>);<br>
-<font color="#808080"><i>/** create the OM builder */</i></font><br>
-<font color="#000000">om_builder</font> = <font color="#000000">axis2_om_stax_builder_create</font>(<font color="#000000">env</font>, <font color="#000000">xml_reader</font>);<br>
-<font color="#808080"><i>/** create SOAP builder */</i></font><br>
-<font color="#000000">soap_builder</font> = <font color="#000000">axis2_soap_builder_create</font>(<font color="#000000">env</font>, <font color="#000000">om_builder</font> , <font color="#000000">AXIS2_SOAP_ENVELOPE_NAMESPACE_URI</font>);<br>
-<font color="#808080"><i>/** get soap envelope */</i></font><br>
-<font color="#000000">soap_envelope</font> = <font color="#000000">AXIS2_SOAP_BUILDER_GET_SOAP_ENVELOPE</font>(<font color="#000000">soap_builder</font>, <font color="#000000">env</font>);<br>
-</font></pre>
+<pre>
+axis2_xml_reader_t *xml_reader = NULL;<br />
+axis2_om_stax_builder_t *om_builder = NULL;<br />
+axis2_soap_builder_t *soap_builder = NULL;<br />
+axis2_soap_envelope_t *soap_envelope = NULL;<br />
+<i>/** create the parser */</i><br />
+axis2_xml_reader_t *xml_reader = axis2_xml_reader_create_for_file(env, "test_soap.xml",NULL);<br />
+<i>/** create the OM builder */</i><br />
+om_builder = axis2_om_stax_builder_create(env, xml_reader);<br />
+<i>/** create SOAP builder */</i><br />
+soap_builder = axis2_soap_builder_create(env, om_builder , AXIS2_SOAP_ENVELOPE_NAMESPACE_URI);<br />
+<i>/** get soap envelope */</i><br />
+soap_envelope = AXIS2_SOAP_BUILDER_GET_SOAP_ENVELOPE(soap_builder, env);<br /></pre>
<br />
@@ -685,144 +682,141 @@
<p></p>
</div>
-<pre text="#000000">
-<font face="Monospace">
-<font color="#008000">#include <axis2_om_node.h></font>
-<font color="#008000">#include <axis2.h></font>
-<font color="#008000">#include <axis2_env.h></font>
-<font color="#008000">#include <axis2_om_element.h></font>
-<font color="#008000">#include <axis2_om_document.h></font>
-<font color="#008000">#include <axis2_om_stax_builder.h></font>
-<font color="#008000">#include <axis2_xml_reader.h></font>
-<font color="#008000">#include <axis2_log_default.h></font>
-<font color="#008000">#include <axis2_error_default.h></font>
-<font color="#008000">#include <axis2_xml_writer.h></font>
-<font color="#008000">#include <axis2_om_output.h></font>
-<font color="#008000">#include <stdio.h></font>
+<pre>
+#include <axis2_om_node.h>
+#include <axis2.h>
+#include <axis2_env.h>
+#include <axis2_om_element.h>
+#include <axis2_om_document.h>
+#include <axis2_om_stax_builder.h>
+#include <axis2_xml_reader.h>
+#include <axis2_log_default.h>
+#include <axis2_error_default.h>
+#include <axis2_xml_writer.h>
+#include <axis2_om_output.h>
+#include <stdio.h>
-<font color="#000000">FILE</font> *<font color="#000000">f</font> = <font color="#000000">NULL</font>;
-<font color="#800000">int</font> <font color="#000000">read_input_callback</font>(<font color="#800000">char</font> *<font color="#000000">buffer</font>, <font color="#800000">int</font> <font color="#000000">size</font>, <font color="#800000">void</font>* <font color="#000000">ctx</font>)
+FILE *f = NULL;
+int read_input_callback(char *buffer, int size, void* ctx)
{
- <font color="#000000"><b>return</b></font> <font color="#000000">fread</font>(<font color="#000000">buffer</font>, <font color="#000000"><b>sizeof</b></font>(<font color="#800000">char</font>), <font color="#000000">size</font>, <font color="#000000">f</font>);
+ <b>return</b> fread(buffer, <b>sizeof</b>(char), size, f);
}
-<font color="#800000">int</font> <font color="#000000">close_input_callback</font>()
+int close_input_callback(void *ctx)
{
- <font color="#000000"><b>return</b></font> <font color="#000000">fclose</font>(<font color="#000000">f</font>);
+ <b>return</b> fclose(f);
}
-<font color="#000000">axis2_env_t</font> * <font color="#000000">create_environment</font>()
+axis2_env_t * create_environment()
{
- <font color="#000000">axis2_allocator_t</font> *<font color="#000000">allocator</font> = <font color="#000000">NULL</font>;
- <font color="#000000">axis2_env_t</font> *<font color="#000000">env</font> = <font color="#000000">NULL</font>;
- <font color="#000000">axis2_log_t</font> *<font color="#000000">log</font> = <font color="#000000">NULL</font>;
-
- <font color="#000000">axis2_error_t</font> *<font color="#000000">error</font> = <font color="#000000">NULL</font>;
- <font color="#000000">allocator</font> = <font color="#000000">axis2_allocator_init</font>(<font color="#000000">NULL</font>);
- <font color="#000000">log</font> = <font color="#000000">axis2_log_create</font>(<font color="#000000">allocator</font>, <font color="#000000">NULL</font>, <font color="#000000">NULL</font>);
-
- <font color="#000000">error</font> = <font color="#000000">axis2_error_create</font>(<font color="#000000">allocator</font>);
- <font color="#000000">env</font> = <font color="#000000">axis2_env_create_with_error_log</font>(<font color="#000000">allocator</font>, <font color="#000000">log</font>, <font color="#000000">error</font>);
- <font color="#000000"><b>return</b></font> <font color="#000000">env</font>;
+ axis2_allocator_t *allocator = NULL;
+ axis2_env_t *env = NULL;
+ axis2_log_t *log = NULL;
+
+ axis2_error_t *error = NULL;
+ allocator = axis2_allocator_init(NULL);
+ log = axis2_log_create(allocator, NULL, NULL);
+
+ error = axis2_error_create(allocator);
+ env = axis2_env_create_with_error_log(allocator, error, log);
+ <b>return</b> env;
}
-<font color="#000000">build_and_serialize_om</font>(<font color="#000000">axis2_env_t</font> **<font color="#000000">env</font>)
+build_and_serialize_om(axis2_env_t **env)
{
- <font color="#000000">axis2_om_node_t</font> *<font color="#000000">root_node</font> = <font color="#000000">NULL</font>:
+ axis2_om_node_t *root_node = NULL;
- <font color="#000000">axis2_om_element_t</font> *<font color="#000000">root_ele</font> = <font color="#000000">NULL</font>;
- <font color="#000000">axis2_om_document_t</font> *<font color="#000000">document</font> = <font color="#000000">NULL</font>;
- <font color="#000000">axis2_om_stax_builder_t</font> *<font color="#000000">om_builder</font> = <font color="#000000">NULL</font>;
-
- <font color="#000000">axis2_xml_reader_t</font> *<font color="#000000">xml_reader</font> = <font color="#000000">NULL</font>;
- <font color="#000000">axis2_xml_writer_t</font> *<font color="#000000">xml_writer</font> = <font color="#000000">NULL</font>;
- <font color="#000000">axis2_om_output_t</font> *<font color="#000000">om_output</font> = <font color="#000000">NULL</font>;
-
- <font color="#000000">axis2_char_t</font> *<font color="#000000">buffer</font> = <font color="#000000">NULL</font>;
-
- <font color="#000000">f</font> = <font color="#000000">fopen</font>(<font color="#FF0000">"test.xml"</font>);
- <font color="#000000">xml_reader</font> = <font color="#000000">axis2_xml_reader_create_for_memory</font>(<font color="#000000">env</font>, <font color="#000000">read_input_callback</font>,
-
- <font color="#000000">close_input_callback</font>, <font color="#000000">NULL</font>, <font color="#000000">NULL</font>);
- <font color="#000000"><b>if</b></font>(!<font color="#000000">xml_reader</font>)
- <font color="#000000"><b>return</b></font> -<font color="#0000FF">1</font>;
-
- <font color="#000000">om_builder</font> = <font color="#000000">axis2_om_stax_builder_create</font>(<font color="#000000">env</font>, <font color="#000000">xml_reader</font>);
- <font color="#000000"><b>if</b></font>(!<font color="#000000">om_builder</font>)
- {
- <font color="#000000">AXIS2_XML_READER_FREE</font>(<font color="#000000">xml_reader</font>, <font color="#000000">env</font>);
- <font color="#000000"><b>return</b></font> <font color="#000000">AXIS2_FAILURE</font>;
- }
- <font color="#000000">document</font> = <font color="#000000">AXIS2_OM_STAX_BUILDER_GET_DOCUMENT</font>(<font color="#000000">env</font>, <font color="#000000">om_builder</font>);
- <font color="#000000"><b>if</b></font>(!<font color="#000000">document</font>)
- {
- <font color="#000000">AXIS2_OM_STAX_BUILDER_FREE</font>(<font color="#000000">om_builder</font>, <font color="#000000">env</font>);
- <font color="#000000"><b>return</b></font> <font color="#000000">AXIS2_FAILURE</font>;
- }
-
- <font color="#000000">root_node</font> = <font color="#000000">AXIS2_OM_DOCUMENT_GET_ROOT_ELEMENT</font>(<font color="#000000">document</font>, <font color="#000000">env</font>);
- <font color="#000000"><b>if</b></font>(!<font color="#000000">root_node</font>)
- {
- <font color="#000000">AXIS2_OM_STAX_BUILDER_FREE</font>(<font color="#000000">om_builder</font>, <font color="#000000">env</font>);
- <font color="#000000"><b>return</b></font> <font color="#000000">AXIS2_FAILURE</font>;
- }
- <font color="#000000"><b>if</b></font>(<font color="#000000">root_node</font>)
- {
- <font color="#000000"><b>if</b></font>(<font color="#000000">AXIS2_OM_NODE_GET_NODE_TYPE</font>(<font color="#000000">root_node</font>, <font color="#000000">env</font>) == <font color="#000000">AXIS2_OM_ELEMENT</font>)
- {
- <font color="#000000">root_ele</font> = (<font color="#000000">axis2_om_element_t</font>*)<font color="#000000">AXIS2_OM_NODE_GET_DATA_ELEMENT</font> (<font color="#000000">root_node</font>, <font color="#000000">env</font>);
- <font color="#000000"><b>if</b></font>(<font color="#000000">root_ele</font>)
- {
- <font color="#000000">printf</font>(<font color="#FF0000">" %s"</font> , <font color="#000000">AXIS2_OM_ELEMENT_GET_DATA_ELEMENT</font>(<font color="#000000">root_node</font>, <font color="#000000">env</font>));
- }
- }
- }
- <font color="#000000">AXIS2_OM_DOCUMENT_BUILD_ALL</font>(<font color="#000000">document</font>, <font color="#000000">env</font>);
-
- <font color="#000000">xml_writer</font> = <font color="#000000">axis2_xml_writer_create_for_memory</font>(<font color="#000000">env</font>, <font color="#000000">NULL</font>, <font color="#000000">AXIS2_TRUE</font>, <font color="#0000FF">0</font>);
-
- <font color="#000000">om_output</font> = <font color="#000000">axis2_om_output_create</font>(<font color="#000000">env</font>, <font color="#000000">xml_writer</font>);
-
- <font color="#000000">AXIS2_OM_NODE_SERIALIZE</font>(<font color="#000000">node1</font>, <font color="#000000">env</font>, <font color="#000000">om_output</font>);
- <font color="#000000">buffer</font> = <font color="#000000">AXIS2_XML_WRITER_GET_XML</font>(<font color="#000000">xml_writer</font>, <font color="#000000">env</font>);
-
- <font color="#000000">printf</font>(<font color="#FF0000">"The output XML is ->>>>\n %s "</font>, <font color="#000000">buffer</font>);
-
-
- <font color="#808080"><i>/** when om_output is freed xml_writer is also freed */</i></font>
-
- <font color="#000000">AXIS2_OM_OUTPUT_FREE</font>(<font color="#000000">om_output</font>, <font color="#000000">env</font>);
-
- <font color="#808080"><i>/** when om_builder is freed , the builder, om_document and the entire om structure is freed */</i></font>
- <font color="#000000">AXIS2_OM_STAX_BUILDER_FREE</font>(<font color="#000000">om_builder</font>, <font color="#000000">env</font>);
-
- <font color="#000000">AXIS2_FREE</font>((*<font color="#000000">env</font>)-><font color="#000000">allocator</font>, <font color="#000000">buffer</font>);
-
- <font color="#000000"><b>return</b></font> <font color="#000000">AXIS2_SUCCESS</font>;
-
+ axis2_om_element_t *root_ele = NULL;
+ axis2_om_document_t *document = NULL;
+ axis2_om_stax_builder_t *om_builder = NULL;
+
+ axis2_xml_reader_t *xml_reader = NULL;
+ axis2_xml_writer_t *xml_writer = NULL;
+ axis2_om_output_t *om_output = NULL;
+
+ axis2_char_t *buffer = NULL;
+
+ f = fopen("test.xml","r");
+ xml_reader = axis2_xml_reader_create_for_memory(env, read_input_callback,
+ close_input_callback, NULL, NULL);
+ <b>if</b>(!xml_reader)
+ <b>return</b> -1;
+
+ om_builder = axis2_om_stax_builder_create(env, xml_reader);
+ <b>if</b>(!om_builder)
+ {
+ AXIS2_XML_READER_FREE(xml_reader, env);
+ <b>return</b> AXIS2_FAILURE;
+ }
+ document = AXIS2_OM_STAX_BUILDER_GET_DOCUMENT(om_builder, env);
+ <b>if</b>(!document)
+ {
+ AXIS2_OM_STAX_BUILDER_FREE(om_builder, env);
+ <b>return</b> AXIS2_FAILURE;
+ }
+
+ root_node = AXIS2_OM_DOCUMENT_GET_ROOT_ELEMENT(document, env);
+ <b>if</b>(!root_node)
+ {
+ AXIS2_OM_STAX_BUILDER_FREE(om_builder, env);
+ <b>return</b> AXIS2_FAILURE;
+ }
+ <b>if</b>(root_node)
+ {
+ <b>if</b>(AXIS2_OM_NODE_GET_NODE_TYPE(root_node, env) == AXIS2_OM_ELEMENT)
+ {
+ root_ele = (axis2_om_element_t*)AXIS2_OM_NODE_GET_DATA_ELEMENT (root_node, env);
+ <b>if</b>(root_ele)
+ {
+ printf(" %s" , AXIS2_OM_ELEMENT_GET_LOCALNAME(root_ele, env));
+ }
+ }
+ }
+ AXIS2_OM_DOCUMENT_BUILD_ALL(document, env);
+
+ xml_writer = axis2_xml_writer_create_for_memory(env, NULL, AXIS2_TRUE, 0);
+
+ om_output = axis2_om_output_create(env, xml_writer);
+
+ AXIS2_OM_NODE_SERIALIZE(root_node, env, om_output);
+ buffer = AXIS2_XML_WRITER_GET_XML(xml_writer, env);
+
+ printf("The output XML is ->>>>\n %s ", buffer);
+
+
+ <i>/** when om_output is freed xml_writer is also freed */</i>
+
+ AXIS2_OM_OUTPUT_FREE(om_output, env);
+
+ <i>/** when om_builder is freed , the builder, om_document and the entire om structure is freed */</i>
+ AXIS2_OM_STAX_BUILDER_FREE(om_builder, env);
+
+ AXIS2_FREE((*env)->allocator, buffer);
+
+ <b>return</b> AXIS2_SUCCESS;
+
}
-<font color="#800000">int</font> <font color="#000000">main</font>()
+int main()
{
- <font color="#800000">int</font> <font color="#000000">status</font> = <font color="#000000">AXIS2_SUCCESS</font>;
-
- <font color="#000000">axis2_env_t</font> *<font color="#000000">env</font> = <font color="#000000">NULL</font>;
- <font color="#000000">axis2_allocator_t</font> *<font color="#000000">allocator</font> = <font color="#000000">NULL</font>;
- <font color="#000000">env</font> = <font color="#000000">create_environment</font>();
-<br>
- <font color="#000000">status</font> = <font color="#000000">build_and_serialize_om</font>(&<font color="#000000">env</font>);
-
- <font color="#000000"><b>if</b></font>(<font color="#000000">status</font> == <font color="#000000">AXIS2_FAILURE</font>)
- {
- <font color="#000000">printf</font>(<font color="#FF0000">" build om failed"</font>);
- }
-
- <font color="#000000">axis2_env_free</font>(<font color="#000000">env</font>);
-
- <font color="#000000"><b>return</b></font> <font color="#0000FF">0</font>;
+ int status = AXIS2_SUCCESS;
+
+ axis2_env_t *env = NULL;
+ axis2_allocator_t *allocator = NULL;
+ env = create_environment();
+<br />
+ status = build_and_serialize_om(&env);
+
+ <b>if</b>(status == AXIS2_FAILURE)
+ {
+ printf(" build om failed");
+ }
+
+ axis2_env_free(env);
+
+ <b>return</b> 0;
}
-</font>
</pre>
</body>
</html>