<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dimuthu's Blog &#187; codegen</title>
	<atom:link href="http://www.dimuthu.org/tag/codegen/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dimuthu.org</link>
	<description>Waiting for your comments</description>
	<lastBuildDate>Wed, 07 Jul 2010 12:42:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
<image>
  <link>http://www.dimuthu.org</link>
  <url>http://www.dimuthu.org/favicon.ico</url>
  <title>Dimuthu's Blog</title>
</image>
		<item>
		<title>Use Axis2/C WSDL2C With Unwrapped Mode for Simpler Code</title>
		<link>http://www.dimuthu.org/blog/2008/09/15/use-axis2c-wsdl2c-with-unwrapped-mode-for-simpler-code/</link>
		<comments>http://www.dimuthu.org/blog/2008/09/15/use-axis2c-wsdl2c-with-unwrapped-mode-for-simpler-code/#comments</comments>
		<pubDate>Mon, 15 Sep 2008 15:10:37 +0000</pubDate>
		<dc:creator>dimuthu</dc:creator>
				<category><![CDATA[Tutorial/Guide]]></category>
		<category><![CDATA[WSDL]]></category>
		<category><![CDATA[adb]]></category>
		<category><![CDATA[axis2/c]]></category>
		<category><![CDATA[codegen]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[web services]]></category>
		<category><![CDATA[wsdl2c]]></category>
		<category><![CDATA[xml schema]]></category>
		<category><![CDATA[Code generation]]></category>
		<category><![CDATA[Easier]]></category>
		<category><![CDATA[Simple]]></category>
		<category><![CDATA[unwrapped]]></category>

		<guid isPermaLink="false">http://www.dimuthu.org/?p=263</guid>
		<description><![CDATA[WSDL2Java and WSDL2C tools shipped with the Axis2/Java project are used to generate Stubs(client side) and Skeletons(Server Side) respectively for Axis2/Java and Axis2/C codes. This make the development of web services and consumers more quicker and easier. The tools come with many options allowing the user to customize the code generation. One of the such [...]]]></description>
			<content:encoded><![CDATA[<p>WSDL2Java and WSDL2C tools shipped with the <a href="http://ws.apache.org/axis2">Axis2/Java project</a> are used to generate Stubs(client side) and Skeletons(Server Side) respectively for Axis2/Java and Axis2/C codes. This make the development of web services and consumers more quicker and easier.</p>
<p>The tools come with many options allowing the user to customize the code generation. One of the such option is &#8216;-uw&#8217; which used to turn on the &#8216;unwrapping&#8217; mode. WSDL2Java project had this option for a long time, But it is just Today I was able to enable that option in the WSDL2C tool. So lets see how it make the code easier.</p>
<p>Say you have the &#8216;simpleAdd&#8217; operation with the following schema,</p>
<pre>            <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xs:element</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"simpleAdd"</span><span style="font-weight: bold; color: black;">&gt;</span></span>
                <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xs:complexType<span style="font-weight: bold; color: black;">&gt;</span></span></span>
                    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xs:sequence<span style="font-weight: bold; color: black;">&gt;</span></span></span>
                        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xs:element</span> <span style="color: #000066;">minOccurs</span>=<span style="color: #ff0000;">"0"</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"param0"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"xs:int"</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
                        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xs:element</span> <span style="color: #000066;">minOccurs</span>=<span style="color: #ff0000;">"0"</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"param1"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"xs:int"</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
                    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xs:sequence<span style="font-weight: bold; color: black;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xs:complexType<span style="font-weight: bold; color: black;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xs:element<span style="font-weight: bold; color: black;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xs:element</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"simpleAddResponse"</span><span style="font-weight: bold; color: black;">&gt;</span></span>
                <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xs:complexType<span style="font-weight: bold; color: black;">&gt;</span></span></span>
                    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xs:sequence<span style="font-weight: bold; color: black;">&gt;</span></span></span>
                        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xs:element</span> <span style="color: #000066;">minOccurs</span>=<span style="color: #ff0000;">"0"</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"return"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"xs:int"</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
                    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xs:sequence<span style="font-weight: bold; color: black;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xs:complexType<span style="font-weight: bold; color: black;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xs:element<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre>
<p>When you generate the code for server side with Java using the following command, (note the option -uw which stands for &#8216;unwrapping&#8217;)</p>
<pre>wsdl2java.sh -uri xxx.wsdl -u -ss -sd -uw</pre>
<p>it gives you the following service function.</p>
<pre><span style="font-weight: bold; color: #000000;">public</span> <span style="color: #993333;">int</span> simpleAdd<span style="color: #66cc66;">(</span><span style="color: #993333;">int</span> param0, <span style="color: #993333;">int</span> param1<span style="color: #66cc66;">)</span>
<span style="color: #66cc66;">{</span>
    <span style="font-style: italic; color: #808080;">//TODO : fill this with the necessary business logic</span>
<span style="color: #66cc66;">}</span></pre>
<p>Note the input and output parameters of the function are simple types. If you don&#8217;t give the &#8216;-uw&#8217; option, You will instead get a function with input and output variables as class names wrapping these simple types which is not this much straight forward.</p>
<p>So now the same is available with C. You can use  WSDl2C tool with the same option set to generate a very simple service API.</p>
<pre>wsdl2c.sh -uri xxx.wsdl -u -ss -sd -uw</pre>
<p>And here is the service logic you may write, Can you think of an API simpler than this,</p>
<pre>        <span style="font-style: italic; color: #808080;">/**
         * auto generated function definition signature
         * for "simpleAdd|http://ws.apache.org/axis2" operation.
         * @param env environment ( mandatory)
         * @param _param0 of the int
         * @param _param1 of the int
         *
         * @return int
         */</span>
        <span style="color: #993333;">int</span> axis2_skel_UnwrappedAdder_simpleAdd<span style="color: #66cc66;">(</span><span style="color: #993333;">const</span> axutil_env_t *env,
                                              <span style="color: #993333;">int</span> _param0,
                                              <span style="color: #993333;">int</span> _param1 <span style="color: #66cc66;">)</span>

        <span style="color: #66cc66;">{</span>
          <span style="color: #b1b100;">return</span> _param0 + _param1;
        <span style="color: #66cc66;">}</span></pre>
<p>You can find the code for complete case (wsdl, skel and stub) in the <a href="https://issues.apache.org/jira/secure/attachment/12390112/unwrapped.zip"> Axis2/C Jira Attachment space for the &#8216;unwrapping&#8217; issue</a>. Note that this update is only available in the nightly build and not in the release. You can download the nightly build from <a href="http://builder.wso2.org/browse/AXIS2-NIGHTLY">wso2&#8242;s axis2/java nightly build page</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dimuthu.org/blog/2008/09/15/use-axis2c-wsdl2c-with-unwrapped-mode-for-simpler-code/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to Hack Axis2 Codegen templates from an Axis2 Binary</title>
		<link>http://www.dimuthu.org/blog/2008/09/13/how-to-hack-axis2-codegen-templates-from-a-axis2-binary/</link>
		<comments>http://www.dimuthu.org/blog/2008/09/13/how-to-hack-axis2-codegen-templates-from-a-axis2-binary/#comments</comments>
		<pubDate>Sat, 13 Sep 2008 14:35:17 +0000</pubDate>
		<dc:creator>dimuthu</dc:creator>
				<category><![CDATA[Tutorial/Guide]]></category>
		<category><![CDATA[WSDL]]></category>
		<category><![CDATA[adb]]></category>
		<category><![CDATA[axis2/c]]></category>
		<category><![CDATA[codegen]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[web services]]></category>
		<category><![CDATA[wsdl2c]]></category>
		<category><![CDATA[xml schema]]></category>
		<category><![CDATA[Axis2/Java]]></category>
		<category><![CDATA[binary]]></category>
		<category><![CDATA[Custom templates]]></category>
		<category><![CDATA[Skeleton]]></category>
		<category><![CDATA[Stub]]></category>
		<category><![CDATA[Tools]]></category>
		<category><![CDATA[XSLT]]></category>

		<guid isPermaLink="false">http://www.dimuthu.org/?p=255</guid>
		<description><![CDATA[I have been working for Axis2/C codegen tool for sometime now and I found lot of users who want to edit the codegen templates for a more optimized code specific to their use cases. This is mainly because codegen tool generates a very general code (For an example lot of unused variables generated for some [...]]]></description>
			<content:encoded><![CDATA[<p>I have been working for <a href="http://ws.apache.org/axis2/c/">Axis2/C</a> codegen tool for sometime now and I found lot of users who want to edit the codegen templates for a more optimized code specific to their use cases. This is mainly because codegen tool generates a very general code (For an example lot of unused variables generated for some WSDLs, but they are used in some other WSDLs) where as mostly &#8216;C&#8217; people prefer to be as optimized as possible. Axis2 Java templates are more stable and not needed to customized as much as C templates, but Java developers too may find it is really useful to edit them in a case they need some customizations.</p>
<p>Both Axis2 C and Java tools comes with <a href="http://ws.apache.org/axis2/">Axis2/Java project</a>. So you may already have downloaded the latest <a href="http://ws.apache.org/axis2/download.cgi">Axis2/Java release</a> or <a href="http://builder.wso2.org/browse/AXIS2-NIGHTLY">the Axis2/Java nightly build</a>. As per title you can do this customization not only in the source but also in the binary pack. So I assume you have the binary pack.</p>
<p>Codegen tool mainly comes within two jars inside the lib directory of your Axis2/Java pack. (Here xxxx should be replaced with the particular jar version, it can be 1.4, 1.4.1 or SNAPSHOT)</p>
<ul>
<li>axis2-codegen-xxxx.jar &#8211; The core classes of the codegen (This is where WSDL2C and WSDL2Java classes reside)</li>
<li>axis2-adb-codegen-xxxx.jar &#8211; This is the library containing the adb component of the codegen tool. ADB (Axis2 Data Binding) is the native databinding format of Axis2 which convert your xml schema to a more programmer friendly set of java classes or &#8216;C&#8217; structures. The XSD2Java class comes in this jar.</li>
</ul>
<p><strong>Editing the Stub and Skeleton templates</strong></p>
<p>When you unpack the axis2-codegen-xxxx.jar</p>
<pre>jar xf axis2-codegen-xxxx.jar</pre>
<p>you can find the template for Stub and Skel in org/apache/axis2/wsdl/template/c or org/apache/axis2/wsdl/template/java directories.</p>
<ul>
<li>Stub For C &#8211; org/apache/axis2/wsdl/template/c/StubSourceTemplate.xsl (source) and org/apache/axis2/wsdl/template/c/StubHeaderTemplate.xsl (header)</li>
<li>Skeleton for C &#8211; org/apache/axis2/wsdl/template/c/SkelSourceTemplate.xsl (source) and org/apache/axis2/wsdl/template/c/SkelHeaderTemplate.xsl (header)</li>
<li>Stub For Java &#8211; org/apache/axis2/wsdl/template/java/InterfaceImplementationTemplate.xsl</li>
<li>Skel For Java &#8211; org/apache/axis2/wsdl/template/java/MessageReceiverTemplate.xsl (Message Reciever) and org/apache/axis2/wsdl/template/java/SkeletonTemplate.xsl (skeleton)</li>
</ul>
<p>These templates are written is XSL. Even if you are an XSL expert, you may find little difficult to understand whole lot of codes in there. But if you really know what you need to change, you can track back the lines (may be using comment or some specific static set of code). So you don&#8217;t actually need to know any XSL to do these little customizations.</p>
<p>After you do the change simply pack the classes (which are in the &#8216;org&#8217; directory) as the jar with the same name.</p>
<pre>jar cf axis2-codegen-xxxx.jar org</pre>
<p><strong>Editing the ADB templates</strong></p>
<p>You can similarly observe the axis2-adb-codegen-xxxx.jar. All the templates are in the org/apache/axis2/schema/template/ directory.</p>
<ul>
<li>C ADB templates &#8211; org/apache/axis2/schema/template/CADBBeanTemplateHeader.xsl (Source) and org/apache/axis2/schema/template/CADBBeanTemplateHeader.xsl (Header)</li>
<li>Java ADB template &#8211; org/apache/axis2/schema/template/ADBBeanTemplate.xsl</li>
</ul>
<p>You will find the template for the Java classes and C structures there. In C code generation if you find some variables are not used throughout your WSDLs, you can remove directly if from the templates. And some constants which are defined to allocate memory can be changed to suit to your application.</p>
<p>Anyway after all these notes, I have to say it is not really recommended to hack a code specific to your application. If you found a change general to all the applications you better submit the patch to the Axis2 community, so others too can use it. Otherwise whenever you do a upgrade you have to do this again on your own. But I hope these tips may be useful specially when you are working with ADB to do your own experiments.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dimuthu.org/blog/2008/09/13/how-to-hack-axis2-codegen-templates-from-a-axis2-binary/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Axis2/C ADB 2 Minutes Introduction</title>
		<link>http://www.dimuthu.org/blog/2008/09/03/axis2c-adb-2-minitue-introduction/</link>
		<comments>http://www.dimuthu.org/blog/2008/09/03/axis2c-adb-2-minitue-introduction/#comments</comments>
		<pubDate>Wed, 03 Sep 2008 14:14:27 +0000</pubDate>
		<dc:creator>dimuthu</dc:creator>
				<category><![CDATA[2 minutes guide]]></category>
		<category><![CDATA[Tutorial/Guide]]></category>
		<category><![CDATA[WSDL]]></category>
		<category><![CDATA[adb]]></category>
		<category><![CDATA[axis2/c]]></category>
		<category><![CDATA[codegen]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[wsdl2c]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[xml schema]]></category>
		<category><![CDATA[2 minutes]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.dimuthu.org/?p=204</guid>
		<description><![CDATA[Building and Traversing XML are regular tasks for any Web Service developer. We may use DOM, AXIOM or even simple String manipulation functions to do that. Normally this takes a lot of time and effort. And if we are coding in &#8216;C&#8217; it become more tedious as string manipulation in &#8216;C&#8217; is not that straight [...]]]></description>
			<content:encoded><![CDATA[<p>Building and Traversing XML are regular tasks for any Web Service developer. We may use DOM, AXIOM or even simple String manipulation functions to do that. Normally this takes a lot of time and effort. And if we are coding in &#8216;C&#8217; it become more tedious as string manipulation in &#8216;C&#8217; is not that straight forward.</p>
<p>What ADB does is it generates a set of &#8216;C&#8217; functions specially for our XML Schema to build and traverse the XML.<br />
Say you have the following XML Schema. (You need to have it inside a WSDL to generate the code).</p>
<pre>        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xs:schema</span> <span style="color: #000066;">targetNamespace</span>=<span style="color: #ff0000;">"http://dimuthu.org/adb/demo/2008/sept"</span><span style="font-weight: bold; color: black;">&gt;</span></span>
            <span style="color: #009900;"><span style="font-style: italic; color: #808080;">&lt;!-- demonstrating element--&gt;</span></span>
            <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xs:element</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"myDemo"</span><span style="font-weight: bold; color: black;">&gt;</span></span>
                <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xs:complexType<span style="font-weight: bold; color: black;">&gt;</span></span></span>
                    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xs:sequence<span style="font-weight: bold; color: black;">&gt;</span></span></span>
                        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xs:element</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"demo1"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"xs:int"</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
                        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xs:element</span> <span style="color: #000066;">name</span>=<span style="color: #ff0000;">"demo2"</span> <span style="color: #000066;">type</span>=<span style="color: #ff0000;">"xs:string"</span><span style="font-weight: bold; color: black;">/&gt;</span></span>
                    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xs:sequence<span style="font-weight: bold; color: black;">&gt;</span></span></span>
                <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xs:complexType<span style="font-weight: bold; color: black;">&gt;</span></span></span>
            <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/xs:element<span style="font-weight: bold; color: black;">&gt;</span></span></span>
        <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;xs:schema</span><span style="font-weight: bold; color: black;">/&gt;</span></span></pre>
<p>For this particular element there will be one adb type (adb_myDemo_t), one source (adb_myDemo.c) and one header (adb_myDemo.h) are generated. Don&#8217;t ever look at the source file (unless you want to hack it) just go through the header, it will have all the function you need to manipulate your ADB.</p>
<p>It will have following set of functions,</p>
<pre>To create and free the object
<ul>
<li>adb_myDemo_create</li>
<li>adb_myDemo_free</li>
</ul>

Getters and Setters to manipulate Data
<ul>
<li>adb_myDemo_get_demo1</li>
<li>adb_myDemo_set_demo1</li>
<li>adb_myDemo_get_demo2</li>
<li>adb_myDemo_set_demo2</li>
</ul>

Build and Parse XML
<ul>
<li>adb_myDemo_serialize</li>
<li>adb_myDemo_deserialize</li>
</ul>
</pre>
<p>First we will check how to build a simple XML using an ADB object.</p>
<pre>    adb_myDemo_t *mydemo = adb_myDemo_create<span style="color: #66cc66;">(</span>env<span style="color: #66cc66;">)</span>;
    adb_myDemo_set_demo1<span style="color: #66cc66;">(</span>mydemo, env, <span style="color: #cc66cc;">3</span><span style="color: #66cc66;">)</span>; <span style="font-style: italic; color: #808080;">/* some arbitrary value */</span>
    adb_myDemo_set_demo2<span style="color: #66cc66;">(</span>mydemo, env, <span style="color: #ff0000;">"some arbitrary string"</span><span style="color: #66cc66;">)</span>;
    axiom_t *xml = adb_myDemo_serialize<span style="color: #66cc66;">(</span>mydemo, env, <span style="font-weight: bold; color: #000000;">NULL</span>, <span style="font-weight: bold; color: #000000;">NULL</span>, AXIS2_TRUE, <span style="font-weight: bold; color: #000000;">NULL</span>, <span style="font-weight: bold; color: #000000;">NULL</span><span style="color: #66cc66;">)</span>;</pre>
<p>So now we have the AXIOM representation of the XML which we just build using ADB.</p>
<pre><span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;ns0:myDemo</span> xmlns:ns0=<span style="color: #ff0000;">"http://dimuthu.org/adb/demo/2008/sept"</span><span style="font-weight: bold; color: black;">&gt;</span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;ns0:demo1<span style="font-weight: bold; color: black;">&gt;</span></span></span>3<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/ns0:demo1<span style="font-weight: bold; color: black;">&gt;</span></span></span>
    <span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;ns0:demo2<span style="font-weight: bold; color: black;">&gt;</span></span></span>some arbitrary string<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/ns0:demo2<span style="font-weight: bold; color: black;">&gt;</span></span></span>
<span style="color: #009900;"><span style="font-weight: bold; color: black;">&lt;/ns0:myDemo<span style="font-weight: bold; color: black;">&gt;</span></span></span></pre>
<p>Anyway ADB is easier when you want to navigate through an XML. (you can read data randomly as you preferred). Here we starting from the AXIOM representation of our XML.</p>
<pre>      adb_myDemo_t *mydemo= adb_myDemo_create<span style="color: #66cc66;">(</span> env<span style="color: #66cc66;">)</span>;
      adb_myDemo_deserialize<span style="color: #66cc66;">(</span>mydemo, env, &amp;xml, <span style="font-weight: bold; color: #000000;">NULL</span>, AXIS2_FALSE<span style="color: #66cc66;">)</span><span style="color: #66cc66;">)</span>
      <span style="color: #993333;">int</span> demo1 = adb_myDemo_get_demo1<span style="color: #66cc66;">(</span>mydemo, env<span style="color: #66cc66;">)</span>;
      <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span style="color: #000066;">printf</span></a><span style="color: #66cc66;">(</span><span style="color: #ff0000;">"My Demo1 is: %d<span style="font-weight: bold; color: #000099;">\\</span>n"</span>, demo1<span style="color: #66cc66;">)</span>;
      axis2_char_t *demo2 = adb_myDemo_get_demo2<span style="color: #66cc66;">(</span>mydemo, env<span style="color: #66cc66;">)</span>;
      <a href="http://www.opengroup.org/onlinepubs/009695399/functions/printf.html"><span style="color: #000066;">printf</span></a><span style="color: #66cc66;">(</span><span style="color: #ff0000;">"My Demo2 is: %s<span style="font-weight: bold; color: #000099;">\\</span>n"</span>, demo2<span style="color: #66cc66;">)</span>;</pre>
<p>I have printed the Data contained in the XML with the help of ADB objects.</p>
<p>In ordre to download the Codegen tool with ADB you have to download the <a href="http://ws.apache.org/axis2/download.cgi">Axis2/Java package</a>.</p>
<p>If you want to learn more about ADB, Just go through <a href="http://www.dimuthu.org/blog/2008/07/21/axis2c-adb-codegen-wsdl2c-tutorial-resources/">more Axis2/C Codegen / ADB resources </a>which I have blogged few weeks ago.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.dimuthu.org/blog/2008/09/03/axis2c-adb-2-minitue-introduction/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Axis2/C ADB Codegen (WSDL2C) Tutorial + Resources</title>
		<link>http://www.dimuthu.org/blog/2008/07/21/axis2c-adb-codegen-wsdl2c-tutorial-resources/</link>
		<comments>http://www.dimuthu.org/blog/2008/07/21/axis2c-adb-codegen-wsdl2c-tutorial-resources/#comments</comments>
		<pubDate>Mon, 21 Jul 2008 02:03:26 +0000</pubDate>
		<dc:creator>dimuthu</dc:creator>
				<category><![CDATA[adb]]></category>
		<category><![CDATA[axis2/c]]></category>
		<category><![CDATA[codegen]]></category>
		<category><![CDATA[tool]]></category>
		<category><![CDATA[web services]]></category>
		<category><![CDATA[wsdl2c]]></category>
		<category><![CDATA[resources]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[WSLD2C]]></category>

		<guid isPermaLink="false">http://www.dimuthu.org/?p=18</guid>
		<description><![CDATA[Here are some list of links that you may find useful to start working with Axis2/C ADB Codegen tool. Building Axis2/C Web Services with the help of Axis2/Java Tools (Tutorial) Codegen + ADB Samples (SVN) 20+ Test cases, how different schemas are constructed in ADB/C Helper tools to generate demo codes for Axis2/C ADB generated [...]]]></description>
			<content:encoded><![CDATA[<p>Here are some list of links that you may find useful to start working with Axis2/C ADB Codegen tool.</p>
<ol>
<li><a title="Axis2/C ADB tutorial" href="http://wso2.org/library/3534">Building Axis2/C Web Services with the help of Axis2/Java Tools (Tutorial)</a></li>
<li><a title="Codegen + ADB Samples from SVN" href="http://svn.apache.org/repos/asf/webservices/axis2/trunk/c/samples/codegen/">Codegen + ADB Samples (SVN)</a></li>
<li><a title="Axis2/C ADB Test Cases" href="http://people.apache.org/~dimuthu/leisure/1_dec/wsdl2ctests.tar.bz2">20+ Test cases, how different schemas are constructed in ADB/C</a></li>
<li><a title="Axis2/C codegen helper tool blog" href="http://dimuthuc.wordpress.com/2007/12/01/axis2c-codegen-helper-tools/">Helper tools to generate demo codes for Axis2/C ADB generated code (Blog)<br />
</a></li>
<li><a title="Axis2/C Codegen new features Blog" href="http://dimuthuc.wordpress.com/2007/11/16/axis2c-codegen-new-features/">How Axis2/C ADB Codegen support nillable and minOccurs=0 (Blog)<br />
</a></li>
<li><a title="Blog on Simple Type List Support" href="http://dimuthuc.wordpress.com/2007/12/31/last-jira-for-the-year-2007/">Simple Type List Support (Blog)</a></li>
<li><a title="Overview of Axis2/C ADB" href="http://wsaxc.blogspot.com/2007/06/using-wsdl2c-tool.html">Overview of using Axis2/C ADB (Blog)</a></li>
<li><a title="Little Howto base64 xmime" href="http://www.nabble.com/adb-with-base64Binary-and-xmime.xsd---little-howto-td12900422.html">adb with base64Binary and xmime.xsd &#8211; little howto (Mail)</a></li>
<li><a title="Developer list archieves" href="http://www.nabble.com/forum/Search.jtp?query=wsdl2c+OR+codegen+and+not+jira&amp;sort=date&amp;local=y&amp;forum=227&amp;daterange=0">Latest developers discussion on Axis2/C codegen tool (Mail)</a></li>
<li><a title="Past user list archieves" href="http://www.nabble.com/forum/Search.jtp?query=wsdl2c+or+codegen&amp;sort=date&amp;local=y&amp;forum=228&amp;daterange=0">Past User inquiries on Axis2/C Adb Codegen tool (Mail)</a></li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://www.dimuthu.org/blog/2008/07/21/axis2c-adb-codegen-wsdl2c-tutorial-resources/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
