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 da...@apache.org on 2006/04/03 06:41:56 UTC

svn commit: r390952 [1/2] - in /webservices/axis2/trunk/c: ./ include/ modules/core/clientapi/diclient/ modules/wsdl/ modules/wsdl/builder/ samples/client/ samples/client/diclient/

Author: damitha
Date: Sun Apr  2 21:41:53 2006
New Revision: 390952

URL: http://svn.apache.org/viewcvs?rev=390952&view=rev
Log:
Dynamic Invocation client is now working fine. Added api documentation
as well

Modified:
    webservices/axis2/trunk/c/build.sh
    webservices/axis2/trunk/c/include/axis2_di_client.h
    webservices/axis2/trunk/c/include/axis2_wsdl4c_binding.h
    webservices/axis2/trunk/c/include/axis2_wsdl4c_constraint.h
    webservices/axis2/trunk/c/include/axis2_wsdl4c_element.h
    webservices/axis2/trunk/c/include/axis2_wsdl4c_message.h
    webservices/axis2/trunk/c/include/axis2_wsdl4c_operation.h
    webservices/axis2/trunk/c/include/axis2_wsdl4c_parser.h
    webservices/axis2/trunk/c/include/axis2_wsdl4c_part.h
    webservices/axis2/trunk/c/include/axis2_wsdl4c_port_type.h
    webservices/axis2/trunk/c/include/axis2_wsdl4c_qname.h
    webservices/axis2/trunk/c/include/axis2_wsdl4c_service.h
    webservices/axis2/trunk/c/include/axis2_wsdl4c_soap.h
    webservices/axis2/trunk/c/include/axis2_wsdl_msg_ref.h
    webservices/axis2/trunk/c/modules/core/clientapi/diclient/di_client.c
    webservices/axis2/trunk/c/modules/wsdl/builder/wsdl_pump.c
    webservices/axis2/trunk/c/modules/wsdl/wsdl_binding.c
    webservices/axis2/trunk/c/modules/wsdl/wsdl_interface.c
    webservices/axis2/trunk/c/modules/wsdl/wsdl_op.c
    webservices/axis2/trunk/c/samples/client/Makefile.am
    webservices/axis2/trunk/c/samples/client/diclient/Makefile.am
    webservices/axis2/trunk/c/samples/client/diclient/README
    webservices/axis2/trunk/c/samples/client/diclient/echo_client.c
    webservices/axis2/trunk/c/samples/client/diclient/wsaTestService.wsdl

Modified: webservices/axis2/trunk/c/build.sh
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/build.sh?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/build.sh (original)
+++ webservices/axis2/trunk/c/build.sh Sun Apr  2 21:41:53 2006
@@ -2,7 +2,7 @@
 ./autogen.sh
 AXIS2C_HOME=`pwd`/deploy
 export AXIS2C_HOME
-./configure --prefix=${AXIS2C_HOME} --enable-tests=yes --enable-trace=yes  --with-apache2=/usr/include/apache2 --with-apr=/usr/include/apr-0 --enable-diclient=yes
+./configure --prefix=${AXIS2C_HOME} --enable-tests=yes --enable-trace=yes  --with-apache2=/usr/include/apache2 --with-apr=/usr/include/apr-0 --enable-diclient=no
 make
 make install
 cd samples

Modified: webservices/axis2/trunk/c/include/axis2_di_client.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_di_client.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_di_client.h (original)
+++ webservices/axis2/trunk/c/include/axis2_di_client.h Sun Apr  2 21:41:53 2006
@@ -14,12 +14,12 @@
  * limitations under the License.
  */
 
-#ifndef AXIS2_DI_CLIENT_H
-#define AXIS2_DI_CLIENT_H
+#ifndef AXIS2_DICLIENT_H
+#define AXIS2_DICLIENT_H
 
 
 /**
-  * @file axis2_di_client.h
+  * @file axis2_diclient.h
   * @brief axis2 Dynamic Invocation Client interface
   */
 
@@ -32,59 +32,162 @@
 {
 #endif
 
-/** @defgroup axis2_di_client Dynamic Invocation Client 
+/** @defgroup axis2_diclient Dynamic Invocation Client 
  * @ingroup axis2_core_clientapi
  * @{
  */
     
-typedef struct axis2_di_client_ops axis2_di_client_ops_t;
-typedef struct axis2_di_client axis2_di_client_t; 
+typedef struct axis2_diclient_ops axis2_diclient_ops_t;
+typedef struct axis2_diclient axis2_diclient_t; 
 
 struct axis2_om_node;
-    
+struct axis2_op;
+
 /** 
  * @brief Dynamic Invocation Client ops struct
- * Encapsulator struct for ops of axis2_di_client
+ * Encapsulator struct for ops of axis2_diclient
  */  
-struct axis2_di_client_ops
+struct axis2_diclient_ops
 {
     axis2_status_t (AXIS2_CALL *
-	free)(struct axis2_di_client *di_client, 
+	free)(struct axis2_diclient *diclient, 
           axis2_env_t **env);
 
+    /**
+     * Invoke the operation by passing om node and axis2 operation as 
+     * parameters
+     * @param om node
+     * @param axis2 operation
+     * @return status code
+     */
     axis2_status_t (AXIS2_CALL *
-    invoke) (axis2_di_client_t *di_client,
+    invoke) (axis2_diclient_t *diclient,
              axis2_env_t **env,
-             axis2_om_node_t *node);
-    
+             axis2_om_node_t *node,
+             struct axis2_op *op);
+   
+    /**
+     * Do the initialization work. Here wsdl parser is created and
+     * Pumping of wsdl object model from Wsdl Pull Parser into the
+     * Axis2 Wsdl Object modle is initiated. Also operation map and
+     * endpoint map is populated
+     * @param wsdl file name
+     * @return status code
+     */
     axis2_status_t (AXIS2_CALL *
-    init) (axis2_di_client_t *di_client,
+    init) (axis2_diclient_t *diclient,
            axis2_env_t **env,
 		   axis2_char_t *wsdl_file_name);
+
+    /**
+     * By passing the operation qualified name and the endpoint qualified
+     * name operations action and address is set
+     * @param operation qualified name
+     * @param endpoint qualified name
+     * @return status code
+     */
+    axis2_status_t *(AXIS2_CALL *
+    set_address_and_action_for_op) (axis2_diclient_t *diclient,
+                                    axis2_env_t **env,
+                                    axis2_qname_t *op_qname,
+                                    axis2_qname_t *endpoint_qname);
+
+
+    /**
+     * Return all the endpoints associated with the wsdl
+     * @return table of endpoints associated with the wsdl
+     */
+    axis2_hash_t *(AXIS2_CALL *
+    get_endpoints) (axis2_diclient_t *diclient,
+                  axis2_env_t **env);
+
+    /**
+     * Return the all operations associated with the wsdl
+     * @return table of operations associated with the wsdl
+     */
+    axis2_hash_t *(AXIS2_CALL *
+    get_operations) (axis2_diclient_t *diclient,
+            axis2_env_t **env);
+   
+    /**
+     * Return the operation parameter's localname. This method
+     * can be used in document style operations where operation has
+     * only one parameter
+     * @param operation qualified name
+     * @return parameter's localname
+     */
+    axis2_char_t *(AXIS2_CALL *
+    get_param_localname) (axis2_diclient_t *diclient,
+                            axis2_env_t **env,
+                            axis2_qname_t *op_qname);
+
+    /**
+     * Return the operation parameter's namespace. This method
+     * can be used in document style operations where operation has
+     * only one parameter
+     * @param operation qualified name
+     * @return parameter's namespace
+     */
+    axis2_char_t *(AXIS2_CALL *
+    get_param_namespace) (axis2_diclient_t *diclient,
+                            axis2_env_t **env,
+                            axis2_qname_t *op_qname);
+
+    /**
+     * Return the set of parameters associated with the operation.
+     * This can be used in rpc style operations where operation has
+     * multiple parameters.
+     * @param operation qualified name
+     * @return set of parameters assoicated with the operation
+     */
+    axis2_hash_t *(AXIS2_CALL *
+    get_params) (axis2_diclient_t *diclient,
+                            axis2_env_t **env,
+                            axis2_qname_t *op_qname);
 };
 
 /** 
  * @brief Dynamic Invocation Client struct
   *	Axis2 Dynamic Invocation Client
  */
-struct axis2_di_client
+struct axis2_diclient
 {
-    axis2_di_client_ops_t *ops;    
+    axis2_diclient_ops_t *ops;    
 };
 
-AXIS2_DECLARE(axis2_di_client_t*) 
-axis2_di_client_create(axis2_env_t **env);
+AXIS2_DECLARE(axis2_diclient_t*) 
+axis2_diclient_create(axis2_env_t **env);
 
 /************************** Start of function macros **************************/
 
-#define AXIS2_DI_CLIENT_FREE(di_client, env) \
-		((di_client)->ops->free (di_client, env))
+#define AXIS2_DICLIENT_FREE(diclient, env) \
+		((diclient)->ops->free (diclient, env))
 		
-#define AXIS2_DI_CLIENT_INVOKE(di_client, env, node) \
-		((di_client)->ops->invoke (di_client, env, node))
+#define AXIS2_DICLIENT_INVOKE(diclient, env, node, op) \
+		((diclient)->ops->invoke (diclient, env, node, op))
+
+#define AXIS2_DICLIENT_INIT(diclient, env, wsdl_file_name) \
+		((diclient)->ops->init (diclient, env, wsdl_file_name))
+
+#define AXIS2_DICLIENT_SET_ADDRESS_AND_ACTION_FOR_OP(diclient, env, op_qname, \
+                endpoint_qname) \
+		((diclient)->ops->set_address_and_action_for_op (diclient, env, \
+                op_qname, endpoint_qname))
+
+#define AXIS2_DICLIENT_GET_ENDPOINTS(diclient, env) \
+		((diclient)->ops->get_endpoints (diclient, env))
+
+#define AXIS2_DICLIENT_GET_OPERATIONS(diclient, env) \
+		((diclient)->ops->get_operations (diclient, env))
+
+#define AXIS2_DICLIENT_GET_PARAM_LOCALNAME(diclient, env, op_qname) \
+		((diclient)->ops->get_param_localname (diclient, env, op_qname))
+
+#define AXIS2_DICLIENT_GET_PARAM_NAMESPACE(diclient, env, op_qname) \
+		((diclient)->ops->get_param_namespace (diclient, env, op_qname))
 
