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/09/27 15:16:07 UTC
svn commit: r450430 [7/7] - in /webservices/axis2/trunk/c/tools/codegen:
include/ src/schema/ src/schema/compiler/ src/schema/writer/ src/templates/
src/templates/c/ src/typemappers/
Added: webservices/axis2/trunk/c/tools/codegen/src/templates/c/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/codegen/src/templates/c/Makefile.am?view=auto&rev=450430
==============================================================================
--- webservices/axis2/trunk/c/tools/codegen/src/templates/c/Makefile.am (added)
+++ webservices/axis2/trunk/c/tools/codegen/src/templates/c/Makefile.am Wed Sep 27 06:16:04 2006
@@ -0,0 +1,5 @@
+samplesdir=$(prefix)/conf/templates/c
+samples_DATA= \
+ CADBBeanTemplateHeader.xsl ServiceSkeleton.xsl SkelHeaderTemplate.xsl StubHeaderTemplate.xsl \
+ CADBBeanTemplateSource.xsl ServiceXMLTemplate.xsl SkelSourceTemplate.xsl StubSourceTemplate.xsl
+
Added: webservices/axis2/trunk/c/tools/codegen/src/templates/c/ServiceSkeleton.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/codegen/src/templates/c/ServiceSkeleton.xsl?view=auto&rev=450430
==============================================================================
--- webservices/axis2/trunk/c/tools/codegen/src/templates/c/ServiceSkeleton.xsl (added)
+++ webservices/axis2/trunk/c/tools/codegen/src/templates/c/ServiceSkeleton.xsl Wed Sep 27 06:16:04 2006
@@ -0,0 +1,264 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:output method="text"/>
+
+ <!--Template for in out message receiver -->
+ <xsl:template match="/interface">
+ <xsl:variable name="skeletonname"><xsl:value-of select="@name"/></xsl:variable>
+ <xsl:variable name="qname"><xsl:value-of select="@qname"/></xsl:variable>
+ <xsl:variable name="method-prefix"><xsl:value-of select="@prefix"/></xsl:variable>
+ <xsl:variable name="svcop-prefix"><xsl:value-of select="@svcop_prefix"/></xsl:variable>
+ <xsl:variable name="svcname"><xsl:value-of select="@svcname"/></xsl:variable>
+ <xsl:variable name="soapVersion"><xsl:value-of select="@soap-version"/></xsl:variable>
+
+ /**
+ * <xsl:value-of select="@name"/>.c
+ *
+ * This file was auto-generated from WSDL for "<xsl:value-of select="$qname"/>" service
+ * by the Apache Axis2 version: #axisVersion# #today#
+ * <xsl:value-of select="$skeletonname"/>
+ */
+
+ #include "<xsl:value-of select="$svcop-prefix"/>.h"
+ #include <axis2_svc_skeleton.h>
+ #include <axis2_array_list.h>
+ #include <stdio.h>
+
+ /**
+ * functions prototypes
+ */
+
+ /* On fault, handle the fault */
+ axiom_node_t* AXIS2_CALL
+ <xsl:value-of select="$method-prefix"/>_on_fault(axis2_svc_skeleton_t *svc_skeleton,
+ const axis2_env_t *env, axiom_node_t *node);
+
+ /* Free the service */
+ int AXIS2_CALL
+ <xsl:value-of select="$method-prefix"/>_free(axis2_svc_skeleton_t *svc_skeleton,
+ const axis2_env_t *env);
+
+ /* This method invokes the right service method */
+ axiom_node_t* AXIS2_CALL
+ <xsl:value-of select="$method-prefix"/>_invoke(axis2_svc_skeleton_t *svc_skeleton,
+ const axis2_env_t *env,
+ axiom_node_t *node,
+ axis2_msg_ctx_t *msg_ctx);
+
+ /* Initializing the environment */
+ int AXIS2_CALL
+ <xsl:value-of select="$method-prefix"/>_init(axis2_svc_skeleton_t *svc_skeleton,
+ const axis2_env_t *env);
+
+ /* Create the service */
+ axis2_svc_skeleton_t* AXIS2_CALL
+ <xsl:value-of select="$method-prefix"/>_create(const axis2_env_t *env);
+
+ /**
+ * Implementations for the functions
+ */
+
+ axis2_svc_skeleton_t* AXIS2_CALL
+ <xsl:value-of select="$method-prefix"/>_create(const axis2_env_t *env)
+ {
+ axis2_svc_skeleton_t *svc_skeleton = NULL;
+ svc_skeleton = AXIS2_MALLOC(env->allocator,
+ sizeof(axis2_svc_skeleton_t));
+
+
+ svc_skeleton->ops = AXIS2_MALLOC(
+ env->allocator, sizeof(axis2_svc_skeleton_ops_t));
+
+ svc_skeleton->func_array = NULL;
+
+ svc_skeleton->ops->free = <xsl:value-of select="$method-prefix"/>_free;
+ svc_skeleton->ops->init = <xsl:value-of select="$method-prefix"/>_init;
+ svc_skeleton->ops->invoke = <xsl:value-of select="$method-prefix"/>_invoke;
+ svc_skeleton->ops->on_fault = <xsl:value-of select="$method-prefix"/>_on_fault;
+
+ return svc_skeleton;
+ }
+
+
+ int AXIS2_CALL
+ <xsl:value-of select="$method-prefix"/>_init(axis2_svc_skeleton_t *svc_skeleton,
+ const axis2_env_t *env)
+ {
+ svc_skeleton->func_array = axis2_array_list_create(env, 10);
+ <xsl:for-each select="method">
+ AXIS2_ARRAY_LIST_ADD(svc_skeleton->func_array, env, "<xsl:value-of select="@localpart"/>");
+ </xsl:for-each>
+
+ /* Any initialization stuff of <xsl:value-of select="$svcname"/> goes here */
+ return AXIS2_SUCCESS;
+ }
+
+ int AXIS2_CALL
+ <xsl:value-of select="$method-prefix"/>_free(axis2_svc_skeleton_t *svc_skeleton,
+ const axis2_env_t *env)
+ {
+ if(svc_skeleton->func_array)
+ {
+ AXIS2_ARRAY_LIST_FREE(svc_skeleton->func_array, env);
+ svc_skeleton->func_array = NULL;
+ }
+
+ if(svc_skeleton->ops)
+ {
+ AXIS2_FREE(env->allocator, svc_skeleton->ops);
+ svc_skeleton->ops = NULL;
+ }
+
+ if(svc_skeleton)
+ {
+ AXIS2_FREE(env->allocator, svc_skeleton);
+ svc_skeleton = NULL;
+ }
+ return AXIS2_SUCCESS;
+ }
+
+
+ /*
+ * This method invokes the right service method
+ */
+ axiom_node_t* AXIS2_CALL
+ <xsl:value-of select="$method-prefix"/>_invoke(axis2_svc_skeleton_t *svc_skeleton,
+ const axis2_env_t *env,
+ axiom_node_t *content_node,
+ axis2_msg_ctx_t *msg_ctx)
+ {
+ /* depending on the function name invoke the
+ * corresponding method
+ */
+
+ axiom_element_t *element = NULL;
+ axiom_node_t *ret_node = NULL;
+
+ <xsl:for-each select="method">
+ <xsl:text>
+ </xsl:text>
+ <xsl:variable name="position"><xsl:value-of select="position()"/></xsl:variable>
+ <xsl:variable name="outputtype">
+ <xsl:choose>
+ <xsl:when test="output/param/@ours">axis2_<xsl:value-of select="output/param/@type"></xsl:value-of>_t*</xsl:when>
+ <xsl:otherwise><xsl:value-of select="output/param/@type"></xsl:value-of></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:value-of select="$outputtype"/> ret_val<xsl:value-of select="$position"/><xsl:if test="output/param/@ours"> = NULL</xsl:if>;
+ <xsl:for-each select="input/param[@type!='']">
+ <xsl:variable name="inputtype">
+ <xsl:if test="@ours">axis2_</xsl:if><xsl:value-of select="@type"/><xsl:if test="@ours">_t*</xsl:if>
+ </xsl:variable>
+ <xsl:value-of select="$inputtype"/> input_val<xsl:value-of select="$position"/>_<xsl:value-of select="position()"/><xsl:if test="input/param/@ours"> = NULL</xsl:if>;
+ </xsl:for-each>
+ </xsl:for-each>
+ if (content_node)
+ {
+ if (AXIOM_NODE_GET_NODE_TYPE(content_node, env) == AXIOM_ELEMENT)
+ {
+ element = (axiom_element_t *)AXIOM_NODE_GET_DATA_ELEMENT(content_node, env);
+ if (element)
+ {
+ axis2_char_t *op_name = AXIOM_ELEMENT_GET_LOCALNAME(element, env);
+ if (op_name)
+ {
+ <xsl:for-each select="method">
+ <xsl:variable name="position"><xsl:value-of select="position()"/></xsl:variable>
+ <xsl:variable name="name"><xsl:value-of select="@name"/></xsl:variable>
+ <xsl:variable name="method-name"><xsl:value-of select="@name"/></xsl:variable>
+ <xsl:variable name="method-ns"><xsl:value-of select="@namespace"/> </xsl:variable>
+ <xsl:variable name="outputCapsType"><xsl:value-of select="@output/param/@caps-type"/> </xsl:variable>
+ <xsl:variable name="outputtype"><xsl:value-of select="output/param/@type"/></xsl:variable>
+
+ if ( AXIS2_STRCMP(op_name, "<xsl:value-of select="@localpart"/>") == 0 )
+ {
+ <xsl:for-each select="input/param[@type!='']">
+ input_val<xsl:value-of select="$position"/>_<xsl:value-of select="position()"/> = <xsl:choose>
+ <xsl:when test="@ours">
+ axis2_<xsl:value-of select="@type"/>_create( env);
+ AXIS2_<xsl:value-of select="@caps-type"/>_BUILD_OM(input_val<xsl:value-of select="$position"/>_<xsl:value-of select="position()"/>, env, content_node );
+ </xsl:when>
+ <xsl:otherwise>content_node;</xsl:otherwise>
+ </xsl:choose>
+ ret_val<xsl:value-of select="$position"/> = <xsl:value-of select="$svcop-prefix"/>_<xsl:value-of select="$method-name"/>(env,
+ input_val<xsl:value-of select="$position"/>_<xsl:value-of select="position()"/> );
+ if ( NULL == ret_val<xsl:value-of select="$position"/> )
+ {
+ AXIS2_LOG_ERROR( env->log, AXIS2_LOG_SI, "NULL returnted from the business logic from <xsl:value-of select="$method-name"/> "
+ " %d :: %s", env->error->error_number,
+ AXIS2_ERROR_GET_MESSAGE(env->error));
+ return <xsl:value-of select="$method-prefix"/>_on_fault( svc_skeleton, env, NULL);
+ }
+ ret_node = <xsl:choose>
+ <xsl:when test="@ours">
+ AXIS2_<xsl:value-of select="@caps-type"/>_PARSE_OM(ret_val<xsl:value-of select="$position"/>, env, NULL );
+ </xsl:when>
+ <xsl:otherwise>ret_val;</xsl:otherwise>
+ </xsl:choose>
+ return ret_node;
+ </xsl:for-each>
+
+ <!-- below was prior to the databinding -->
+ <!-- <xsl:if test="$outputtype!=''">return </xsl:if>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$svcop-prefix"/>_<xsl:value-of select="$method-name"/>(env <xsl:for-each select="input/param[@type!='']"> ,
+ content_node </xsl:for-each>);
+ <xsl:if test="$outputtype=''">return NULL;</xsl:if> -->
+
+ }
+ </xsl:for-each>
+ }
+ }
+ }
+ }
+ printf("<xsl:value-of select="$skeletonname"/> service ERROR: invalid OM parameters in request\n");
+ return content_node;
+ }
+
+ axiom_node_t* AXIS2_CALL
+ <xsl:value-of select="$method-prefix"/>_on_fault(axis2_svc_skeleton_t *svc_skeleton,
+ const axis2_env_t *env, axiom_node_t *node)
+ {
+ axiom_node_t *error_node = NULL;
+ axiom_element_t *error_ele = NULL;
+ error_ele = axiom_element_create(env, node, "fault", NULL,
+ &error_node);
+ AXIOM_ELEMENT_SET_TEXT(error_ele, env, "<xsl:value-of select="$qname"/> failed",
+ error_node);
+ return error_node;
+ }
+
+
+ /**
+ * Following block distinguish the exposed part of the dll.
+ */
+
+ AXIS2_EXTERN int AXIS2_CALL
+ axis2_get_instance(struct axis2_svc_skeleton **inst,
+ const axis2_env_t *env)
+ {
+ *inst = <xsl:value-of select="$method-prefix"/>_create(env);
+
+ if(!(*inst))
+ {
+ return AXIS2_FAILURE;
+ }
+
+ return AXIS2_SUCCESS;
+ }
+
+ AXIS2_EXTERN int AXIS2_CALL
+ axis2_remove_instance(axis2_svc_skeleton_t *inst,
+ const axis2_env_t *env)
+ {
+ axis2_status_t status = AXIS2_FAILURE;
+ if (inst)
+ {
+ status = AXIS2_SVC_SKELETON_FREE(inst, env);
+ }
+ return status;
+ }
+
+
+ </xsl:template>
+
+</xsl:stylesheet>
Propchange: webservices/axis2/trunk/c/tools/codegen/src/templates/c/ServiceSkeleton.xsl
------------------------------------------------------------------------------
svn:executable = *
Added: webservices/axis2/trunk/c/tools/codegen/src/templates/c/ServiceXMLTemplate.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/codegen/src/templates/c/ServiceXMLTemplate.xsl?view=auto&rev=450430
==============================================================================
--- webservices/axis2/trunk/c/tools/codegen/src/templates/c/ServiceXMLTemplate.xsl (added)
+++ webservices/axis2/trunk/c/tools/codegen/src/templates/c/ServiceXMLTemplate.xsl Wed Sep 27 06:16:04 2006
@@ -0,0 +1,25 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:output method="xml" indent="yes" omit-xml-declaration="yes"/>
+
+ <xsl:template match="/">
+ <xsl:comment> This file was auto-generated from WSDL </xsl:comment>
+ <xsl:comment> by the Apache Axis2 version: #axisVersion# #today# </xsl:comment>
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="interface">
+
+ <service>
+ <xsl:attribute name="name"><xsl:value-of select="@servicename"/></xsl:attribute>
+
+ <parameter name="ServiceClass" locked="false">
+ <xsl:value-of select="@servicename"/>
+ </parameter>
+ <xsl:for-each select="method">
+ <operation>
+ <xsl:attribute name="name"><xsl:value-of select="@name"/></xsl:attribute>
+ </operation>
+ </xsl:for-each>
+ </service>
+ </xsl:template>
+</xsl:stylesheet>
\ No newline at end of file
Propchange: webservices/axis2/trunk/c/tools/codegen/src/templates/c/ServiceXMLTemplate.xsl
------------------------------------------------------------------------------
svn:executable = *
Added: webservices/axis2/trunk/c/tools/codegen/src/templates/c/SkelHeaderTemplate.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/codegen/src/templates/c/SkelHeaderTemplate.xsl?view=auto&rev=450430
==============================================================================
--- webservices/axis2/trunk/c/tools/codegen/src/templates/c/SkelHeaderTemplate.xsl (added)
+++ webservices/axis2/trunk/c/tools/codegen/src/templates/c/SkelHeaderTemplate.xsl Wed Sep 27 06:16:04 2006
@@ -0,0 +1,70 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:output method="text"/>
+ <xsl:template match="/interface">
+ <xsl:variable name="svc_name"><xsl:value-of select="@name"/></xsl:variable>
+ <xsl:variable name="method-prefix"><xsl:value-of select="@prefix"/></xsl:variable>
+ <xsl:variable name="qname"><xsl:value-of select="@qname"/></xsl:variable>
+
+ /**
+ * <xsl:value-of select="@name"/>.h
+ *
+ * This file was auto-generated from WSDL for "<xsl:value-of select="$qname"/>" service
+ * by the Apache Axis2/C version: #axisVersion# #today#
+ * <xsl:value-of select="@name"/> Axis2/C skeleton for the axisService- Header file
+ */
+
+
+ #include <axis2_svc_skeleton.h>
+ #include <axis2_log_default.h>
+ #include <axis2_error_default.h>
+ #include <axiom_text.h>
+ #include <axiom_node.h>
+ #include <axiom_element.h>
+ #include <stdio.h>
+
+
+ <xsl:for-each select="method">
+ <xsl:if test="output/param[@ours and @type!='']">
+ <xsl:variable name="outputtype">axis2_<xsl:value-of select="output/param/@type"></xsl:value-of></xsl:variable>
+ #include "<xsl:value-of select="$outputtype"/>.h"
+ </xsl:if>
+ <xsl:for-each select="input/param[@type!='' and @ours]">
+ <xsl:variable name="inputtype">axis2_<xsl:value-of select="@type"></xsl:value-of></xsl:variable>
+ #include "<xsl:value-of select="$inputtype"/>.h"
+ </xsl:for-each>
+ </xsl:for-each>
+
+
+ <xsl:for-each select="method">
+ <xsl:variable name="outputours"><xsl:value-of select="output/param/@ours"></xsl:value-of></xsl:variable>
+ <xsl:variable name="outputtype">
+ <xsl:choose>
+ <xsl:when test="output/param/@ours">axis2_<xsl:value-of select="output/param/@type"></xsl:value-of>_t*</xsl:when>
+ <xsl:otherwise><xsl:value-of select="output/param/@type"></xsl:value-of></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="count"><xsl:value-of select="count(output/param)"/></xsl:variable>
+
+ <!-- regardless of the sync or async status, the generated method signature would be just a usual
+ c function-->
+ /**
+ * auto generated function declaration
+ * for "<xsl:value-of select="@qname"/>" operation.
+ <!-- select only the body parameters -->
+ <xsl:for-each select="input/param[@type!='']">* @param <xsl:value-of select="@name"></xsl:value-of></xsl:for-each>
+ */
+ <xsl:choose>
+ <xsl:when test="$outputtype=''">axis2_status_t </xsl:when>
+ <xsl:when test="$outputtype!=''"><xsl:value-of select="$outputtype"/></xsl:when>
+ </xsl:choose>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$method-prefix"/>_<xsl:value-of select="@name"/> (const axis2_env_t *env <xsl:for-each select="input/param[@type!='']"> ,
+ <xsl:variable name="inputtype">
+ <xsl:if test="@ours">axis2_</xsl:if><xsl:value-of select="@type"/><xsl:if test="@ours">_t*</xsl:if>
+ </xsl:variable>
+ <xsl:if test="position()>1">,</xsl:if><xsl:value-of select="$inputtype"/><xsl:text> </xsl:text><xsl:value-of select="@name"/>
+ </xsl:for-each> );
+ </xsl:for-each>
+
+ </xsl:template>
+ </xsl:stylesheet>
Propchange: webservices/axis2/trunk/c/tools/codegen/src/templates/c/SkelHeaderTemplate.xsl
------------------------------------------------------------------------------
svn:executable = *
Added: webservices/axis2/trunk/c/tools/codegen/src/templates/c/SkelSourceTemplate.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/codegen/src/templates/c/SkelSourceTemplate.xsl?view=auto&rev=450430
==============================================================================
--- webservices/axis2/trunk/c/tools/codegen/src/templates/c/SkelSourceTemplate.xsl (added)
+++ webservices/axis2/trunk/c/tools/codegen/src/templates/c/SkelSourceTemplate.xsl Wed Sep 27 06:16:04 2006
@@ -0,0 +1,55 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:output method="text"/>
+ <xsl:template match="/interface">
+ <xsl:variable name="svc_name"><xsl:value-of select="@name"/></xsl:variable>
+ <xsl:variable name="method-prefix"><xsl:value-of select="@prefix"/></xsl:variable>
+ <xsl:variable name="qname"><xsl:value-of select="@qname"/></xsl:variable>
+
+ /**
+ * <xsl:value-of select="@name"/>.c
+ *
+ * This file was auto-generated from WSDL for "<xsl:value-of select="$qname"/>" service
+ * by the Apache Axis2/C version: #axisVersion# #today#
+ * <xsl:value-of select="@name"/> Axis2/C skeleton for the axisService
+ */
+
+ #include "<xsl:value-of select="@name"/>.h"
+
+ <xsl:for-each select="method">
+ <xsl:variable name="outputours"><xsl:value-of select="output/param/@ours"></xsl:value-of></xsl:variable>
+ <xsl:variable name="count"><xsl:value-of select="count(output/param)"/></xsl:variable>
+ <xsl:variable name="outputtype">
+ <xsl:choose>
+ <xsl:when test="output/param/@ours">axis2_<xsl:value-of select="output/param/@type"></xsl:value-of>_t*</xsl:when>
+ <xsl:otherwise><xsl:value-of select="output/param/@type"></xsl:value-of></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <!-- regardless of the sync or async status, the generated method signature would be just a usual
+ c function-->
+ /**
+ * auto generated function definition signature
+ * for "<xsl:value-of select="@qname"/>" operation.
+ <!-- select only the body parameters -->
+ <xsl:for-each select="input/param[@type!='']">* @param <xsl:value-of select="@name"></xsl:value-of></xsl:for-each>
+ */
+ <xsl:choose>
+ <xsl:when test="$outputtype=''">axis2_status_t </xsl:when>
+ <xsl:when test="$outputtype!=''"><xsl:value-of select="$outputtype"/></xsl:when>
+ </xsl:choose>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$method-prefix"/>_<xsl:value-of select="@name"/> (const axis2_env_t *env <xsl:for-each select="input/param[@type!='']"> ,
+ <xsl:variable name="inputtype">
+ <xsl:if test="@ours">axis2_</xsl:if><xsl:value-of select="@type"/><xsl:if test="@ours">_t*</xsl:if>
+ </xsl:variable>
+ <xsl:if test="position()>1">,</xsl:if><xsl:value-of select="$inputtype"/><xsl:text> </xsl:text><xsl:value-of select="@name"/>
+ </xsl:for-each> )
+ {
+ /* TODO fill this with the necessary business logic */
+ <xsl:if test="$outputtype!=''">return NULL;</xsl:if>
+ <xsl:if test="$outputtype=''">return AXIS2_SUCCESS;</xsl:if>
+ }
+ </xsl:for-each>
+
+ </xsl:template>
+ </xsl:stylesheet>
Propchange: webservices/axis2/trunk/c/tools/codegen/src/templates/c/SkelSourceTemplate.xsl
------------------------------------------------------------------------------
svn:executable = *
Added: webservices/axis2/trunk/c/tools/codegen/src/templates/c/StubHeaderTemplate.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/codegen/src/templates/c/StubHeaderTemplate.xsl?view=auto&rev=450430
==============================================================================
--- webservices/axis2/trunk/c/tools/codegen/src/templates/c/StubHeaderTemplate.xsl (added)
+++ webservices/axis2/trunk/c/tools/codegen/src/templates/c/StubHeaderTemplate.xsl Wed Sep 27 06:16:04 2006
@@ -0,0 +1,117 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:output method="text"/>
+
+ <xsl:template match="/class">
+ <xsl:variable name="interfaceName"><xsl:value-of select="@interfaceName"/></xsl:variable>
+ <xsl:variable name="callbackname"><xsl:value-of select="@callbackname"/></xsl:variable>
+ <xsl:variable name="isSync"><xsl:value-of select="@isSync"/></xsl:variable>
+ <xsl:variable name="isAsync"><xsl:value-of select="@isAsync"/></xsl:variable>
+ <xsl:variable name="soapVersion"><xsl:value-of select="@soap-version"/></xsl:variable>
+ <xsl:variable name="method-prefix"><xsl:value-of select="@prefix"/></xsl:variable>
+ <xsl:variable name="qname"><xsl:value-of select="@qname"/></xsl:variable>
+
+ /**
+ * <xsl:value-of select="@name"/>.h
+ *
+ * This file was auto-generated from WSDL for "<xsl:value-of select="$qname"/>" service
+ * by the Apache Axis2/C version: #axisVersion# #today#
+ */
+
+ #include <stdio.h>
+ #include <axiom.h>
+ #include <axis2_util.h>
+ #include <axiom_soap.h>
+ #include <axis2_client.h>
+ #include <axis2_stub.h>
+
+ <xsl:for-each select="method">
+ <xsl:if test="output/param[@ours and @type!='']">
+ <xsl:variable name="outputtype">axis2_<xsl:value-of select="output/param/@type"></xsl:value-of></xsl:variable>
+ #include "<xsl:value-of select="$outputtype"/>.h"
+ </xsl:if>
+ <xsl:for-each select="input/param[@type!='' and @ours ]">
+ <xsl:variable name="inputtype">axis2_<xsl:value-of select="@type"></xsl:value-of></xsl:variable>
+ #include "<xsl:value-of select="$inputtype"/>.h"
+ </xsl:for-each>
+ </xsl:for-each>
+ /* function prototypes - for header file*/
+ /**
+ * <xsl:value-of select="$method-prefix"/>_create
+ * create and return the stub with services populated
+ * params - env : environment ( mandatory)
+ * - client_home : Axis2/C home ( mandatory )
+ * - endpoint_uri : service endpoint uri( optional ) - if NULL default picked from wsdl used
+ */
+ axis2_stub_t*
+ <xsl:value-of select="$method-prefix"/>_create (const axis2_env_t *env,
+ axis2_char_t *client_home,
+ axis2_char_t *endpoint_uri);
+ /**
+ * <xsl:value-of select="$method-prefix"/>_populate_services
+ * populate the svc in stub with the service and operations
+ */
+ void <xsl:value-of select="$method-prefix"/>_populate_services( axis2_stub_t *stub, const axis2_env_t *env);
+ /**
+ * <xsl:value-of select="$method-prefix"/>_get_endpoint_uri_from_wsdl
+ * return the endpoint URI picked from wsdl
+ */
+ axis2_char_t *<xsl:value-of select="$method-prefix"/>_get_endpoint_uri_from_wsdl ( const axis2_env_t *env );
+
+ <xsl:if test="$isSync='1'">
+ <xsl:for-each select="method">
+ /**
+ * auto generated function declaration
+ * for "<xsl:value-of select="@qname"/>" operation.
+ <!-- select only the body parameters -->
+ <xsl:for-each select="input/param[@type!='']">* @param <xsl:value-of select="@name"></xsl:value-of></xsl:for-each>
+ */
+
+ <xsl:variable name="outputours"><xsl:value-of select="output/param/@ours"></xsl:value-of></xsl:variable>
+ <xsl:variable name="outputtype">
+ <xsl:choose>
+ <xsl:when test="output/param/@ours">axis2_<xsl:value-of select="output/param/@type"></xsl:value-of>_t*</xsl:when>
+ <xsl:otherwise><xsl:value-of select="output/param/@type"></xsl:value-of></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="$outputtype=''">axis2_status_t</xsl:when>
+ <xsl:when test="$outputtype!=''"><xsl:value-of select="$outputtype"/></xsl:when>
+ </xsl:choose>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$method-prefix"/>_<xsl:value-of select="@name"/>( axis2_stub_t *stub, const axis2_env_t *env<xsl:for-each select="input/param[@type!='']">,
+ <xsl:variable name="inputtype">
+ <xsl:if test="@ours">axis2_</xsl:if><xsl:value-of select="@type"/><xsl:if test="@ours">_t*</xsl:if>
+ </xsl:variable>
+ <xsl:if test="position()>1">,</xsl:if><xsl:value-of select="$inputtype"/><xsl:text> </xsl:text><xsl:value-of select="@name"/>
+ </xsl:for-each>);
+ </xsl:for-each>
+ </xsl:if> <!--close for test="$isSync='1'-->
+
+ <!-- Async method prototype generation -->
+ <xsl:if test="$isAsync='1'">
+ <xsl:for-each select="method">
+ /**
+ * auto generated function declaration
+ * for "<xsl:value-of select="@qname"/>" operation.
+ <!-- select only the body parameters -->
+ <xsl:for-each select="input/param[@type!='']">* @param <xsl:value-of select="@name"></xsl:value-of></xsl:for-each>
+ * @param on_complete callback to handle on complete
+ * @param on_error callback to handle on error
+ */
+
+ <xsl:variable name="mep"><xsl:value-of select="@mep"/></xsl:variable>
+ <xsl:if test="$mep='12'">
+ void <xsl:value-of select="$method-prefix"/>_<xsl:value-of select="@name"/>_start( axis2_stub_t *stub, const axis2_env_t *env<xsl:for-each select="input/param[@type!='']">,
+ <xsl:variable name="inputtype">
+ <xsl:if test="@ours">axis2_</xsl:if><xsl:value-of select="@type"/><xsl:if test="@ours">_t*</xsl:if>
+ </xsl:variable>
+ <xsl:if test="position()>1">,</xsl:if><xsl:value-of select="$inputtype"/><xsl:text> </xsl:text><xsl:value-of select="@name"/>
+ </xsl:for-each>,
+ axis2_status_t ( AXIS2_CALL *on_complete ) (struct axis2_callback *, const axis2_env_t* ) ,
+ axis2_status_t ( AXIS2_CALL *on_error ) (struct axis2_callback *, const axis2_env_t*, int ) );
+
+ </xsl:if> <!--close for test="$mep='http://www.w3.org/2004/08/wsdl/in-out'"-->
+ </xsl:for-each>
+ </xsl:if> <!--close for test="$isAsync='1'-->
+ </xsl:template>
+</xsl:stylesheet>
Propchange: webservices/axis2/trunk/c/tools/codegen/src/templates/c/StubHeaderTemplate.xsl
------------------------------------------------------------------------------
svn:executable = *
Added: webservices/axis2/trunk/c/tools/codegen/src/templates/c/StubSourceTemplate.xsl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/codegen/src/templates/c/StubSourceTemplate.xsl?view=auto&rev=450430
==============================================================================
--- webservices/axis2/trunk/c/tools/codegen/src/templates/c/StubSourceTemplate.xsl (added)
+++ webservices/axis2/trunk/c/tools/codegen/src/templates/c/StubSourceTemplate.xsl Wed Sep 27 06:16:04 2006
@@ -0,0 +1,375 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <xsl:output method="text"/>
+
+ <xsl:template match="/class">
+ <xsl:variable name="interfaceName"><xsl:value-of select="@interfaceName"/></xsl:variable>
+ <xsl:variable name="package"><xsl:value-of select="@package"/></xsl:variable>
+ <xsl:variable name="isSync"><xsl:value-of select="@isSync"/></xsl:variable>
+ <xsl:variable name="isAsync"><xsl:value-of select="@isAsync"/></xsl:variable>
+ <xsl:variable name="soapVersion"><xsl:value-of select="@soap-version"/></xsl:variable>
+ <xsl:variable name="callbackname"><xsl:value-of select="@callbackname"/></xsl:variable>
+ <xsl:variable name="method-prefix"><xsl:value-of select="@prefix"/></xsl:variable>
+ <xsl:variable name="qname"><xsl:value-of select="@qname"/></xsl:variable>
+
+ /**
+ * <xsl:value-of select="@name"/>.c
+ *
+ * This file was auto-generated from WSDL for "<xsl:value-of select="$qname"/>" service
+ * by the Apache Axis2/C version: #axisVersion# #today#
+ */
+
+ #include "<xsl:value-of select="@name"/>.h"
+
+ /**
+ * <xsl:value-of select="@name"/> C implementation
+ */
+
+ axis2_stub_t*
+ <xsl:value-of select="$method-prefix"/>_create (const axis2_env_t *env,
+ axis2_char_t *client_home,
+ axis2_char_t *endpoint_uri)
+ {
+ axis2_stub_t *stub = NULL;
+ axis2_endpoint_ref_t *endpoint_ref = NULL;
+ AXIS2_FUNC_PARAM_CHECK ( client_home, env, NULL)
+
+ if (NULL == endpoint_uri )
+ {
+ endpoint_uri = <xsl:value-of select="$method-prefix"/>_get_endpoint_uri_from_wsdl( env );
+ }
+
+ endpoint_ref = axis2_endpoint_ref_create(env, endpoint_uri);
+
+ stub = axis2_stub_create_with_endpoint_ref_and_client_home ( env, endpoint_ref, client_home );
+ <xsl:value-of select="$method-prefix"/>_populate_services( stub, env );
+ return stub;
+ }
+
+
+ void <xsl:value-of select="$method-prefix"/>_populate_services( axis2_stub_t *stub, const axis2_env_t *env)
+ {
+ axis2_svc_client_t *svc_client = NULL;
+ axis2_qname_t *svc_qname = NULL;
+ axis2_qname_t *op_qname = NULL;
+ axis2_svc_t *svc = NULL;
+ axis2_op_t *op = NULL;
+
+ /* Modifying the Service */
+ svc_client = AXIS2_STUB_GET_SVC_CLIENT (stub, env );
+ svc = (axis2_svc_t*)AXIS2_SVC_CLIENT_GET_AXIS_SERVICE ( svc_client, env );
+ axis2_qname_create(env,"<xsl:value-of select="@servicename"/>" ,NULL, NULL);
+ AXIS2_SVC_SET_QNAME (svc, env, svc_qname);
+
+ /* creating the operations*/
+
+ <xsl:for-each select="method">
+
+ op_qname = axis2_qname_create(env,
+ "<xsl:value-of select="@localpart"/>" ,
+ "<xsl:value-of select="@namespace"/>",
+ NULL);
+ op = axis2_op_create_with_qname(env, op_qname);
+ <xsl:choose>
+ <xsl:when test="@mep='10'">
+ AXIS2_OP_SET_MSG_EXCHANGE_PATTERN(op, env, AXIS2_MEP_URI_IN_ONLY);
+ </xsl:when>
+ <xsl:otherwise>
+ AXIS2_OP_SET_MSG_EXCHANGE_PATTERN(op, env, AXIS2_MEP_URI_OUT_IN);
+ </xsl:otherwise>
+ </xsl:choose>
+ AXIS2_SVC_ADD_OP(svc, env, op);
+
+ </xsl:for-each>
+ }
+
+ /**
+ *return end point picked from wsdl
+ */
+ axis2_char_t*
+ <xsl:value-of select="$method-prefix"/>_get_endpoint_uri_from_wsdl ( const axis2_env_t *env )
+ {
+ axis2_char_t *endpoint_uri = NULL;
+ /* set the address from here */
+ <xsl:for-each select="endpoint">
+ <xsl:choose>
+ <xsl:when test="position()=1">
+ endpoint_uri = "<xsl:value-of select="."/>";
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+ return endpoint_uri;
+ }
+
+
+ <xsl:for-each select="method">
+ <xsl:variable name="outputours"><xsl:value-of select="output/param/@ours"></xsl:value-of></xsl:variable>
+ <xsl:variable name="outputtype">
+ <xsl:choose>
+ <xsl:when test="output/param/@ours">axis2_<xsl:value-of select="output/param/@type"></xsl:value-of>_t*</xsl:when>
+ <xsl:otherwise><xsl:value-of select="output/param/@type"></xsl:value-of></xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="caps-outputtype"><xsl:value-of select="output/param/@caps-type"></xsl:value-of></xsl:variable>
+ <xsl:variable name="style"><xsl:value-of select="@style"></xsl:value-of></xsl:variable>
+ <xsl:variable name="soapAction"><xsl:value-of select="@soapaction"></xsl:value-of></xsl:variable>
+ <xsl:variable name="mep"><xsl:value-of select="@mep"/></xsl:variable>
+
+ <xsl:variable name="method-name"><xsl:value-of select="@name"/></xsl:variable>
+ <xsl:variable name="method-ns"><xsl:value-of select="@namespace"/> </xsl:variable>
+
+ <!-- Code generation for the in-out mep -->
+ <xsl:if test="$mep='12'">
+ <xsl:if test="$isSync='1'">
+ /**
+ * auto generated method signature
+ * for "<xsl:value-of select="@qname"/>" operation.
+ <xsl:for-each select="input/param[@type!='']">* @param <xsl:value-of select="@name"></xsl:value-of></xsl:for-each>
+ * @return
+ */
+ <xsl:choose>
+ <xsl:when test="$outputtype=''">void</xsl:when> <!--this case is unexpected-->
+ <xsl:otherwise><xsl:value-of select="$outputtype"/></xsl:otherwise>
+ </xsl:choose>
+ <xsl:text> </xsl:text>
+ <xsl:value-of select="$method-prefix"/>_<xsl:value-of select="@name"/>( axis2_stub_t *stub, const axis2_env_t *env<xsl:for-each select="input/param[@type!='']">,
+ <xsl:variable name="inputtype">
+ <xsl:if test="@ours">axis2_</xsl:if><xsl:value-of select="@type"/><xsl:if test="@ours">_t*</xsl:if>
+ </xsl:variable>
+ <xsl:if test="position()>1">,</xsl:if><xsl:value-of select="$inputtype"/><xsl:text> </xsl:text><xsl:value-of select="@name"/>
+ </xsl:for-each>)
+ {
+ axis2_svc_client_t *svc_client = NULL;
+ axis2_options_t *options = NULL;
+ axiom_node_t *ret_node = NULL;
+
+ const axis2_char_t *soap_action = NULL;
+ axis2_qname_t *op_qname = NULL;
+ axiom_node_t *payload = NULL;
+ <xsl:if test="output/param/@ours">
+ <!-- this means data binding is enable -->
+ <xsl:value-of select="$outputtype"/> ret_val = NULL;
+ </xsl:if>
+
+
+ <!-- for service client currently suppported only 1 input param -->
+ <xsl:for-each select="input/param[@type!='']">
+ <xsl:if test="position()=1">
+ <xsl:choose>
+ <xsl:when test="@ours">
+ payload = AXIS2_<xsl:value-of select="@caps-type"/>_PARSE_OM(<xsl:value-of select="@name"/>, env, NULL);
+ </xsl:when>
+ <xsl:otherwise>
+ payload = <xsl:value-of select="@name"/>;
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:for-each>
+
+
+ options = AXIS2_STUB_GET_OPTIONS( stub, env);
+ if ( NULL == options )
+ {
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "options is null in stub: Error code:"
+ " %d :: %s", env->error->error_number,
+ AXIS2_ERROR_GET_MESSAGE(env->error));
+ return NULL;
+ }
+ svc_client = AXIS2_STUB_GET_SVC_CLIENT (stub, env );
+ soap_action = AXIS2_OPTIONS_GET_ACTION ( options, env );
+ if ( NULL == soap_action )
+ {
+ soap_action = "<xsl:value-of select="$soapAction"/>";
+ AXIS2_OPTIONS_SET_ACTION( options, env, soap_action );
+ }
+ <xsl:if test="$soapVersion='1.2'">
+ AXIS2_OPTIONS_SET_SOAP_VERSION(options, env, AXIOM_SOAP12 );
+ </xsl:if>
+ <xsl:if test="$soapVersion!='1.1'">
+ AXIS2_OPTIONS_SET_SOAP_VERSION(options, env, AXIOM_SOAP11 );
+ </xsl:if>
+ op_qname = axis2_qname_create(env,
+ "<xsl:value-of select="@localpart"/>" ,
+ "<xsl:value-of select="@namespace"/>",
+ NULL);
+ ret_node = AXIS2_SVC_CLIENT_SEND_RECEIVE_WITH_OP_QNAME( svc_client, env, op_qname, payload);
+
+
+ <xsl:choose>
+ <xsl:when test="$outputtype=''">
+ return;
+ </xsl:when>
+ <xsl:when test="output/param/@ours">
+ if ( NULL == ret_node )
+ {
+ return NULL;
+ }
+ ret_val = axis2_<xsl:value-of select="output/param/@type"/>_create(env);
+
+ AXIS2_<xsl:value-of select="$caps-outputtype"/>_BUILD_OM(ret_val, env, ret_node );
+ return ret_val;
+ </xsl:when>
+ <xsl:otherwise>
+ return ret_node;
+ </xsl:otherwise>
+ </xsl:choose>
+ }
+ </xsl:if> <!--close for test="$isSync='1'-->
+ <!-- Async method generation -->
+ <xsl:if test="$isAsync='1'">
+ /**
+ * auto generated method signature for asynchronous invocations
+ * for "<xsl:value-of select="@qname"/>" operation.
+ <!-- select only the body parameters -->
+ <xsl:for-each select="input/param[@type!='']">* @param <xsl:value-of select="@name"></xsl:value-of></xsl:for-each>
+ * @param on_complete callback to handle on complete
+ * @param on_error callback to handle on error
+ */
+ <xsl:variable name="callbackoncomplete"><xsl:value-of select="$callbackname"></xsl:value-of><xsl:text>_on_complete</xsl:text></xsl:variable>
+ <xsl:variable name="callbackonerror"><xsl:value-of select="$callbackname"></xsl:value-of><xsl:text>_on_error</xsl:text></xsl:variable>
+ void <xsl:value-of select="$method-prefix"/>_<xsl:value-of select="@name"/>_start( axis2_stub_t *stub, const axis2_env_t *env<xsl:for-each select="input/param[@type!='']">,
+ <xsl:variable name="inputtype">
+ <xsl:if test="@ours">axis2_</xsl:if><xsl:value-of select="@type"/><xsl:if test="@ours">_t*</xsl:if>
+ </xsl:variable>
+ <xsl:if test="position()>1">,</xsl:if><xsl:value-of select="$inputtype"/><xsl:text> </xsl:text><xsl:value-of select="@name"/>
+ </xsl:for-each>,
+ axis2_status_t ( AXIS2_CALL *on_complete ) (struct axis2_callback *, const axis2_env_t *) ,
+ axis2_status_t ( AXIS2_CALL *on_error ) (struct axis2_callback *, const axis2_env_t *, int ) )
+ {
+
+ axis2_callback_t *callback = NULL;
+
+ axis2_svc_client_t *svc_client = NULL;
+ axis2_options_t *options = NULL;
+
+ const axis2_char_t *soap_action = NULL;
+ axiom_node_t *payload = NULL;
+
+ <!-- for service client currently suppported only 1 input param -->
+ <xsl:for-each select="input/param[@type!='']">
+ <xsl:if test="position()=1">
+ <xsl:choose>
+ <xsl:when test="@ours">
+ payload = AXIS2_<xsl:value-of select="@caps-type"/>_PARSE_OM(<xsl:value-of select="@name"/>, env, NULL);
+ </xsl:when>
+ <xsl:otherwise>
+ payload = <xsl:value-of select="@name"/>;
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:for-each>
+
+
+ options = AXIS2_STUB_GET_OPTIONS( stub, env);
+ if ( NULL == options )
+ {
+ AXIS2_LOG_ERROR( env->log, AXIS2_LOG_SI, "options is null in stub: Error code:"
+ " %d :: %s", env->error->error_number,
+ AXIS2_ERROR_GET_MESSAGE(env->error));
+ return;
+ }
+ svc_client = AXIS2_STUB_GET_SVC_CLIENT (stub, env );
+ soap_action = AXIS2_OPTIONS_GET_ACTION ( options, env );
+ if ( NULL == soap_action )
+ {
+ soap_action = "<xsl:value-of select="$soapAction"/>";
+ AXIS2_OPTIONS_SET_ACTION( options, env, soap_action );
+ }
+ <xsl:choose>
+ <xsl:when test="$soapVersion='1.2'">
+ AXIS2_OPTIONS_SET_SOAP_VERSION(options, env, AXIOM_SOAP12 );
+ </xsl:when>
+ <xsl:otherwise>
+ AXIS2_OPTIONS_SET_SOAP_VERSION(options, env, AXIOM_SOAP11 );
+ </xsl:otherwise>
+ </xsl:choose>
+
+ callback = axis2_callback_create(env);
+ /* Set our on_complete fucntion pointer to the callback object */
+ AXIS2_CALLBACK_SET_ON_COMPLETE(callback, on_complete);
+ /* Set our on_error function pointer to the callback object */
+ AXIS2_CALLBACK_SET_ON_ERROR(callback, on_error);
+
+ /* Send request */
+ AXIS2_SVC_CLIENT_SEND_RECEIVE_NON_BLOCKING(svc_client, env, payload, callback);
+ }
+
+ </xsl:if> <!--close for test="$isASync='1'-->
+ <!-- End of in-out mep -->
+ </xsl:if> <!-- close for test="$mep='http://www.w3.org/2004/08/wsdl/in-out' -->
+
+ <xsl:if test="$mep='10'">
+ /**
+ * auto generated method signature for in only mep invocations
+ * for "<xsl:value-of select="@qname"/>" operation.
+ <!-- select only the body parameters -->
+ <xsl:for-each select="input/param[@type!='']">* @param <xsl:value-of select="@name"></xsl:value-of></xsl:for-each>
+ * @param on_complete callback to handle on complete
+ * @param on_error callback to handle on error
+ */
+ axis2_status_t
+ <xsl:value-of select="$method-prefix"/>_<xsl:value-of select="@name"/>( axis2_stub_t *stub, const axis2_env_t *env <xsl:for-each select="input/param[@type!='']"> ,
+ <xsl:variable name="inputtype">
+ <xsl:if test="@ours">axis2_</xsl:if><xsl:value-of select="@type"/><xsl:if test="@ours">_t*</xsl:if>
+ </xsl:variable>
+ <xsl:if test="position()>1">,</xsl:if><xsl:value-of select="$inputtype"/><xsl:text> </xsl:text><xsl:value-of select="@name"/>
+ </xsl:for-each>)
+ {
+ axis2_status_t status;
+
+ axis2_svc_client_t *svc_client = NULL;
+ axis2_options_t *options = NULL;
+
+ const axis2_char_t *soap_action = NULL;
+ axis2_qname_t *op_qname = NULL;
+ axiom_node_t *payload = NULL;
+
+ <!-- for service client currently suppported only 1 input param -->
+ <xsl:for-each select="input/param[@type!='']">
+ <xsl:if test="position()=1">
+ <xsl:choose>
+ <xsl:when test="@ours">
+ payload = AXIS2_<xsl:value-of select="@caps-type"/>_PARSE_OM(<xsl:value-of select="@name"/>, env, NULL);
+ </xsl:when>
+ <xsl:otherwise>
+ payload = <xsl:value-of select="@name"/>;
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:for-each>
+
+
+ options = AXIS2_STUB_GET_OPTIONS( stub, env);
+ if ( NULL == options )
+ {
+ AXIS2_LOG_ERROR(env->log, AXIS2_LOG_SI, "options is null in stub: Error code:"
+ " %d :: %s", env->error->error_number,
+ AXIS2_ERROR_GET_MESSAGE(env->error));
+ return AXIS2_FAILURE;
+ }
+ svc_client = AXIS2_STUB_GET_SVC_CLIENT (stub, env );
+ soap_action = AXIS2_OPTIONS_GET_ACTION ( options, env );
+ if ( NULL == soap_action )
+ {
+ soap_action = "<xsl:value-of select="$soapAction"/>";
+ AXIS2_OPTIONS_SET_ACTION( options, env, soap_action );
+ }
+ <xsl:choose>
+ <xsl:when test="$soapVersion='1.2'">
+ AXIS2_OPTIONS_SET_SOAP_VERSION(options, env, AXIOM_SOAP12 );
+ </xsl:when>
+ <xsl:otherwise>
+ AXIS2_OPTIONS_SET_SOAP_VERSION(options, env, AXIOM_SOAP11 );
+ </xsl:otherwise>
+ </xsl:choose>
+ op_qname = axis2_qname_create(env,
+ "<xsl:value-of select="@localpart"/>" ,
+ "<xsl:value-of select="@namespace"/>",
+ NULL);
+ status = AXIS2_SVC_CLIENT_SEND_ROBUST_WITH_OP_QNAME( svc_client, env, op_qname, payload);
+ return status;
+
+ }
+ </xsl:if> <!-- close for test="$mep='http://www.w3.org/2004/08/wsdl/in-only' -->
+ </xsl:for-each> <!-- close of for-each select = "method" -->
+ </xsl:template>
+</xsl:stylesheet>
Propchange: webservices/axis2/trunk/c/tools/codegen/src/templates/c/StubSourceTemplate.xsl
------------------------------------------------------------------------------
svn:executable = *
Added: webservices/axis2/trunk/c/tools/codegen/src/typemappers/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/codegen/src/typemappers/Makefile.am?view=auto&rev=450430
==============================================================================
--- webservices/axis2/trunk/c/tools/codegen/src/typemappers/Makefile.am (added)
+++ webservices/axis2/trunk/c/tools/codegen/src/typemappers/Makefile.am Wed Sep 27 06:16:04 2006
@@ -0,0 +1,2 @@
+samplesdir=$(prefix)/conf/typemappers
+samples_DATA= c.adb.typemap.xml c.default.typemap.xml
Added: webservices/axis2/trunk/c/tools/codegen/src/typemappers/c.adb.typemap.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/codegen/src/typemappers/c.adb.typemap.xml?view=auto&rev=450430
==============================================================================
--- webservices/axis2/trunk/c/tools/codegen/src/typemappers/c.adb.typemap.xml (added)
+++ webservices/axis2/trunk/c/tools/codegen/src/typemappers/c.adb.typemap.xml Wed Sep 27 06:16:04 2006
@@ -0,0 +1,199 @@
+<mappings dbf="c-adb">
+ <mapping default="yes">
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">content</qname>
+ <value>axiom_node_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">string</qname>
+ <value>axis2_char_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">boolean</qname>
+ <value>axis2_bool_t</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">double</qname>
+ <value>double</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">float</qname>
+ <value>float</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">int</qname>
+ <value>int</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">integer</qname>
+ <value>int</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">long</qname>
+ <value>long</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">short</qname>
+ <value>short</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">byte</qname>
+ <value>char</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">decimal</qname>
+ <value>int</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">base64Binary</qname>
+ <value>axis2_base64_binary_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">hexBinary</qname>
+ <value>void*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">anySimpleType</qname>
+ <value>axiom_node_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">anyType</qname>
+ <value>axiom_node_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">any</qname>
+ <value>axiom_node_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">QName</qname>
+ <value>axis2_qname_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">dateTime</qname>
+ <value>axis2_date_time_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">date</qname>
+ <value>axis2_date_time_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">time</qname>
+ <value>axis2_date_time_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">unsignedLong</qname>
+ <value>unsigned long</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">unsignedInt</qname>
+ <value>unsigned int</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">unsignedShort</qname>
+ <value>unsigned short</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">unsignedByte</qname>
+ <value>unsigned char</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">positiveInteger</qname>
+ <value>unsigned int</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">negativeInteger</qname>
+ <value>int</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">nonNegativeInteger</qname>
+ <value>int</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">nonPositiveInteger</qname>
+ <value>int</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">gYearMonth</qname>
+ <value>axiom_node_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">gMonthDay</qname>
+ <value>axiom_node_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">gYear</qname>
+ <value>axiom_node_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">gMonth</qname>
+ <value>axiom_node_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">gDay</qname>
+ <value>axiom_node_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">duration</qname>
+ <value>axiom_node_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">Name</qname>
+ <value>axiom_node_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">NCName</qname>
+ <value>axiom_node_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">NMTOKEN</qname>
+ <value>axiom_node_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">NMTOKENS</qname>
+ <value>axiom_node_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">NOTATION</qname>
+ <value>axiom_node_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">ENTITY</qname>
+ <value>axiom_node_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">ENTITIES</qname>
+ <value>axiom_node_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">IDREF</qname>
+ <value>axiom_node_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">IDREFS</qname>
+ <value>axiom_node_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">anyURI</qname>
+ <value>axis2_uri_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">language</qname>
+ <value>axis2_char_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">ID</qname>
+ <value>axiom_node_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">schema</qname>
+ <value>axiom_node_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">normalizedString</qname>
+ <value>axis2_char_t*</value>
+ </mapping>
+ <mapping>
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">token</qname>
+ <value>axis2_char_t*</value>
+ </mapping>
+</mappings>
+
Added: webservices/axis2/trunk/c/tools/codegen/src/typemappers/c.default.typemap.xml
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/tools/codegen/src/typemappers/c.default.typemap.xml?view=auto&rev=450430
==============================================================================
--- webservices/axis2/trunk/c/tools/codegen/src/typemappers/c.default.typemap.xml (added)
+++ webservices/axis2/trunk/c/tools/codegen/src/typemappers/c.default.typemap.xml Wed Sep 27 06:16:04 2006
@@ -0,0 +1,7 @@
+<mappings dbf="c-default">
+ <mapping default="yes">
+ <qname namespace="http://www.w3.org/2001/XMLSchema" prefix="">content</qname>
+ <value>axiom_node_t*</value>
+ </mapping>
+</mappings>
+
---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org