-#define AXIS2_DI_CLIENT_INIT(di_client, env, wsdl_file_name) \
-		((di_client)->ops->init (di_client, env, wsdl_file_name))
+#define AXIS2_DICLIENT_GET_PARAMS(diclient, env, op_qname) \
+		((diclient)->ops->get_params (diclient, env, op_qname))
 
 /************************** End of function macros ****************************/    
 
@@ -93,5 +196,5 @@
 }
 #endif
 
-#endif                          /* AXIS2_DI_CLIENT_H */
+#endif                          /* AXIS2_DICLIENT_H */
 

Modified: webservices/axis2/trunk/c/include/axis2_wsdl4c_binding.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl4c_binding.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl4c_binding.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl4c_binding.h Sun Apr  2 21:41:53 2006
@@ -31,8 +31,8 @@
 #endif
 
 /**
- * @defgroup axis2 wsdl4c_binding constants
- * @ingroup axis2_wsdl4c_binding 
+ * @defgroup axis2 wsdl4c_binding
+ * @ingroup axis2_wsdl4c 
  * @{
  */
     void *
@@ -42,58 +42,59 @@
     axis2_wsdl4c_binding_destroy(void *binding);
 
     /**
-    * axis2_wsdl4c_binding_get_binding_info
-    * @return the extensibility element id of the  main binding extension element.
-    *  In case of soap it would  be the id of the soap:binding element
-    */
+     * axis2_wsdl4c_binding_get_binding_info
+     * @return the extensibility element id of the  main binding extension 
+     * element. In case of soap it would  be the id of the soap:binding element
+     */
     int
     axis2_wsdl4c_binding_get_binding_info(void *binding);
 
     /**
-    * axis2_wsdl4c_binding_get_port_type
-    * @return the wsdl port type associated with this binding
-    */
-    const void *
+     * axis2_wsdl4c_binding_get_port_type
+     * @return the wsdl port type associated with this binding
+     */
+    void *
     axis2_wsdl4c_binding_get_port_type(void *binding);
 
     /**
-    * axis2_wsdl4c_binding_get_service_ext_id
-    * @return the id of the service element assocaited with this binding
-    */
+     * axis2_wsdl4c_binding_get_service_ext_id
+     * @return the id of the service element assocaited with this binding
+     */
     int
     axis2_wsdl4c_binding_get_service_ext_id(void *binding);
 
     /**
-    * axis2_wsdl4c_binding_num_ops
-    * @return number of operations in this binding
-    */
+     * axis2_wsdl4c_binding_num_ops
+     * @return number of operations in this binding
+     */
     int
     axis2_wsdl4c_binding_num_ops(void *binding);
 
     /**
-    * axis2_wsdl4c_binding_get_operation
-    * @param the index of the operation (index ranges from 0 to Ops_.size()-1)
-    * @return pointer to the  operation
-    */
-    const void *
+     * axis2_wsdl4c_binding_get_operation
+     * @param the index of the operation (index ranges from 0 to number of 
+     * operations)
+     * @return pointer to the  operation
+     */
+    void *
     axis2_wsdl4c_binding_get_operation(void *binding, 
                                         int index);
 
     /**
-    * axis2_wsdl4c_binding_get_binding_method
-    * @param void
-    * @return The namespace of the binding protocol 
-    *         example "http://schemas.xmlsoap.org/wsdl/soap/"
-    */
-    const char *
+     * axis2_wsdl4c_binding_get_binding_method
+     * @param void
+     * @return The namespace of the binding protocol 
+     *         example "http://schemas.xmlsoap.org/wsdl/soap/"
+     */
+    char *
     axis2_wsdl4c_binding_get_binding_method(void *binding);
 
     /**
-    * axis2_wsdl4c_binding_get_op_binding
-    * @return The number of binding extensibility elements assocated with each
-    *  message of the operation whose index is given
-    *  returns a pointer to a list of extensibility binding ids
-    */
+     * axis2_wsdl4c_binding_get_op_binding
+     * @return The number of binding extensibility elements assocated with each
+     *  message of the operation whose index is given
+     *  returns a pointer to a list of extensibility binding ids
+     */
     int
     axis2_wsdl4c_binding_get_op_binding(void *binding, 
                                         int index, 
@@ -131,9 +132,9 @@
                                             int id);
 
     /**
-    * Add an operation to the binding .The index returned is to be used
-    * to add more bindings to the operation
-    */
+     * Add an operation to the binding .The index returned is to be used
+     * to add more bindings to the operation
+     */
     int
     axis2_wsdl4c_binding_add_operation(void *binding, 
                                         void *operation);
@@ -142,7 +143,7 @@
     axis2_wsdl4c_binding_add_op_binding(void *binding, 
                                         int index, 
                                         int oBn);
-     void
+    void
     axis2_wsdl4c_binding_add_output_binding(void *binding, 
                                         int index, 
                                         int opBn);
@@ -158,27 +159,26 @@
                                     int fBn); 
     
     /**
-    * get_name
-    * @return name of the Wsdl Element
-    */
+     * get_name
+     * @return name of the Wsdl Element
+     */
     char *
     axis2_wsdl4c_binding_get_name(void *binding);
 
     /**
-    * get_documentation
-    *   
-    */
+     * get_documentation
+     *   
+     */
     char *
     axis2_wsdl4c_binding_get_documentation(void *binding);  
 
     /**
-    *@name get_extensibility_elements/get_extensibility_attributes
-    *@brief return the extensibility elements/attributes belonging 
-    *       to a given namespace
-    *@params namspace uri
-    *@params reference to a vector<int>
-    *@return true if any extensibility elements were found
-    */
+     *@name get_extensibility_elements/get_extensibility_attributes
+     *@brief return the extensibility elements/attributes belonging 
+     *       to a given namespace
+     *@params namspace uri
+     *@return true if any extensibility elements were found
+     */
     int *
     axis2_wsdl4c_binding_get_extensibility_elements(void *binding,
                                                     char *namespc);

Modified: webservices/axis2/trunk/c/include/axis2_wsdl4c_constraint.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl4c_constraint.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl4c_constraint.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl4c_constraint.h Sun Apr  2 21:41:53 2006
@@ -19,7 +19,7 @@
  
  /**
  * @file axis2_wsdl4c_constraint.h
- * @brief defines WSDL4C_CONSTRAINT constants
+ * @brief defines WSDL4C_CONSTRAINT
  */
 #include <axis2_array_list.h>
 #include <axis2_allocator.h>
@@ -31,15 +31,15 @@
 #endif
 
 /**
- * @defgroup axis2 wsdl4c_constraint constants
- * @ingroup axis2_wsdl4c_constraint 
+ * @defgroup axis2 wsdl4c_constraint
+ * @ingroup axis2_wsdl4c
  * @{
  */
     enum axis2_wsdl4c_constraints
     {
-        Key,
-        Keyref,
-        Unique
+        AXIS2_WSDL4C_KEY,
+        AXIS2_WSLD4C_KEYREF,
+        AXIS2_WSDL4C_UNIQUE
     };
 	
     typedef enum axis2_wsdl4c_constraints axis2_wsdl4c_constraints_t;
@@ -47,16 +47,17 @@
     void *
     axis2_wsdl4c_constraint_create(axis2_wsdl4c_constraints_t constraints);
 
-    const char *
+    char *
     axis2_wsdl4c_constraint_get_name(void *constraint);
 
     void
     axis2_wsdl4c_constraint_set_name(void *constraint, 
                                         char *name);
 
-    /*axis2_wsdl4c_constraints_t *
-    axis2_wsdl4c_constraint_get_constraint_type(void *constraint);
-    */
+    /** A
+     * xis2_wsdl4c_constraints_t *
+     * axis2_wsdl4c_constraint_get_constraint_type(void *constraint);
+     */
 
     void
     axis2_wsdl4c_constraint_set_selector(void *constraint, 
@@ -66,7 +67,7 @@
     axis2_wsdl4c_constraint_add_field(void *constraint, 
                                         char *xpath);
 
-    const char *
+    char *
     axis2_wsdl4c_constraint_selector(void *constraint); 
 
 

Modified: webservices/axis2/trunk/c/include/axis2_wsdl4c_element.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl4c_element.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl4c_element.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl4c_element.h Sun Apr  2 21:41:53 2006
@@ -19,7 +19,7 @@
  
  /**
  * @file axis2_wsdl4c_element.h
- * @brief defines WSDL4C_ELEMENT constants
+ * @brief defines WSDL4C_ELEMENT
  */
 #include <axis2_array_list.h>
 #include <axis2_allocator.h>
@@ -31,8 +31,8 @@
 #endif
 
 /**
- * @defgroup axis2 wsdl4c_element constants
- * @ingroup axis2_wsdl4c_element 
+ * @defgroup axis2 wsdl4c_element
+ * @ingroup axis2_wsdl4c 
  * @{
  */
     void *

Modified: webservices/axis2/trunk/c/include/axis2_wsdl4c_message.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl4c_message.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl4c_message.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl4c_message.h Sun Apr  2 21:41:53 2006
@@ -19,7 +19,7 @@
  
  /**
  * @file axis2_wsdl4c_message.h
- * @brief defines WSDL4C_MESSAGE constants
+ * @brief defines WSDL4C_MESSAGE
  */
 #include <axis2_array_list.h>
 #include <axis2_allocator.h>
@@ -33,8 +33,8 @@
 #endif
 
 /**
- * @defgroup axis2 wsdl4c_message constants
- * @ingroup axis2_wsdl4c_message 
+ * @defgroup axis2 wsdl4c_message
+ * @ingroup axis2_wsdl4c
  * @{
  */
     void *
@@ -46,29 +46,30 @@
  
 
     /**
-    * @name axis2_wsdl4c_msg_get_num_parts
-    * @return number of parts in the message
-    */
+     * @name axis2_wsdl4c_msg_get_num_parts
+     * @return number of parts in the message
+     */
     int
     axis2_wsdl4c_msg_get_num_parts(void *message); 
 
 
     /**
-    * @name axis2_wsdl4c_msg_get_part_index
-    * @param the name of the part
-    * @return index of the of the part whose name is passed
-    *         index:0..nParts-1
-    */
+     * @name axis2_wsdl4c_msg_get_part_index
+     * @param the name of the part
+     * @return index of the of the part whose name is passed
+     *         index:0..number of parts
+     */
     int
     axis2_wsdl4c_msg_get_part_index(void *message, 
                                     char *name);
 
-    /* @name axis2_wsdl4c_msg_get_part_type
-    * @param the index  of the part       index:0..nParts-1
-    * @return type id  of the part
-    *         for ex if we have <part name="one" type="xsd:int">
-    *         the id returned represents xsd:int,the schema type for integers
-    */
+    /** 
+     * @name axis2_wsdl4c_msg_get_part_type
+     * @param the index  of the part       index:0..number of parts
+     * @return type id  of the part
+     *         for ex if we have <part name="one" type="xsd:int">
+     *         the id returned represents xsd:int,the schema type for integers
+     */
     int
     axis2_wsdl4c_msg_get_part_type_a_index(void *message, 
                                             int index);
@@ -79,36 +80,39 @@
                                             char *name); 
 
 
-    /* @name axis2_wsdl4c_msg_get_part_element
-    * @param the index  of the part  index:0..nParts-1
-    * @return pointer to the Element which the part uses
-    *         for ex if we have <part name="one" element="ns:elem">
-    *         a pointer to the Element representing ns:elem is returned
-    *        I the part's reftype is Type ,0 is returned
-    */
-    const void *
+    /** 
+     * @name axis2_wsdl4c_msg_get_part_element
+     * @param the index  of the part  index:0..number of parts
+     * @return pointer to the Element which the part uses
+     *         for ex if we have <part name="one" element="ns:elem">
+     *         a pointer to the Element representing ns:elem is returned
+     *         If the part's reftype is Type ,0 is returned
+     */
+    void *
     axis2_wsdl4c_msg_get_part_element(void *message, 
                                         int index);
 
 
-    /* @name axis2_wsdl4c_msg_get_message_part
-    * @param the index  of the part,or the name
-    * @return pointer to the Part
-    */
-    const void*
+    /** 
+     * @name axis2_wsdl4c_msg_get_message_part
+     * @param the index  of the part,or the name
+     * @return pointer to the Part
+     */
+    void*
     axis2_wsdl4c_msg_get_message_part_a_index(void *message, 
                                                 size_t index); 
 
 
-    const void *
+    void *
     axis2_wsdl4c_msg_get_message_part_a_nam(void *message, 
                                             char *nam);
 
 
-    /* @name axis2_wsdl4c_msg_get_part_content_schema_id
-    * @param the index  of the part,or the name
-    * @return schema id to which the part's type or element belongs to
-    */
+    /**
+     * @name axis2_wsdl4c_msg_get_part_content_schema_id
+     * @param the index  of the part,or the name
+     * @return schema id to which the part's type or element belongs to
+     */
     int
     axis2_wsdl4c_msg_get_part_content_schema_id_a_index(void *message, 
                                                         int index);
@@ -141,27 +145,27 @@
                                 int schema_id);
 
     /**
-    * get_name
-    * @return name of the Wsdl Element
-    */
+     * get_name
+     * @return name of the Wsdl Element
+     */
     char *
     axis2_wsdl4c_msg_get_name(void *message);
 
     /**
-    * get_documentation
-    *   
-    */
+     * get_documentation
+     *   
+     */
     char *
     axis2_wsdl4c_msg_get_documentation(void *message);  
 
     /**
-    *@name get_extensibility_elements/get_extensibility_attributes
-    *@brief return the extensibility elements/attributes belonging 
-    *       to a given namespace
-    *@params namspace uri
-    *@params reference to a vector<int>
-    *@return true if any extensibility elements were found
-    */
+     *@name get_extensibility_elements/get_extensibility_attributes
+     *@brief return the extensibility elements/attributes belonging 
+     *       to a given namespace
+     *@params namspace uri
+     *@params reference to a vector<int>
+     *@return true if any extensibility elements were found
+     */
     int *
     axis2_wsdl4c_msg_get_extensibility_elements(void *message,
                                                     char *namespc);

Modified: webservices/axis2/trunk/c/include/axis2_wsdl4c_operation.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl4c_operation.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl4c_operation.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl4c_operation.h Sun Apr  2 21:41:53 2006
@@ -19,7 +19,7 @@
  
  /**
  * @file axis2_wsdl4c_operation.h
- * @brief defines WSDL4C_OPERATION constants
+ * @brief defines WSDL4C_OPERATION
  */
 #include <axis2_array_list.h>
 #include <axis2_allocator.h>
@@ -32,8 +32,8 @@
 #endif
 
 /**
- * @defgroup axis2 wsdl4c_operation constants
- * @ingroup axis2_wsdl4c_operation 
+ * @defgroup axis2 wsdl4c_operation
+ * @ingroup axis2_wsdl4c
  * @{
  */
 
@@ -64,11 +64,11 @@
     axis2_wsdl4c_operation_destroy(void *operation);
 
     /**
-    * axis2_wsdl4c_operation_get_message
-    * @param mesage type , WSDL4C_INPUT, WSDL4C_OUTPUT or WSDL4C_FAULT
-    * @return pointer to the message
-    */
-    const void *
+     * axis2_wsdl4c_operation_get_message
+     * @param mesage type , WSDL4C_INPUT, WSDL4C_OUTPUT or WSDL4C_FAULT
+     * @return pointer to the message
+     */
+    void *
     axis2_wsdl4c_operation_get_message(void *operation, 
                                         axis2_wsdl4c_msg_type_t type );
 
@@ -76,17 +76,17 @@
     axis2_wsdl4c_operation_get_faults(void *operation);
 
     /**
-    * axis2_wsdl4c_operation_get_optype
-    * @return type of the operation in,in-out,out,out-in
-    */
+     * axis2_wsdl4c_operation_get_optype
+     * @return type of the operation in,in-out,out,out-in
+     */
     axis2_wsdl4c_optype_t
     axis2_wsdl4c_operation_get_type(void *operation);
 
     /**
-    * axis2_wsdl4c_operation_port_type
-    * @return The porttype to which this operation belongs
-    */
-    const void *
+     * axis2_wsdl4c_operation_port_type
+     * @return The port type to which this operation belongs
+     */
+    void *
     axis2_wsdl4c_operation_port_type(void *operation);
 
     void
@@ -95,27 +95,27 @@
                                         axis2_wsdl4c_msg_type_t type);
 
     /**
-    * get_name
-    * @return name of the Wsdl Element
-    */
+     * get_name
+     * @return name of the Wsdl Element
+     */
     char *
     axis2_wsdl4c_operation_get_name(void *operation);
 
     /**
-    * get_documentation
-    *   
-    */
+     * get_documentation
+     *   
+     */
     char *
     axis2_wsdl4c_operation_get_documentation(void *operation);  
 
     /**
-    *@name get_extensibility_elements/get_extensibility_attributes
-    *@brief return the extensibility elements/attributes belonging 
-    *       to a given namespace
-    *@params namspace uri
-    *@params reference to a vector<int>
-    *@return true if any extensibility elements were found
-    */
+     *@name get_extensibility_elements/get_extensibility_attributes
+     *@brief return the extensibility elements/attributes belonging 
+     *       to a given namespace
+     *@params namspace uri
+     *@params reference to a vector<int>
+     *@return true if any extensibility elements were found
+     */
     int *
     axis2_wsdl4c_operation_get_extensibility_elements(void *operation,
                                                     char *namespc);

Modified: webservices/axis2/trunk/c/include/axis2_wsdl4c_parser.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl4c_parser.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl4c_parser.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl4c_parser.h Sun Apr  2 21:41:53 2006
@@ -19,7 +19,7 @@
  
  /**
  * @file axis2_wsdl4c_parser.h
- * @brief defines WSDLPARSER_WRAPPER constants
+ * @brief defines WSDL PARSER
  */
 #include <axis2_array_list.h>
 #include <axis2_allocator.h>
@@ -31,14 +31,14 @@
 #endif
 
 /**
- * @defgroup axis2 wsdl4c_parser constants
- * @ingroup axis2_wsdl4c_parser 
+ * @defgroup axis2 wsdl4c_parser
+ * @ingroup axis2_wsdl4c 
  * @{
  */
 
     /**
-    *The various states of the Wsdl Parser
-    */
+     * The various states of the Wsdl Parser
+     */
     enum
     {
         AXIS2_WSDL4C_PARSER_NONE ,
@@ -64,12 +64,12 @@
     };
 
    /**
-   * The default constructor for WsdlParser
-   * @param input stream for the wsdl file
-   * @param output stream for any error outputs
-   * @param schemaPath path to directory containing XML schema files
-   *
-   */
+    * The default constructor for Wsdl Parser
+    * @param input stream for the wsdl file
+    * @param output stream for any error outputs
+    * @param schemaPath path to directory containing XML schema files
+    *
+    */
     void *
     axis2_wsdl4c_parser_create(char* wsdl_file, char *schema_path);
 
@@ -87,203 +87,210 @@
      * get_next_element processes the next Wsdl ELement in the stream and
      * returns the type of the root Wsdl element parsed.
      * @return  one of  START,DEFINITION,DOCUMENTATION,ANNOTATION,
-     *            TYPES,MESSAGE,PORT_TYPE,BINDING,SERVICE,IMPORT
+     *          TYPES,MESSAGE,PORT_TYPE,BINDING,SERVICE,IMPORT
      */ 
     int
     axis2_wsdl4c_parser_get_next_element(void *parser); 
 
     /**
-    * get_event_type
-    * returns the type Wsdl element parsed.
-    * @return  one of the Wsdl event types
-    */
+     * get_event_type
+     * returns the type Wsdl element parsed.
+     * @return  one of the Wsdl Event types
+     */
     int
     axis2_wsdl4c_parser_get_event_type(void *parser); 
   
     /**
-    * get_target_namespace
-    * @return target namespace of the wsdl document
-    */
-    const char *
+     * get_target_namespace
+     * @return target namespace of the wsdl document
+     */
+    char *
     axis2_wsdl4c_parser_get_namespace(void *parser);
 
     /**
-    * get_name
-    * @return name of the wsdl document
-    */
-    const char *
+     * get_name
+     * @return name of the wsdl document
+     */
+    char *
     axis2_wsdl4c_parser_get_name(void *parser);
 
     /**
-    * getDocumentation Returns the documentation string for the WSDL file
-    *                  This method must be called after <code>getEventType</code> returns DOCUMENT
-    * @return documentation std::string .
-    */
-    const char *
+     * get_documentation Returns the documentation string for the WSDL file
+     * This method must be called after <code>get_event_type</code> returns 
+     * DOCUMENT
+     * @return documentation string .
+     */
+    char *
     axis2_wsdl4c_parser_get_documentation(void *parser);
 
     /**
-    * get_binding .This method must be called after
-    *  <code>get_event_type</code> returns BINDING
-    * @return reference to the Binding element just parsed.
-    */
-    const void *
+     * get_binding .This method must be called after
+     *  <code>get_event_type</code> returns BINDING
+     * @return reference to the Binding element just parsed.
+     */
+    void *
     axis2_wsdl4c_parser_get_binding(void *parser);
 
     /**
-    * get_binding_q .
-    * @param Qname refering to the binding element
-    * @return reference to the Binding element
-    */
-    const void *
+     * get_binding_q .
+     * @param Qname refering to the binding element
+     * @return reference to the Binding element
+     */
+    void *
     axis2_wsdl4c_parser_get_binding_q(void *parser, void *q); 
 
     /**
-    * get_bindings
-    * @return iterator to a list of binding elements
-    */
+     * get_bindings
+     * @return iterator to a list of binding elements
+     */
     axis2_array_list_t *
     axis2_wsdl4c_parser_get_bindings(void *parser);
 
     /**
-    * get_services
-    * @return iterator to a list of service elements
-    */
+     * get_services
+     * @return iterator to a list of service elements
+     */
     axis2_array_list_t *
     axis2_wsdl4c_parser_get_services(void *parser);
 
     /**
-    * get_service .This method must be called after
-    *  <code>getEventType</code> returns SERVICE
-    * @return reference to the Binding element just parsed.
-    */
-    const void *
+     * get_service .This method must be called after
+     *  <code>get_event_type</code> returns SERVICE
+     * @return reference to the Binding element just parsed.
+     */
+    void *
     axis2_wsdl4c_parser_get_service(void *parser);
     
     /**
-    * get_service.
-    * @param Qname refering to the service element
-    * @return reference to the Service element
-    */
-    const void *
+     * get_service.
+     * @param Qname refering to the service element
+     * @return reference to the Service element
+     */
+    void *
     axis2_wsdl4c_parser_get_service_a_q(void *parser, void *q);
 
     /**
-    * get_port_type .This method must be called after
-    *  <code>get_event_type</code> returns PORT_TYPE
-    * @return reference to the port type element just parsed.
-    */
-    const void *
+     * get_port_type .This method must be called after
+     *  <code>get_event_type</code> returns PORT_TYPE
+     * @return reference to the port type element just parsed.
+     */
+    void *
     axis2_wsdl4c_parser_get_port_type(void *parser);
 
     /**
-    * get_port_type_q
-    * @param Qname refering to the port type element
-    * @return reference to the port type element
-    */
-    const void *
+     * get_port_type_q
+     * @param Qname refering to the port type element
+     * @return reference to the port type element
+     */
+    void *
     axis2_wsdl4c_parser_get_port_type_q(void *parser, void *q);
 
     /**
-    * get_port_types
-    * @return iterators to a container of port types
-    */
+     * get_port_types
+     * @return iterators to a container of port types
+     */
     axis2_array_list_t *
     axis2_wsdl4c_parser_get_port_types(void *parser);
 
     /**
-    * get_operations
-    * @param Qname refering to the port type element
-    * @return Returns the array list of operations
-    */
+     * get_operations
+     * @param Qname refering to the port type element
+     * @return Returns the array list of operations
+     */
     axis2_array_list_t *
     axis2_wsdl4c_parser_get_operations(void *parser, void *port_type_qname);
 
     /**
-    * get_operation
-    * @param Qname refering to the port type element
-    * @param Qname refering to the operation element
-    * @return reference to the operation element
-    */
-    const void *
+     * get_operation
+     * @param Qname refering to the port type element
+     * @param Qname refering to the operation element
+     * @return reference to the operation element
+     */
+    void *
     axis2_wsdl4c_parser_get_operation(void *parser, void *port_type_qname, void *q);
 
     /**
-    * get_message .
-    * This method must be called after
-    *  <code>get_event_type</code> returns MESSAGE
-    * @return reference to the message element just parsed.
-    */
-    const void *
+     * get_message .
+     * This method must be called after
+     *  <code>get_event_type</code> returns MESSAGE
+     * @return reference to the message element just parsed.
+     */
+    void *
     axis2_wsdl4c_parser_get_message(void *parser);
 
     /**
-    * get_message_q_q .
-    * @param Qname of the message element
-    * @return reference to the message element
-    */
-    const void *
+     * get_message_q_q .
+     * @param Qname of the message element
+     * @return reference to the message element
+     */
+    void *
     axis2_wsdl4c_parser_get_message_a_q(void *parser, void *q);
 
     /**
-    * get_messages
-    * @return list of all messages  parsed.
-    */
+     * get_messages
+     * @return list of all messages  parsed.
+     */
     void *
     axis2_wsdl4c_parser_get_messages(void *parser);
 
     /**
-    * get_num_schemas
-    * @return number of schemas in the wsdl document
-    */
+     * get_num_schemas
+     * @return number of schemas in the wsdl document
+     */
     int
     axis2_wsdl4c_parser_get_num_schemas(void *parser);
 
     /**
-    * get_schema_parser
-    * @param target namespace of the schema
-    * @return pointer to the schema parser for the namespace
-    */
-    const void *
-    axis2_wsdl4c_parser_get_schema_parser(void *parser, char *target_namespace);
+     * get_schema_parser
+     * @param target namespace of the schema
+     * @return pointer to the schema parser for the namespace
+     */
+    void *
+    axis2_wsdl4c_parser_get_schema_parser_a_namespc(void *parser, 
+                                                    char *target_namespace);
+    
+    void *
+    axis2_wsdl4c_parser_get_schema_parser_a_schema_id(void *parser,
+                                                        int schema_id);
 
     /**
-    * to query the status of wsdl parsing
-    */
+     * to query the status of wsdl parsing
+     */
     axis2_bool_t
     axis2_wsdl4c_parser_status(void *parser);
 
-    const char *
+    char *
     axis2_wsdl4c_parser_wsdl_path(void *parser);
 
     /**
-    * add_extensibility_handler 
-    * Registers an extensibility handler
-    * for Wsdl extensibility namespaces
-    * @param pointer to the instance of WsdlExtension
-    */
+     * add_extensibility_handler 
+     * Registers an extensibility handler
+     * for Wsdl extensibility namespaces
+     * @param pointer to the instance of Wsdl Extension
+     */
     void
     axis2_wsdl4c_parser_add_extensibility_handler(void *parser, void *ext);
 
     /**
-    * get_extensibility_handler_q_ns returns theextensibility handler
-    *                         for the namespaces
-    * @param namespace
-    */
+     * get_extensibility_handler_q_ns returns theextensibility handler
+     * for the namespaces
+     * @param namespace
+     */
     void *
     axis2_wsdl4c_parser_get_extensibility_handler_a_ns(void *parser, char *ns);
 
-    /* 
-    *return the extensibility handler for the given id.
-    * WsdlParser only stores ids for the extensibilit elements.
-    */
+    /** 
+     * Return the extensibility handler for the given id.
+     * Wsdl Parser only stores ids for the extensibilit elements.
+     */
     void *
-    axis2_wsdl4c_parser_get_extensibility_handler_a_ext_id(void *parser, int ext_id);
+    axis2_wsdl4c_parser_get_extensibility_handler_a_ext_id(void *parser, 
+            int ext_id);
 
     /**
-    * set_feature enables one of the features of the parser
-    * @return   true or false 
-    */
+     * set_feature enables one of the features of the parser
+     * @return   true or false 
+     */
     /*bool
     axis2_wsdl4c_parser_set_feature(void *parser, int feature_id) 
     {

Modified: webservices/axis2/trunk/c/include/axis2_wsdl4c_part.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl4c_part.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl4c_part.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl4c_part.h Sun Apr  2 21:41:53 2006
@@ -19,7 +19,7 @@
  
  /**
  * @file axis2_wsdl4c_part.h
- * @brief defines WSDL4C_PART constants
+ * @brief defines WSDL4C_PART
  */
 #include <axis2_array_list.h>
 #include <axis2_allocator.h>
@@ -31,8 +31,8 @@
 #endif
 
 /**
- * @defgroup axis2 wsdl4c_part constants
- * @ingroup axis2_wsdl4c_part 
+ * @defgroup axis2 wsdl4c_part
+ * @ingroup axis2_wsdl4c
  * @{
  */
 
@@ -52,9 +52,9 @@
     axis2_wsdl4c_part_destroy(void *part);
 
     /**
-    * @name axis2_wsdl4c_part_ref_type
-    * @return number of part ref type
-    */
+     * @name axis2_wsdl4c_part_ref_type
+     * @return number of part ref type
+     */
     axis2_wsdl4c_part_ref_type_t
     axis2_wsdl4c_part_ref_type(void *part);
 
@@ -64,7 +64,7 @@
     int
     axis2_wsdl4c_part_type(void *part);
  
-    const void *
+    void *
     axis2_wsdl4c_part_element(void *part);
  
     int

Modified: webservices/axis2/trunk/c/include/axis2_wsdl4c_port_type.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl4c_port_type.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl4c_port_type.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl4c_port_type.h Sun Apr  2 21:41:53 2006
@@ -19,7 +19,7 @@
  
  /**
  * @file axis2_wsdl4c_port_type.h
- * @brief defines WSDL4C_PORT_TYPE constants
+ * @brief defines WSDL4C_PORT_TYPE
  */
 #include <axis2_array_list.h>
 #include <axis2_allocator.h>
@@ -31,8 +31,8 @@
 #endif
 
 /**
- * @defgroup axis2 wsdl4c_port_type constants
- * @ingroup axis2_wsdl4c_port_type 
+ * @defgroup axis2 wsdl4c_port_type
+ * @ingroup axis2_wsdl4c
  * @{
  */
     void *
@@ -45,20 +45,20 @@
     axis2_wsdl4c_port_type_get_num_ops(void *port_type);
 
     /**
-    * axis2_wsdl4c_port_type_get_operation
-    * @param index of the operation index:0..ops.size()-1
-    * @return pointer to  the Operation
-    */
-    const void *
+     * axis2_wsdl4c_port_type_get_operation
+     * @param index of the operation index:0..number of operations
+     * @return pointer to  the Operation
+     */
+    void *
     axis2_wsdl4c_port_type_get_operation_a_index(void *port_type, 
                                         int index);
 
     /**
-    * axis2_wsdl4c_port_type_get_operation
-    * @param name of the operation
-    * @return pointer to  the Operation
-    */
-    const void *
+     * axis2_wsdl4c_port_type_get_operation
+     * @param name of the operation
+     * @return pointer to  the Operation
+     */
+    void *
     axis2_wsdl4c_port_type_get_operation_a_qname(void *port_type, 
                                         void *qname);
 
@@ -67,20 +67,20 @@
                                                 axis2_char_t *op_name);
 
     /**
-    * axis2_wsdl4c_port_type_get_operations
-    * @return axis2_array_list_t
-    * returns array list of operations 
-    */
+     * axis2_wsdl4c_port_type_get_operations
+     * @return axis2_array_list_t
+     * returns array list of operations 
+     */
     axis2_array_list_t *
     axis2_wsdl4c_port_type_get_operations(void *port_type);
 
     /**
-    * @name   binding
-    * @return const Binding*
-    * returns Binding associated with the port type 
-    * which has a binding protocol specified by 'nsp'
-    */
-    const void *
+     * @name   binding
+     * @return const Binding*
+     * returns Binding associated with the port type 
+     * which has a binding protocol specified by 'nsp'
+     */
+    void *
     axis2_wsdl4c_port_type_binding(void *port_type, 
                             char *nsp);
 
@@ -93,27 +93,27 @@
                                 void *bn);
 
     /**
-    * get_name
-    * @return name of the Wsdl Element
-    */
+     * get_name
+     * @return name of the Wsdl Element
+     */
     char *
     axis2_wsdl4c_port_type_get_name(void *port_type);
 
     /**
-    * get_documentation
-    *   
-    */
+     * get_documentation
+     *   
+     */
     char *
     axis2_wsdl4c_port_type_get_documentation(void *port_type);  
 
     /**
-    *@name get_extensibility_elements/get_extensibility_attributes
-    *@brief return the extensibility elements/attributes belonging 
-    *       to a given namespace
-    *@params namspace uri
-    *@params reference to a vector<int>
-    *@return true if any extensibility elements were found
-    */
+     *@name get_extensibility_elements/get_extensibility_attributes
+     *@brief return the extensibility elements/attributes belonging 
+     *       to a given namespace
+     *@params namspace uri
+     *@params reference to a vector<int>
+     *@return true if any extensibility elements were found
+     */
     int *
     axis2_wsdl4c_port_type_get_extensibility_elements(void *port_type,
                                                     char *namespc);

Modified: webservices/axis2/trunk/c/include/axis2_wsdl4c_qname.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl4c_qname.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl4c_qname.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl4c_qname.h Sun Apr  2 21:41:53 2006
@@ -19,7 +19,7 @@
  
  /**
  * @file axis2_wsdl4c_qname.h
- * @brief defines WSDL4C_QNAME constants
+ * @brief defines WSDL4C_QNAME
  */
 #include <axis2_array_list.h>
 #include <axis2_allocator.h>
@@ -31,8 +31,8 @@
 #endif
 
 /**
- * @defgroup axis2 wsdl4c_qname constants
- * @ingroup axis2_wsdl4c_qname 
+ * @defgroup axis2 wsdl4c_qname
+ * @ingroup axis2_wsdl4c
  * @{
  */
     void *
@@ -48,20 +48,20 @@
     axis2_wsdl4c_qname_destroy(void *qname);
 
     /**
-    * @name axis2_wsdl4c_get_local_name
-    * @return
-    */
-    const char *
-    axis2_wsdl4c_part_get_local_name(void *qname);
+     * @name axis2_wsdl4c_get_localname
+     * @return
+     */
+    char *
+    axis2_wsdl4c_qname_get_localname(void *qname);
     
-    const char *
-    axis2_wsdl4c_part_get_prefix(void *qname);
+    char *
+    axis2_wsdl4c_qname_get_prefix(void *qname);
     
-    const char *
-    axis2_wsdl4c_part_get_namespace(void *qname);
+    char *
+    axis2_wsdl4c_qname_get_namespace(void *qname);
 
     void
-    axis2_wsdl4c_part_set_namespace(void *qname, 
+    axis2_wsdl4c_qname_set_namespace(void *qname, 
                                     char *uri);
 
 /** @} */

Modified: webservices/axis2/trunk/c/include/axis2_wsdl4c_service.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl4c_service.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl4c_service.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl4c_service.h Sun Apr  2 21:41:53 2006
@@ -19,7 +19,7 @@
  
  /**
  * @file axis2_wsdl4c_service.h
- * @brief defines WSDL4C_SERVICE constants
+ * @brief defines WSDL4C_SERVICE
  */
 #include <axis2_array_list.h>
 #include <axis2_allocator.h>
@@ -31,8 +31,8 @@
 #endif
 
 /**
- * @defgroup axis2 wsdl4c_service constants
- * @ingroup axis2_wsdl4c_service 
+ * @defgroup axis2 wsdl4c_service
+ * @ingroup axis2_wsdl4c
  * @{
  */
     void *
@@ -42,10 +42,10 @@
     axis2_wsdl4c_service_destroy(void *service);
 
     /**
-    * axis2_wsdl4c_service_add_port
-    * @return the extensibility element id of the  main binding extension element.
-    *  In case of soap it would  be the id of the soap:binding element
-    */
+     * axis2_wsdl4c_service_add_port
+     * @return the extensibility element id of the  main binding extension 
+     * element. In case of soap it would  be the id of the soap:binding element
+     */
     void
     axis2_wsdl4c_service_add_port(void *service,
                                     char *name,
@@ -65,7 +65,7 @@
 	* @param port name
 	* @return binding associated with the port
 	*/	
-    const void *
+    void *
     axis2_wsdl4c_service_get_port_binding(void *service,
                                             char *name);
 
@@ -76,27 +76,27 @@
     axis2_wsdl4c_service_get_ports(void *service);
 
     /**
-    * get_name
-    * @return name of the Wsdl Element
-    */
+     * get_name
+     * @return name of the Wsdl Element
+     */
     char *
     axis2_wsdl4c_service_get_name(void *service);
 
     /**
-    * get_documentation
-    *   
-    */
+     * get_documentation
+     *   
+     */
     char *
     axis2_wsdl4c_service_get_documentation(void *service);  
 
     /**
-    *@name get_extensibility_elements/get_extensibility_attributes
-    *@brief return the extensibility elements/attributes belonging 
-    *       to a given namespace
-    *@params namspace uri
-    *@params reference to a vector<int>
-    *@return true if any extensibility elements were found
-    */
+     *@name get_extensibility_elements/get_extensibility_attributes
+     *@brief return the extensibility elements/attributes belonging 
+     *       to a given namespace
+     *@params namspace uri
+     *@params reference to a vector<int>
+     *@return true if any extensibility elements were found
+     */
     int *
     axis2_wsdl4c_service_get_extensibility_elements(void *service,
                                                     char *namespc);

Modified: webservices/axis2/trunk/c/include/axis2_wsdl4c_soap.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl4c_soap.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl4c_soap.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl4c_soap.h Sun Apr  2 21:41:53 2006
@@ -19,7 +19,7 @@
  
  /**
  * @file axis2_wsdl4c_soap.h
- * @brief defines WSDL4C_SOAP constants
+ * @brief defines WSDL4C_SOAP
  */
 #include <axis2_array_list.h>
 #include <axis2_allocator.h>
@@ -31,8 +31,8 @@
 #endif
 
 /**
- * @defgroup axis2 wsdl4c_soap constants
- * @ingroup axis2_wsdl4c_soap 
+ * @defgroup axis2 wsdl4c_soap
+ * @ingroup axis2_wsdl4c 
  * @{
  */
 #define AXIS2_WSDL4C_HTTP_TRANSPORT "http://schemas.xmlsoap.org/soap/http"
@@ -66,8 +66,8 @@
     axis2_wsdl4c_soap_destroy(void *soap);
 
     /**
-    * Set path to directory containing XML schemas.
-    */
+     * Set path to directory containing XML schemas.
+     */
     void
     axis2_wsdl4c_soap_set_schema_path(void *soap, 
                                         char *schema_path); 
@@ -78,10 +78,10 @@
     axis2_wsdl4c_style_t
     axis2_wsdl4c_soap_get_style(void *soap);
  
-    /*
-    Returns the namespace URI of the wsdl
-    extensibility elements that it can handle.
-    */
+    /**
+     * Returns the namespace URI of the wsdl
+     * extensibility elements that it can handle.
+     */
     char *
     axis2_wsdl4c_soap_get_namespace(void *soap); 
  
@@ -111,8 +111,8 @@
                                         void *schema_parser);
  
 
-    /* 
-     * parent is the Wsdl parent element type under which the extensibility 
+    /** 
+     * Parent is the Wsdl parent element type under which the extensibility 
      * element has come
      */
     int 
@@ -121,14 +121,18 @@
                                         void *xml_pull_parser);
 
  
-    /* att_name is the extensibility attribute */
+    /**
+     * att_name is the extensibility attribute 
+     */
     int 
     axis2_wsdl4c_soap_handle_attribute(void *soap, 
                                         int parent,
                                         char *att_name,
                                         void *xml_pull_parser);
  
-    /* returns a valid extensibilty element */
+    /** R
+     * eturns a valid extensibilty element 
+     */
     int 
     axis2_wsdl4c_soap_get_element_name(void *soap, 
                                         int id);
@@ -144,13 +148,15 @@
                                                 int att_num); 
 
  
-    /* returns a valid extensibility attribute */
+    /** 
+     * Returns a valid extensibility attribute 
+     */
     int 
     axis2_wsdl4c_soap_get_attribute_name(void *soap, int id);
  
 
-    /* 
-     * this is the start of all ids that must be used for elems/attributes
+    /** 
+     * This is the start of all ids that must be used for elems/attributes
      * in this namespace
      */
     void 
@@ -195,7 +201,7 @@
                                             int elem_id,
                                             char **location);
 
-    /* TODO add more methods like this */
+    /** TODO add more methods like this */
     axis2_bool_t
     axis2_wsdl4c_soap_is_soap_body(void *soap,
                                     int id);

Modified: webservices/axis2/trunk/c/include/axis2_wsdl_msg_ref.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_wsdl_msg_ref.h?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_wsdl_msg_ref.h (original)
+++ webservices/axis2/trunk/c/include/axis2_wsdl_msg_ref.h Sun Apr  2 21:41:53 2006
@@ -39,13 +39,13 @@
 typedef struct axis2_wsdl_msg_ref axis2_wsdl_msg_ref_t;
 typedef struct axis2_wsdl_msg_ref_ops axis2_wsdl_msg_ref_ops_t;
 
-/** @defgroup axis2_wsdl_msg_ref Wsdl Binding Fault
+/** @defgroup axis2_wsdl_msg_ref Wsdl Binding Message Reference
  * @ingroup axis2_wsdl
  * @{
  */
 
 /** 
- * @brief Wsdl Binding Message Reference ops struct
+ * @brief Wsdl Message Reference ops struct
  * Encapsulator struct for ops of axis2_wsdl_msg_ref
  */
 AXIS2_DECLARE_DATA struct axis2_wsdl_msg_ref_ops

Modified: webservices/axis2/trunk/c/modules/core/clientapi/diclient/di_client.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/core/clientapi/diclient/di_client.c?rev=390952&r1=390951&r2=390952&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/core/clientapi/diclient/di_client.c (original)
+++ webservices/axis2/trunk/c/modules/core/clientapi/diclient/di_client.c Sun Apr  2 21:41:53 2006
@@ -49,134 +49,313 @@
  * @brief Dynamic Invocation Client struct impl
  *	Dynamic Invocation Client 
  */ 
-typedef struct axis2_di_client_impl
+typedef struct axis2_diclient_impl
 {
-    axis2_di_client_t di_client;
+    axis2_diclient_t diclient;
     void *parser;
     axis2_wsdl_desc_t *wsdl_desc;
-} axis2_di_client_impl_t;
+    axis2_hash_t *op_map;
+    axis2_hash_t *endpoint_map;
+    axis2_hash_t *op_param_map;
+    axis2_char_t *wsa_action;
+    axis2_char_t *address;
+    axis2_char_t *param_namespc;
+    axis2_char_t *param_name;
+    
+} axis2_diclient_impl_t;
+
+#define AXIS2_INTF_TO_IMPL(diclient) \
+		((axis2_diclient_impl_t *)diclient)
 
-#define AXIS2_INTF_TO_IMPL(di_client) \
-		((axis2_di_client_impl_t *)di_client)
 
 /************************* Function prototypes ********************************/
 
 axis2_status_t AXIS2_CALL
-	axis2_di_client_free (axis2_di_client_t *di_client,
+	axis2_diclient_free (axis2_diclient_t *diclient,
 									axis2_env_t **env);
 
 axis2_status_t AXIS2_CALL
-axis2_di_client_invoke(axis2_di_client_t *di_client,
+axis2_diclient_invoke(axis2_diclient_t *diclient,
                         axis2_env_t **env,
-				       	axis2_om_node_t *node);
+				       	axis2_om_node_t *node,
+                        axis2_op_t *op);
                                 
 axis2_status_t AXIS2_CALL
-axis2_di_client_init(axis2_di_client_t *di_client,
+axis2_diclient_init(axis2_diclient_t *diclient,
                         axis2_env_t **env,
 						axis2_char_t *wsdl_file_name);
 
+axis2_status_t *AXIS2_CALL
+axis2_diclient_set_address_and_action_for_op(axis2_diclient_t *diclient,
+                                        axis2_env_t **env,
+                                        axis2_qname_t *op_qname,
+                                        axis2_qname_t *endpoint_qname);
+
+
+axis2_hash_t *AXIS2_CALL
+axis2_diclient_get_endpoints(axis2_diclient_t *diclient,
+                                axis2_env_t **env);
+
+axis2_hash_t *AXIS2_CALL
+axis2_diclient_get_operations(axis2_diclient_t *diclient,
+                                axis2_env_t **env);
+
+axis2_char_t *AXIS2_CALL
+axis2_diclient_get_param_localname(axis2_diclient_t *diclient,
+                            axis2_env_t **env,
+                            axis2_qname_t *op_qname);
+
+axis2_char_t *AXIS2_CALL
+axis2_diclient_get_param_namespace(axis2_diclient_t *diclient,
+                            axis2_env_t **env,
+                            axis2_qname_t *op_qname);
+
+static axis2_status_t
+axis2_diclient_process_param(axis2_diclient_t *diclient,
+                                axis2_env_t **env,
+                                axis2_qname_t *op_qname);
+
+axis2_hash_t *AXIS2_CALL
+axis2_diclient_get_params(axis2_diclient_t *diclient,
+                            axis2_env_t **env,
+                            axis2_qname_t *op_qname);
+
 /************************** End of function prototypes ************************/
 
-axis2_di_client_t * AXIS2_CALL 
-axis2_di_client_create (axis2_env_t **env)
+axis2_diclient_t * AXIS2_CALL 
+axis2_diclient_create (axis2_env_t **env)
 {
-    axis2_di_client_impl_t *di_client_impl = NULL;
+    axis2_diclient_impl_t *diclient_impl = NULL;
     
 	AXIS2_ENV_CHECK(env, NULL);
 	
-	di_client_impl = (axis2_di_client_impl_t *) AXIS2_MALLOC((*env)->allocator,
-			sizeof(axis2_di_client_impl_t));
+	diclient_impl = (axis2_diclient_impl_t *) AXIS2_MALLOC((*env)->allocator,
+			sizeof(axis2_diclient_impl_t));
 	
 	
-	if(NULL == di_client_impl)
+	if(NULL == diclient_impl)
     {
         AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE); 
         return NULL;
     }
     
-    di_client_impl->parser = NULL;
-    di_client_impl->wsdl_desc = NULL;
-    di_client_impl->di_client.ops = NULL;
+    diclient_impl->parser = NULL;
+    diclient_impl->wsdl_desc = NULL;
+    diclient_impl->param_name = NULL;
+    diclient_impl->param_namespc = NULL;
+    diclient_impl->op_map = NULL;
+    diclient_impl->op_param_map = NULL;
+    diclient_impl->endpoint_map = NULL;
+    diclient_impl->wsa_action = NULL;
+    diclient_impl->address= NULL;
+    diclient_impl->diclient.ops = NULL;
 	
-	di_client_impl->di_client.ops = 
-		AXIS2_MALLOC ((*env)->allocator, sizeof(axis2_di_client_ops_t));
-	if(NULL == di_client_impl->di_client.ops)
+	diclient_impl->diclient.ops = 
+		AXIS2_MALLOC ((*env)->allocator, sizeof(axis2_diclient_ops_t));
+	if(NULL == diclient_impl->diclient.ops)
     {
-        axis2_di_client_free(&(di_client_impl->di_client), env);
+        axis2_diclient_free(&(diclient_impl->diclient), env);
 		AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
     }
     
-	di_client_impl->di_client.ops->free =  axis2_di_client_free;
-	di_client_impl->di_client.ops->init = axis2_di_client_init;
-	di_client_impl->di_client.ops->invoke = axis2_di_client_invoke;
+	diclient_impl->diclient.ops->free =  axis2_diclient_free;
+	diclient_impl->diclient.ops->init = axis2_diclient_init;
+	diclient_impl->diclient.ops->invoke = axis2_diclient_invoke;
+    diclient_impl->diclient.ops->set_address_and_action_for_op =  
+            axis2_diclient_set_address_and_action_for_op;
+	diclient_impl->diclient.ops->get_endpoints = axis2_diclient_get_endpoints;
+	diclient_impl->diclient.ops->get_operations = axis2_diclient_get_operations;
+    diclient_impl->diclient.ops->get_param_localname = 
+            axis2_diclient_get_param_localname;
+    diclient_impl->diclient.ops->get_param_namespace = 
+            axis2_diclient_get_param_namespace;
 	
-	return &(di_client_impl->di_client);
+	return &(diclient_impl->diclient);
 }
 
 /***************************Function implementation****************************/
 
 axis2_status_t AXIS2_CALL 
-axis2_di_client_free (axis2_di_client_t *di_client, 
+axis2_diclient_free (axis2_diclient_t *diclient, 
                             axis2_env_t **env)
 {
-    axis2_di_client_impl_t *di_client_impl = NULL;
+    axis2_diclient_impl_t *diclient_impl = NULL;
     
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     
-    di_client_impl = AXIS2_INTF_TO_IMPL(di_client);
+    diclient_impl = AXIS2_INTF_TO_IMPL(diclient);
+    
+    if(diclient_impl->parser)
+    {
+        axis2_wsdl4c_parser_destroy(diclient_impl->parser);
+        diclient_impl->parser = NULL;
+    }
+
+    if(diclient_impl->wsdl_desc)
+    {
+        AXIS2_WSDL_DESC_FREE(diclient_impl->wsdl_desc, env);
+        diclient_impl->wsdl_desc = NULL;
+    }
+    
+    if(diclient_impl->op_map)
+    {
+        axis2_hash_free(diclient_impl->op_map, env);
+        diclient_impl->op_map = NULL;
+    }
+    
+    if(diclient_impl->endpoint_map)
+    {
+        axis2_hash_free(diclient_impl->endpoint_map, env);
+        diclient_impl->endpoint_map = NULL;
+    }
     
-    if(di_client_impl->parser)
+    if(diclient_impl->wsa_action)
     {
-        /* Free wsdl parser */
+        AXIS2_FREE((*env)->allocator, diclient_impl->wsa_action);
+        diclient_impl->wsa_action = NULL;
     }
     
-    if(di_client_impl->wsdl_desc)
+    if(diclient_impl->address)
     {
-        /* Free wsdl parser */
+        AXIS2_FREE((*env)->allocator, diclient_impl->address);
+        diclient_impl->address = NULL;
     }
     
-	if(NULL != di_client->ops)
-        AXIS2_FREE((*env)->allocator, di_client->ops);
+	if(NULL != diclient->ops)
+        AXIS2_FREE((*env)->allocator, diclient->ops);
     
-    if(di_client_impl)
+    if(diclient_impl)
     {
-        AXIS2_FREE((*env)->allocator, di_client_impl);
-        di_client_impl = NULL;
+        AXIS2_FREE((*env)->allocator, diclient_impl);
+        diclient_impl = NULL;
     }
     return AXIS2_SUCCESS;
 }
 
 axis2_status_t AXIS2_CALL
-axis2_di_client_init(axis2_di_client_t *di_client,
+axis2_diclient_init(axis2_diclient_t *diclient,
                         axis2_env_t **env,
 						axis2_char_t *wsdl_file_name)
 {
-    axis2_di_client_impl_t *di_client_impl = NULL;
+    axis2_diclient_impl_t *diclient_impl = NULL;
 	axis2_wsdl_pump_t *wsdl_pump = NULL;
-    
+	axis2_hash_t *svcs = NULL;
+	axis2_hash_t *endpoints = NULL;
+	axis2_hash_index_t *index1 = NULL;
+	axis2_hash_t *ops = NULL;
+	axis2_wsdl_svc_t *wsdl_svc = NULL;
+	axis2_wsdl_endpoint_t *wsdl_endpoint = NULL;
+	axis2_wsdl_binding_t *wsdl_binding = NULL;
+	axis2_wsdl_interface_t *wsdl_interface = NULL;
+	axis2_wsdl_op_t *wsdl_op = NULL;
+    axis2_svc_t *svc = NULL;
+	axis2_op_t *op = NULL;
+	axis2_qname_t *op_qname = NULL;
+	axis2_char_t *op_name = NULL;
+   
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, wsdl_file_name, AXIS2_FAILURE);
-    di_client_impl = AXIS2_INTF_TO_IMPL(di_client);
+    diclient_impl = AXIS2_INTF_TO_IMPL(diclient);
     
-    di_client_impl->parser = axis2_wsdl4c_parser_create(wsdl_file_name, "");
-	di_client_impl->wsdl_desc = axis2_wsdl_desc_create(env);
-    wsdl_pump = axis2_wsdl_pump_create(env, di_client_impl->wsdl_desc, di_client_impl->parser);
+    diclient_impl->parser = axis2_wsdl4c_parser_create(wsdl_file_name, "");
+	diclient_impl->wsdl_desc = axis2_wsdl_desc_create(env);
+    if(!diclient_impl->op_map)
+    {
+        diclient_impl->op_map = axis2_hash_make(env);
+    }
+    if(!diclient_impl->endpoint_map)
+    {
+        diclient_impl->endpoint_map = axis2_hash_make(env);
+    }
+    wsdl_pump = axis2_wsdl_pump_create(env, diclient_impl->wsdl_desc, diclient_impl->parser);
 	if(!wsdl_pump)
 	{
 		return AXIS2_FAILURE;
 	}
-	return AXIS2_WSDL_PUMP_PUMP(wsdl_pump, env);
+	AXIS2_WSDL_PUMP_PUMP(wsdl_pump, env);
+    
+    svcs = AXIS2_WSDL_DESC_GET_SVCS(diclient_impl->wsdl_desc, env);
+    for (index1 = axis2_hash_first (svcs, env); index1; 
+                    index1 = axis2_hash_next (env, index1))
+    {
+        void *value = NULL;
+	    axis2_hash_index_t *index2 = NULL;
+        
+	    axis2_hash_this (index1, NULL, NULL, &value);
+	    wsdl_svc = (axis2_wsdl_svc_t *) value;
+	    if(!wsdl_svc)
+	    {
+		    return AXIS2_FAILURE;
+	    }
+	    svc = axis2_svc_create_with_wsdl_svc(env, wsdl_svc);
+        if(!svc) return AXIS2_FAILURE;
+	    endpoints = AXIS2_WSDL_SVC_GET_ENDPOINTS(wsdl_svc, env);
+        for (index2 = axis2_hash_first (endpoints, env); index2; 
+                    index2 = axis2_hash_next (env, index2))
+        {
+	        axis2_hash_index_t *index3 = NULL;
+            void *value = NULL;
+            axis2_qname_t *endpoint_qname = NULL;
+            axis2_char_t *endpoint_qname_str = NULL;
+            
+	        axis2_hash_this(index2, NULL, NULL, &value);
+	        wsdl_endpoint = (axis2_wsdl_endpoint_t *) value;
+	        if(!wsdl_endpoint)
+	        {
+		        return AXIS2_FAILURE;
+	        }
+            endpoint_qname = AXIS2_WSDL_ENDPOINT_GET_NAME(wsdl_endpoint, env);
+            endpoint_qname_str = AXIS2_QNAME_TO_STRING(endpoint_qname, env);
+            axis2_hash_set(diclient_impl->endpoint_map, endpoint_qname_str, 
+                    AXIS2_HASH_KEY_STRING, wsdl_endpoint); 
+            AXIS2_WSDL_SVC_SET_ENDPOINT(wsdl_svc, env, wsdl_endpoint);
+            wsdl_binding = AXIS2_WSDL_ENDPOINT_GET_BINDING(wsdl_endpoint, env);
+	        if(!wsdl_binding)
+	        {
+		        return AXIS2_FAILURE;
+	        }
+	        wsdl_interface = AXIS2_WSDL_BINDING_GET_BOUND_INTERFACE(wsdl_binding, env);
+	        if(!wsdl_interface)
+	        {
+		        return AXIS2_FAILURE;
+	        }
+            AXIS2_WSDL_SVC_SET_SVC_INTERFACE(wsdl_svc, env, wsdl_interface);
+	        ops = AXIS2_WSDL_INTERFACE_GET_OPS(wsdl_interface, env);
+            for (index3 = axis2_hash_first (ops, env); index3; 
+                    index3 = axis2_hash_next (env, index3))
+            {
+                void *value = NULL;
+
+	            axis2_hash_this(index3, NULL, NULL, &value);
+	            wsdl_op = (axis2_wsdl_op_t *) value;
+	            if(!wsdl_op)
+	            {
+		            return AXIS2_FAILURE;
+	            }
+	            op = axis2_op_create_with_wsdl_op(env, wsdl_op);
+                if(!op)
+	            {
+		            return AXIS2_FAILURE;
+	            }
+                AXIS2_OP_SET_PARENT(op, env, svc);
+	            op_qname = AXIS2_OP_GET_QNAME(op, env);
+	            op_name = AXIS2_QNAME_GET_LOCALPART(op_qname, env);
+                axis2_hash_set(diclient_impl->op_map, op_name, 
+                        AXIS2_HASH_KEY_STRING, op);
+            }
+        }
+    }
+    return AXIS2_SUCCESS;
 }
 
 axis2_status_t AXIS2_CALL
-axis2_di_client_invoke(axis2_di_client_t *di_client,
+axis2_diclient_invoke(axis2_diclient_t *diclient,
                         axis2_env_t **env,
-				       	axis2_om_node_t *node)
-{
-    axis2_di_client_impl_t *di_client_impl = NULL;
-    axis2_char_t *address = NULL;
-    axis2_char_t *wsa_action = NULL;
+				       	axis2_om_node_t *node,
+                        axis2_op_t *op)
+{    
+    axis2_diclient_impl_t *diclient_impl = NULL;
     axis2_char_t *client_home = NULL;
     axis2_om_node_t *ret_node = NULL;
     axis2_call_t *call = NULL;
@@ -186,30 +365,12 @@
     axis2_endpoint_ref_t* endpoint_ref = NULL;
     axis2_conf_t *conf = NULL;
     axis2_msg_ctx_t *response_ctx = NULL;
-	axis2_hash_index_t *index = NULL;
-	axis2_hash_t *svcs = NULL;
-	axis2_hash_t *endpoints = NULL;
-	axis2_hash_t *ops = NULL;
-	axis2_hash_t *binding_ops = NULL;
-	void *value = NULL;
-	axis2_wsdl_svc_t *wsdl_svc = NULL;
-	axis2_wsdl_endpoint_t *wsdl_endpoint = NULL;
-	axis2_wsdl_binding_t *wsdl_binding = NULL;
-	axis2_wsdl_binding_op_t *wsdl_binding_op = NULL;
-	axis2_wsdl_interface_t *wsdl_interface = NULL;
-	axis2_wsdl_op_t *wsdl_op = NULL;
-	axis2_svc_t *svc = NULL;
-	axis2_op_t *op = NULL;
-	axis2_qname_t *op_qname = NULL;
-	axis2_char_t *op_name = NULL;
-	axis2_linked_list_t *ext_elements = NULL;
-	axis2_wsdl_ext_soap_address_t *soap_address = NULL;
-	axis2_wsdl_ext_soap_op_t *soap_op = NULL;
+    axis2_svc_t *svc = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, node, AXIS2_FAILURE);
-    di_client_impl = AXIS2_INTF_TO_IMPL(di_client);
-    
+    diclient_impl = AXIS2_INTF_TO_IMPL(diclient);
+
     /* Set up deploy folder. It is from the deploy folder, the configuration is picked up 
      * using the axis2.xml file.
      * In this sample client_home points to the Axis2/C default deploy folder. The client_home can 
@@ -220,65 +381,7 @@
     client_home = AXIS2_GETENV("AXIS2C_HOME");
     if (!client_home)
         client_home = "../../deploy";
-   
-    svcs = AXIS2_WSDL_DESC_GET_SVCS(di_client_impl->wsdl_desc, env);
-    index = axis2_hash_first (svcs, env);	
-	axis2_hash_this (index, NULL, NULL, &value);
-	wsdl_svc = (axis2_wsdl_svc_t *) value;
-	if(!wsdl_svc)
-	{
-		return AXIS2_FAILURE;
-	}
-	endpoints = AXIS2_WSDL_SVC_GET_ENDPOINTS(wsdl_svc, env);
-	index = axis2_hash_first (endpoints, env);
-	axis2_hash_this(index, NULL, NULL, &value);
-	wsdl_endpoint = (axis2_wsdl_endpoint_t *) value;
-	if(!wsdl_endpoint)
-	{
-		return AXIS2_FAILURE;
-	}
-    wsdl_binding = AXIS2_WSDL_ENDPOINT_GET_BINDING(wsdl_endpoint, env);
-	if(!wsdl_binding)
-	{
-		return AXIS2_FAILURE;
-	}
-	wsdl_interface = AXIS2_WSDL_BINDING_GET_BOUND_INTERFACE(wsdl_binding, env);
-	if(!wsdl_interface)
-	{
-		return AXIS2_FAILURE;
-	}
-	ops = AXIS2_WSDL_INTERFACE_GET_OPS(wsdl_interface, env);
-	index = axis2_hash_first (ops, env);
-	axis2_hash_this(index, NULL, NULL, &value);
-	wsdl_op = (axis2_wsdl_op_t *) value;
-	if(!wsdl_op)
-	{
-		return AXIS2_FAILURE;
-	}
-	op = axis2_op_create_with_wsdl_op(env, wsdl_op);
-    if(!op)
-	{
-		return AXIS2_FAILURE;
-	}
-	op_qname = AXIS2_OP_GET_QNAME(op, env);
-	op_name = AXIS2_QNAME_GET_LOCALPART(op_qname, env);
 
-	ext_elements = AXIS2_WSDL_COMPONENT_GET_EXTENSIBILITY_ELEMENTS(
-				wsdl_endpoint->wsdl_component, env);
-	soap_address = AXIS2_LINKED_LIST_GET(ext_elements, env, 0);
-	if(!soap_address) return -1;
-	address = AXIS2_WSDL_EXT_SOAP_ADDRESS_GET_LOCATION_URI(soap_address, env);
-    printf("address:%s\n", address);
-    printf("mep:%s\n", AXIS2_OP_GET_MSG_EXCHANGE_PATTERN(op, env));
-	binding_ops = AXIS2_WSDL_BINDING_GET_BINDING_OPS(wsdl_binding, env);
-	index = axis2_hash_first (binding_ops, env);
-	axis2_hash_this(index, NULL, NULL, &value);
-	wsdl_binding_op = (axis2_wsdl_binding_op_t *) value;
-	ext_elements = AXIS2_WSDL_COMPONENT_GET_EXTENSIBILITY_ELEMENTS(
-				wsdl_binding_op->extensible_component->wsdl_component, env);
-	soap_op = AXIS2_LINKED_LIST_GET(ext_elements, env, 0);
-	wsa_action = AXIS2_WSDL_EXT_SOAP_OP_GET_SOAP_ACTION(soap_op, env);
-    printf("wsa_action:%s\n", wsa_action);
     /* create call struct */
     call = axis2_call_create(env, NULL, client_home);
     mep_client = AXIS2_CALL_GET_BASE(call, env);
@@ -298,13 +401,13 @@
     msg_info_headers = AXIS2_MSG_CTX_GET_MSG_INFO_HEADERS(msg_ctx, env);
 
     /* create an axis2_endpoint_ref_t struct with ERP assigned */
-    endpoint_ref = axis2_endpoint_ref_create(env, address);
+    endpoint_ref = axis2_endpoint_ref_create(env, diclient_impl->address);
 
     /* Set header parameters, required for WS-Addressing. 
      * Required only if you need to make use of WS-Addressing.
      */
     AXIS2_MSG_INFO_HEADERS_SET_TO(msg_info_headers, env, endpoint_ref);
-    AXIS2_MSG_INFO_HEADERS_SET_ACTION(msg_info_headers, env, wsa_action); 
+    AXIS2_MSG_INFO_HEADERS_SET_ACTION(msg_info_headers, env, diclient_impl->wsa_action); 
     
     AXIS2_CALL_SET_TO(call, env, endpoint_ref);
 
@@ -315,7 +418,8 @@
                         env), 
                 env);
 
-	svc = axis2_svc_create_with_wsdl_svc(env, wsdl_svc);
+	/* svc = axis2_svc_create_with_wsdl_svc(env, wsdl_svc);*/
+    svc = AXIS2_OP_GET_PARENT(op, env);
 	/* echo service is not in the configuration context. We need to create the 
      * operation and add it to service context. Then add service context into 
      * configuration context.
@@ -366,3 +470,156 @@
     return AXIS2_SUCCESS;
 }
 
+axis2_status_t *AXIS2_CALL
+axis2_diclient_set_address_and_action_for_op(axis2_diclient_t *diclient,
+                                        axis2_env_t **env,
+                                        axis2_qname_t *op_qname,
+                                        axis2_qname_t *endpoint_qname)
+{
+    axis2_diclient_impl_t *diclient_impl = NULL;
+    axis2_op_t *op = NULL;
+    axis2_svc_t *svc = NULL;
+    axis2_wsdl_endpoint_t *wsdl_endpoint = NULL;
+    axis2_wsdl_binding_t *wsdl_binding = NULL;
+    axis2_char_t *op_name = NULL;
+    axis2_linked_list_t *ext_elements = NULL;
+    axis2_wsdl_ext_soap_address_t *soap_address = NULL;
+    axis2_wsdl_ext_soap_op_t *soap_op = NULL;
+    axis2_char_t *address = NULL;
+    axis2_hash_t *binding_ops = NULL;
+    axis2_hash_index_t *index = NULL;
+    axis2_wsdl_binding_op_t *wsdl_binding_op = NULL;
+    axis2_char_t *wsa_action = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+    AXIS2_PARAM_CHECK((*env)->error, op_qname, NULL);
+    diclient_impl = AXIS2_INTF_TO_IMPL(diclient);
+
+    op_name = AXIS2_QNAME_GET_LOCALPART(op_qname, env);
+    op = axis2_hash_get(diclient_impl->op_map, op_name, AXIS2_HASH_KEY_STRING);
+    svc = AXIS2_OP_GET_PARENT(op, env);
+    wsdl_endpoint = AXIS2_SVC_GET_ENDPOINT(svc, env, endpoint_qname);
+    ext_elements = AXIS2_WSDL_COMPONENT_GET_EXTENSIBILITY_ELEMENTS(
+            wsdl_endpoint->wsdl_component, env);
+    soap_address = AXIS2_LINKED_LIST_GET(ext_elements, env, 0);
+    if(!soap_address) return AXIS2_FAILURE;
+    address = AXIS2_WSDL_EXT_SOAP_ADDRESS_GET_LOCATION_URI(
+        soap_address, env);
+    diclient_impl->address = AXIS2_STRDUP(address, env);
+    if(!diclient_impl->address) return AXIS2_FAILURE;
+    printf("address:%s\n", address);
+    printf("mep:%s\n", AXIS2_OP_GET_MSG_EXCHANGE_PATTERN(op, env));
+    wsdl_binding = AXIS2_WSDL_ENDPOINT_GET_BINDING(wsdl_endpoint, env);
+    binding_ops = AXIS2_WSDL_BINDING_GET_BINDING_OPS(wsdl_binding, env);
+    for (index = axis2_hash_first (binding_ops, env); index; 
+            index = axis2_hash_next (env, index))
+    {
+        axis2_wsdl_op_t *op_x = NULL;
+        axis2_qname_t *op_qname_x = NULL;
+        axis2_char_t *op_name_x = NULL;
+        void *value = NULL;
+
+        axis2_hash_this(index, NULL, NULL, &value);
+        wsdl_binding_op = (axis2_wsdl_binding_op_t *) value;
+        op_x = AXIS2_WSDL_BINDING_OP_GET_OP(wsdl_binding_op, env);
+        op_qname_x = AXIS2_WSDL_OP_GET_QNAME(op_x, env);
+        op_name_x = AXIS2_QNAME_GET_LOCALPART(op_qname_x, env);
+        if(0 == AXIS2_STRCMP(op_name, op_name_x))
+            break;
+    }
+    ext_elements = AXIS2_WSDL_COMPONENT_GET_EXTENSIBILITY_ELEMENTS(
+        wsdl_binding_op->extensible_component->wsdl_component, env);
+    soap_op = AXIS2_LINKED_LIST_GET(ext_elements, env, 0);
+    wsa_action = AXIS2_WSDL_EXT_SOAP_OP_GET_SOAP_ACTION(soap_op, env);
+    diclient_impl->wsa_action = AXIS2_STRDUP(wsa_action, env);
+    if(!diclient_impl->wsa_action) return AXIS2_FAILURE;
+    printf("wsa_action:%s\n", wsa_action);
+    return AXIS2_SUCCESS;
+}
+
+axis2_hash_t *AXIS2_CALL
+axis2_diclient_get_endpoints(axis2_diclient_t *diclient,
+                                axis2_env_t **env)
+{
+    AXIS2_ENV_CHECK(env, NULL);
+    return AXIS2_INTF_TO_IMPL(diclient)->endpoint_map;
+}
+
+axis2_hash_t *AXIS2_CALL
+axis2_diclient_get_operations(axis2_diclient_t *diclient,
+                                axis2_env_t **env)
+{
+    AXIS2_ENV_CHECK(env, NULL);
+    return AXIS2_INTF_TO_IMPL(diclient)->op_map;
+}
+
+axis2_char_t *AXIS2_CALL
+axis2_diclient_get_param_localname(axis2_diclient_t *diclient,
+                            axis2_env_t **env,
+                            axis2_qname_t *op_qname)
+{
+    axis2_diclient_impl_t *diclient_impl = NULL;
+    AXIS2_ENV_CHECK(env, NULL);
+    diclient_impl = AXIS2_INTF_TO_IMPL(diclient);
+    
+    if(!diclient_impl->param_name)
+    {
+        axis2_diclient_process_param(diclient, env, op_qname);
+    }
+    return AXIS2_INTF_TO_IMPL(diclient)->param_name;
+}
+
+axis2_char_t *AXIS2_CALL
+axis2_diclient_get_param_namespace(axis2_diclient_t *diclient,
+                            axis2_env_t **env,
+                            axis2_qname_t *op_qname)
+{
+    axis2_diclient_impl_t *diclient_impl = NULL;
+    AXIS2_ENV_CHECK(env, NULL);
+    diclient_impl = AXIS2_INTF_TO_IMPL(diclient);
+
+    if(!diclient_impl->param_namespc)
+    {
+        axis2_diclient_process_param(diclient, env, op_qname);
+    }
+    return AXIS2_INTF_TO_IMPL(diclient)->param_namespc;
+}
+
+static axis2_status_t
+axis2_diclient_process_param(axis2_diclient_t *diclient,
+                                axis2_env_t **env,
+                                axis2_qname_t *op_qname)
+{    
+    axis2_diclient_impl_t *diclient_impl = NULL;
+    axis2_op_t *op = NULL;
+    axis2_char_t *op_name = NULL;
+    axis2_wsdl_msg_ref_t *input_msg = NULL;
+    axis2_qname_t *element_qname = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+    AXIS2_PARAM_CHECK((*env)->error, op_qname, NULL);
+    diclient_impl = AXIS2_INTF_TO_IMPL(diclient);
+
+    op_name = AXIS2_QNAME_GET_LOCALPART(op_qname, env);
+    op = axis2_hash_get(diclient_impl->op_map, op_name, AXIS2_HASH_KEY_STRING);
+    input_msg = AXIS2_OP_GET_INPUT_MSG(op, env);
+    element_qname = AXIS2_WSDL_MSG_REF_GET_ELEMENT(input_msg, env);
+    diclient_impl->param_namespc = AXIS2_QNAME_GET_URI(element_qname, env);
+    diclient_impl->param_name = AXIS2_QNAME_GET_LOCALPART(element_qname, env);
+    printf("element_name:%s\n", diclient_impl->param_name, env);
+    printf("element_namespc:%s\n", diclient_impl->param_namespc, env);
+    return AXIS2_SUCCESS;
+}
+                                
+axis2_hash_t *AXIS2_CALL
+axis2_diclient_get_params(axis2_diclient_t *diclient,
+                            axis2_env_t **env,
+                            axis2_qname_t *op_qname)
+{
+    axis2_diclient_impl_t *diclient_impl = NULL;
+    AXIS2_ENV_CHECK(env, NULL);
+    diclient_impl = AXIS2_INTF_TO_IMPL(diclient);
+
+    /* TODO if not wsdl2 handle multiple params */
+    return NULL;
+}