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/05/15 05:32:56 UTC

svn commit: r406516 [1/8] - in /webservices/axis2/trunk/c/modules/wsdl/woden: include/woden/ include/woden/wsdl20/ include/woden/wsdl20/extensions/ include/woden/wsdl20/xml/ src/wsdl20/ src/wsdl20/extensions/ src/wsdl20/xml/

Author: damitha
Date: Sun May 14 20:32:53 2006
New Revision: 406516

URL: http://svn.apache.org/viewcvs?rev=406516&view=rev
Log:
New files added

Added:
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_configurable.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_configurable_component.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface_fault.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface_fault_ref.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface_msg_ref.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface_op.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_nested_configurable.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_property.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_type_def.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_binding_element.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_binding_fault_element.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_binding_fault_ref_element.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_binding_msg_ref_element.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_interface_element.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_interface_fault_element.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_interface_fault_ref_element.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_interface_msg_ref_element.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_interface_op_element.h
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/binding.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/configurable.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/configurable_component.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/interface.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/interface_fault.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/interface_fault_ref.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/interface_msg_ref.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/interface_op.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/nested_configurable.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/property.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/type_def.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/xml/binding_element.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/xml/binding_fault_element.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/xml/binding_fault_ref_element.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/xml/binding_msg_ref_element.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/xml/interface_element.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/xml/interface_fault_element.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/xml/interface_fault_ref_element.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/xml/interface_msg_ref_element.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/xml/interface_op_element.c
Modified:
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/axis2_woden.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/axis2_woden_wsdl_obj.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_documentable.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_documentation.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_feature.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_types.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_attr_extensible.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_element_extensible.h
    webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_wsdl_element.h
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/Makefile.am
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/documentable.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/documentation.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/extensions/attr_extensible.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/extensions/element_extensible.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/feature.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/types.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/wsdl_element.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/wsdl_obj.c
    webservices/axis2/trunk/c/modules/wsdl/woden/src/wsdl20/xml/Makefile.am

Modified: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/axis2_woden.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/axis2_woden.h?rev=406516&r1=406515&r2=406516&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/axis2_woden.h (original)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/axis2_woden.h Sun May 14 20:32:53 2006
@@ -60,8 +60,15 @@
         AXIS2_WODEN_ATTR_EXTENSIBLE,
         AXIS2_WODEN_ELEMENT_EXTENSIBLE,
         AXIS2_WODEN_FEATURE,
+        AXIS2_WODEN_PROPERTY,
         AXIS2_WODEN_TYPES,
-        AXIS2_WODEN_DOCUMENTATION
+        AXIS2_WODEN_DOCUMENTATION,
+        AXIS2_WODEN_TYPE_DEF,
+        AXIS2_WODEN_INTERFACE,
+        AXIS2_WODEN_INTERFACE_FAULT,
+        AXIS2_WODEN_INTERFACE_FAULT_REF,
+        AXIS2_WODEN_INTERFACE_MSG_REF,
+        AXIS2_WODEN_INTERFACE_OP
     } axis2_woden_obj_types_t;
 
 /** @} */

Modified: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/axis2_woden_wsdl_obj.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/axis2_woden_wsdl_obj.h?rev=406516&r1=406515&r2=406516&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/axis2_woden_wsdl_obj.h (original)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/axis2_woden_wsdl_obj.h Sun May 14 20:32:53 2006
@@ -60,6 +60,11 @@
             void *wsdl_obj,
             axis2_env_t **env);
     
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (
+            void *wsdl_obj,
+            axis2_env_t **env);
+    
     axis2_woden_obj_types_t (AXIS2_CALL *
     type) (
             void *wsdl_obj,
@@ -113,11 +118,15 @@
 axis2_woden_wsdl_obj_resolve_methods(
         axis2_woden_wsdl_obj_t *wsdl_obj,
         axis2_env_t **env,
+        axis2_woden_wsdl_obj_t *wsdl_obj_impl,
         axis2_hash_t *methods);
 /************************End of Woden C Internal Methods***********************/
 
 #define AXIS2_WODEN_WSDL_OBJ_FREE(wsdl_obj, env) \
 		(((axis2_woden_wsdl_obj_t *) wsdl_obj)->ops->free(wsdl_obj, env))
+
+#define AXIS2_WODEN_WSDL_OBJ_SUPER_OBJS(wsdl_obj, env) \
+		(((axis2_woden_wsdl_obj_t *) wsdl_obj)->ops->super_objs(wsdl_obj, env))
 
 #define AXIS2_WODEN_WSDL_OBJ_TYPE(wsdl_obj, env) \
 		(((axis2_woden_wsdl_obj_t *) wsdl_obj)->ops->type(wsdl_obj, env))

Added: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_configurable.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_configurable.h?rev=406516&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_configurable.h (added)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_configurable.h Sun May 14 20:32:53 2006
@@ -0,0 +1,126 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_WODEN_CONFIGURABLE_H
+#define AXIS2_WODEN_CONFIGURABLE_H
+
+/**
+ * @file axis2_woden_configurable.h
+ * @brief Axis2 Configurable Interface
+ * An abstract superclass for WSDL 2.0 elements which can have <documentation> 
+ * child elements. That is, all WSDL 2.0 elements except the <documentation> 
+ * element itself. Defines accessor methods for manipulating DocumentationElements.
+ * 
+ */
+
+#include <woden/axis2_woden.h>
+#include <woden/wsdl20/xml/axis2_woden_configurable_element.h>
+#include <woden/axis2_woden_wsdl_obj.h>
+
+/** @defgroup axis2_woden_configurable Configurable
+  * @ingroup axis2_wsdl
+  * @{
+  */
+
+typedef union axis2_woden_configurable_base axis2_woden_configurable_base_t;
+typedef struct axis2_woden_configurable axis2_woden_configurable_t;
+typedef struct axis2_woden_configurable_ops axis2_woden_configurable_ops_t;
+struct axis2_woden_documentable;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct axis2_woden_configurable_ops
+{
+	/** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *configurable,
+            axis2_env_t **env);
+
+    axis2_status_t (AXIS2_CALL *
+    to_configurable_free) (
+            void *configurable,
+            axis2_env_t **env);
+
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (
+            void *configurable,
+            axis2_env_t **env);
+    
+    /**
+     * @return the base implementation class
+     */
+    struct axis2_woden_documentable *(AXIS2_CALL *
+    get_base_impl) (
+            void *configurable,
+            axis2_env_t **env);
+
+
+};
+
+union axis2_woden_configurable_base
+{
+    axis2_woden_wsdl_obj_t wsdl_obj;
+    axis2_woden_configurable_element_t configurable_elem;
+};
+
+struct axis2_woden_configurable
+{
+    axis2_woden_configurable_base_t base;
+    axis2_woden_configurable_ops_t *ops;
+};
+
+AXIS2_DECLARE(axis2_woden_configurable_t *)
+axis2_woden_configurable_create(
+        axis2_env_t **env);
+
+/************************Woden C Internal Methods******************************/
+AXIS2_DECLARE(axis2_status_t)
+axis2_woden_configurable_resolve_methods(
+        axis2_woden_configurable_t *configurable,
+        axis2_env_t **env,
+        axis2_woden_configurable_t *configurable_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+
+#define AXIS2_WODEN_CONFIGURABLE_FREE(configurable, env) \
+		(((axis2_woden_configurable_t *) configurable)->ops->\
+         free(configurable, env))
+
+#define AXIS2_WODEN_CONFIGURABLE_TO_CONFIGURABLE_FREE(configurable, env) \
+		(((axis2_woden_configurable_t *) configurable)->ops->\
+         to_configurable_free(configurable, env))
+
+#define AXIS2_WODEN_CONFIGURABLE_SUPER_OBJS(configurable, env) \
+		(((axis2_woden_configurable_t *) configurable)->ops->\
+         super_objs(configurable, env))
+
+#define AXIS2_WODEN_CONFIGURABLE_GET_BASE_IMPL(configurable, env) \
+		(((axis2_woden_configurable_t *) configurable)->ops->\
+         get_base_impl(configurable, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_WODEN_CONFIGURABLE_H */

Added: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_configurable_component.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_configurable_component.h?rev=406516&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_configurable_component.h (added)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_configurable_component.h Sun May 14 20:32:53 2006
@@ -0,0 +1,125 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_WODEN_CONFIGURABLE_COMPONENT_H
+#define AXIS2_WODEN_CONFIGURABLE_COMPONENT_H
+
+/**
+ * @file axis2_woden_configurable_component.h
+ * @brief Axis2 Configurable Component Interface
+ * All components directly or indirectly extend this interface, so it provides 
+ * a common term of reference for all components.
+ *
+ */
+
+#include <axis2_allocator.h>
+#include <axis2_env.h>
+#include <axis2_error.h>
+#include <axis2_string.h>
+#include <axis2_const.h>
+#include <axis2_hash.h>
+#include <axis2_url.h>
+#include <axis2_array_list.h>
+#include <woden/axis2_woden.h>
+#include <woden/wsdl20/axis2_woden_wsdl_component.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct axis2_woden_configurable_component axis2_woden_configurable_component_t;
+typedef struct axis2_woden_configurable_component_ops axis2_woden_configurable_component_ops_t;
+
+/** @defgroup axis2_woden_configurable_component Configurable Component
+  * @ingroup axis2_wsdl
+  * @{
+  */
+
+struct axis2_woden_configurable_component_ops
+{
+	/** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *configurable_component,
+            axis2_env_t **env);
+    
+    axis2_status_t (AXIS2_CALL *
+    to_configurable_component_free) (
+            void *configurable_component,
+            axis2_env_t **env);
+
+    axis2_woden_obj_types_t (AXIS2_CALL *
+    type) (
+            void *configurable_component,
+            axis2_env_t **env);
+    
+    axis2_array_list_t *(AXIS2_CALL *
+    get_features) (
+            void *configurable_component,
+            axis2_env_t **env);
+    
+    axis2_array_list_t *(AXIS2_CALL *
+    get_properties) (
+            void *configurable_component,
+            axis2_env_t **env);
+
+};
+
+struct axis2_woden_configurable_component
+{
+    axis2_woden_wsdl_component_t wsdl_component;
+    axis2_woden_configurable_component_ops_t *ops;
+};
+
+/************************Woden C Internal Methods******************************/
+axis2_status_t AXIS2_CALL
+axis2_woden_configurable_component_resolve_methods(
+        axis2_woden_configurable_component_t *configurable_component,
+        axis2_env_t **env,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define AXIS2_WODEN_CONFIGURABLE_COMPONENT_FREE(configurable_component, env) \
+		(((axis2_woden_configurable_component_t *) configurable_component)->ops->\
+         free (configurable_component, env))
+
+#define AXIS2_WODEN_CONFIGURABLE_COMPONENT_TO_CONFIGURABLE_COMPONENT_FREE(configurable_component, env) \
+		(((axis2_woden_configurable_component_t *) configurable_component)->ops->\
+         to_configurable_component_free (configurable_component, env))
+
+#define AXIS2_WODEN_CONFIGURABLE_COMPONENT_TYPE(configurable_component, env) \
+		(((axis2_woden_configurable_component_t *) configurable_component)->ops->\
+         type (configurable_component, env))
+
+#define AXIS2_WODEN_CONFIGURABLE_COMPONENT_GET_FEATURES(\
+        configurable_component, env) \
+		(((axis2_woden_configurable_component_t *) configurable_component)->ops->\
+         get_features(configurable_component, env))
+
+#define AXIS2_WODEN_CONFIGURABLE_COMPONENT_GET_PROPERTIES(\
+        configurable_component, env) \
+		(((axis2_woden_configurable_component_t *) configurable_component)->ops->\
+         get_properties(configurable_component, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_WODEN_CONFIGURABLE_COMPONENT_H */

Modified: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_documentable.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_documentable.h?rev=406516&r1=406515&r2=406516&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_documentable.h (original)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_documentable.h Sun May 14 20:32:53 2006
@@ -55,9 +55,14 @@
     free) (
             void *documentable,
             axis2_env_t **env);
-
+    
     axis2_status_t (AXIS2_CALL *
-    type) (
+    to_documentable_free) (
+            void *documentable,
+            axis2_env_t **env);
+
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (
             void *documentable,
             axis2_env_t **env);
     
@@ -104,6 +109,7 @@
 axis2_woden_documentable_resolve_methods(
         axis2_woden_documentable_t *documentable,
         axis2_env_t **env,
+        axis2_woden_documentable_t *documentable_impl,
         axis2_hash_t *methods);
 /************************End of Woden C Internal Methods***********************/
 
@@ -112,9 +118,13 @@
 		(((axis2_woden_documentable_t *) documentable)->ops->\
          free(documentable, env))
 
-#define AXIS2_WODEN_DOCUMENTABLE_TYPE(documentable, env) \
+#define AXIS2_WODEN_DOCUMENTABLE_TO_DOCUMENTABLE_FREE(documentable, env) \
+		(((axis2_woden_documentable_t *) documentable)->ops->\
+         to_documentable_free(documentable, env))
+
+#define AXIS2_WODEN_DOCUMENTABLE_SUPER_OBJS(documentable, env) \
 		(((axis2_woden_documentable_t *) documentable)->ops->\
-         type(documentable, env))
+         super_objs(documentable, env))
 
 #define AXIS2_WODEN_DOCUMENTABLE_GET_BASE_IMPL(documentable, env) \
 		(((axis2_woden_documentable_t *) documentable)->ops->\

Modified: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_documentation.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_documentation.h?rev=406516&r1=406515&r2=406516&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_documentation.h (original)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_documentation.h Sun May 14 20:32:53 2006
@@ -61,6 +61,10 @@
     to_documentation_free) (void *documentation,
             axis2_env_t **env);
 
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (void *documentation,
+            axis2_env_t **env);
+    
     axis2_woden_obj_types_t (AXIS2_CALL *
     type) (void *documentation,
             axis2_env_t **env);
@@ -109,6 +113,7 @@
 axis2_woden_documentation_resolve_methods(
         axis2_woden_documentation_t *documentation,
         axis2_env_t **env,
+        axis2_woden_documentation_t *documentation_impl,
         axis2_hash_t *methods);
 /************************End of Woden C Internal Methods***********************/
 
@@ -116,11 +121,16 @@
 #define AXIS2_WODEN_DOCUMENTATION_FREE(documentation, env) \
 		(((axis2_woden_documentation_t *) documentation)->ops->free(documentation, env))
 
+#define AXIS2_WODEN_DOCUMENTATION_SUPER_OBJS(documentation, env) \
+		(((axis2_woden_documentation_t *) documentation)->ops->\
+         super_objs(documentation, env))
+
 #define AXIS2_WODEN_DOCUMENTATION_TYPE(documentation, env) \
 		(((axis2_woden_documentation_t *) documentation)->ops->type(documentation, env))
 
 #define AXIS2_WODEN_DOCUMENTATION_GET_BASE_IMPL(documentation, env) \
-		(((axis2_woden_documentation_t *) documentation)->ops->get_base_impl(documentation, env))
+		(((axis2_woden_documentation_t *) documentation)->ops->\
+         get_base_impl(documentation, env))
 
 
 /** @} */

Modified: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_feature.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_feature.h?rev=406516&r1=406515&r2=406516&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_feature.h (original)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_feature.h Sun May 14 20:32:53 2006
@@ -63,6 +63,10 @@
     to_feature_free) (void *feature,
             axis2_env_t **env);
     
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (void *feature,
+            axis2_env_t **env);
+
     axis2_woden_obj_types_t (AXIS2_CALL *
     type) (void *feature,
             axis2_env_t **env);
@@ -165,6 +169,7 @@
 axis2_woden_feature_resolve_methods(
         axis2_woden_feature_t *feature,
         axis2_env_t **env,
+        axis2_woden_feature_t *feature_impl,
         axis2_hash_t *methods);
 /************************End of Woden C Internal Methods***********************/
 
@@ -173,6 +178,9 @@
 
 #define AXIS2_WODEN_FEATURE_TO_FEATURE_FREE(feature, env) \
 		(((axis2_woden_feature_t *) feature)->ops->to_feature_free(feature, env))
+
+#define AXIS2_WODEN_FEATURE_SUPER_OBJS(feature, env) \
+		(((axis2_woden_feature_t *) feature)->ops->super_objs(feature, env))
 
 #define AXIS2_WODEN_FEATURE_TYPE(feature, env) \
 		(((axis2_woden_feature_t *) feature)->ops->type(feature, env))

Added: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface.h?rev=406516&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface.h (added)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface.h Sun May 14 20:32:53 2006
@@ -0,0 +1,200 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_WODEN_INTERFACE_H
+#define AXIS2_WODEN_INTERFACE_H
+
+/**
+ * @file axis2_woden_interface.h
+ * @brief Axis2 Interface Interface
+ * Represents the Interface component from the WSDL 2.0 Component model.
+ * This component provides a read-only, abstract view of the WSDL 
+ * interface, including any interface information defined within
+ * imported or included WSDL documents. 
+ * 
+ */
+
+#include <woden/axis2_woden.h>
+#include <woden/wsdl20/xml/axis2_woden_interface_element.h>
+#include <woden/wsdl20/axis2_woden_configurable.h>
+
+/** @defgroup axis2_woden_interface Interface
+  * @ingroup axis2_wsdl
+  * @{
+  */
+
+typedef union axis2_woden_interface_base axis2_woden_interface_base_t;
+typedef struct axis2_woden_interface axis2_woden_interface_t;
+typedef struct axis2_woden_interface_ops axis2_woden_interface_ops_t;
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct axis2_woden_interface_ops
+{
+	/** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (void *interface,
+            axis2_env_t **env);
+
+    axis2_status_t (AXIS2_CALL *
+    to_interface_free) (void *interface,
+            axis2_env_t **env);
+    
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (void *interface,
+            axis2_env_t **env);
+
+    axis2_woden_obj_types_t (AXIS2_CALL *
+    type) (void *interface,
+            axis2_env_t **env);
+    /**
+     * @return the base implementation class
+     */
+    struct axis2_woden_configurable *(AXIS2_CALL *
+    get_base_impl) (
+            void *interface,
+            axis2_env_t **env);
+
+    axis2_qname_t *(AXIS2_CALL *
+    get_qname) (
+            void *interface,
+            axis2_env_t **env);
+
+    axis2_array_list_t *(AXIS2_CALL *
+    get_extended_interfaces) (
+            void *interface,
+            axis2_env_t **env);
+
+    axis2_array_list_t *(AXIS2_CALL *
+    get_interface_faults) (
+            void *interface,
+            axis2_env_t **env);
+
+    void *(AXIS2_CALL *
+    get_interface_fault) (
+            void *interface,
+            axis2_env_t **env,
+            axis2_qname_t *qname);
+
+    axis2_array_list_t *(AXIS2_CALL *
+    get_interface_ops) (
+            void *interface,
+            axis2_env_t **env);
+
+    void *(AXIS2_CALL *
+    to_element)  (
+            void *interface,
+            axis2_env_t **env);
+
+};
+
+union axis2_woden_interface_base
+{
+    axis2_woden_configurable_t configurable;
+    axis2_woden_interface_element_t interface_element;
+};
+
+struct axis2_woden_interface
+{
+    axis2_woden_interface_base_t base;
+    axis2_woden_interface_ops_t *ops;
+};
+
+AXIS2_DECLARE(axis2_woden_interface_t *)
+axis2_woden_interface_create(
+        axis2_env_t **env);
+
+
+/***************************Woden C Internal Methods***************************/
+AXIS2_DECLARE(axis2_woden_interface_t *)
+axis2_woden_interface_to_interface_element(
+        void *interface,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_interface_t *)
+axis2_woden_interface_to_configurable_element(
+        void *interface,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_interface_t *)
+axis2_woden_interface_to_documentable_element(
+        void *interface,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_interface_t *)
+axis2_woden_interface_to_configurable(
+        void *interface,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_status_t)
+axis2_woden_interface_resolve_methods(
+        axis2_woden_interface_t *interface,
+        axis2_env_t **env,
+        axis2_woden_interface_t *interface_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define AXIS2_WODEN_INTERFACE_FREE(interface, env) \
+		(((axis2_woden_interface_t *) interface)->ops->free(interface, env))
+
+#define AXIS2_WODEN_INTERFACE_TO_INTERFACE_FREE(interface, env) \
+		(((axis2_woden_interface_t *) interface)->ops->to_interface_free(interface, env))
+
+#define AXIS2_WODEN_INTERFACE_SUPER_OBJS(interface, env) \
+		(((axis2_woden_interface_t *) interface)->ops->super_objs(interface, env))
+
+#define AXIS2_WODEN_INTERFACE_TYPE(interface, env) \
+		(((axis2_woden_interface_t *) interface)->ops->type(interface, env))
+
+#define AXIS2_WODEN_INTERFACE_GET_BASE_IMPL(interface, env) \
+		(((axis2_woden_interface_t *) interface)->ops->get_base_impl(interface, env))
+
+#define AXIS2_WODEN_INTERFACE_GET_QNAME(interface, env) \
+		(((axis2_woden_interface_t *) interface)->\
+         get_qname(interface, env))
+
+#define AXIS2_WODEN_INTERFACE_GET_EXTENDED_INTERFACES(interface, env) \
+		(((axis2_woden_interface_t *) interface)->\
+         get_extended_interfaces(interface, env))
+
+#define AXIS2_WODEN_INTERFACE_GET_GET_INTERFACE_FAULTS(interface, env) \
+		(((axis2_woden_interface_t *) interface)->ops->\
+         get_interface_faults(interface, env))
+
+#define AXIS2_WODEN_INTERFACE_GET_GET_INTERFACE_FAULT(interface, env, qname) \
+		(((axis2_woden_interface_t *) interface)->ops->\
+         get_interface_fault(interface, env, qname))
+
+#define AXIS2_WODEN_INTERFACE_GET_GET_INTERFACE_OPS(interface, env) \
+		(((axis2_woden_interface_t *) interface)->ops->\
+         get_interface_ops(interface, env))
+
+#define AXIS2_WODEN_INTERFACE_TO_ELEMENT(interface, env) \
+		(((axis2_woden_interface_t *) interface)->ops->\
+         to_element(interface, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_WODEN_INTERFACE_H */

Added: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface_fault.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface_fault.h?rev=406516&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface_fault.h (added)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface_fault.h Sun May 14 20:32:53 2006
@@ -0,0 +1,166 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_WODEN_INTERFACE_FAULT_H
+#define AXIS2_WODEN_INTERFACE_FAULT_H
+
+/**
+ * @file axis2_woden_interface_fault.h
+ * @brief Axis2 Interface Fault Interface Fault
+ * This class represents the InterfaceFault component from the WSDL 2.0 Component 
+ * Model and the &lt;fault&gt; child element of the &lt;interface&gt; element. 
+ * 
+ */
+
+#include <woden/axis2_woden.h>
+#include <woden/wsdl20/xml/axis2_woden_interface_fault_element.h>
+#include <woden/wsdl20/axis2_woden_nested_configurable.h>
+#include <axis2_qname.h>
+
+/** @defgroup axis2_woden_interface_fault Interface Fault
+  * @ingroup axis2_wsdl
+  * @{
+  */
+
+typedef union axis2_woden_interface_fault_base axis2_woden_interface_fault_base_t;
+typedef struct axis2_woden_interface_fault axis2_woden_interface_fault_t;
+typedef struct axis2_woden_interface_fault_ops axis2_woden_interface_fault_ops_t;
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct axis2_woden_interface_fault_ops
+{
+	/** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (void *interface_fault,
+            axis2_env_t **env);
+
+    axis2_status_t (AXIS2_CALL *
+    to_interface_fault_free) (void *interface_fault,
+            axis2_env_t **env);
+    
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (void *interface_fault,
+            axis2_env_t **env);
+
+    axis2_woden_obj_types_t (AXIS2_CALL *
+    type) (void *interface_fault,
+            axis2_env_t **env);
+    /**
+     * @return the base implementation class
+     */
+    struct axis2_woden_nested_configurable *(AXIS2_CALL *
+    get_base_impl) (
+            void *interface_fault,
+            axis2_env_t **env);
+
+    axis2_qname_t *(AXIS2_CALL *
+    get_qname) (
+            void *interface_fault,
+            axis2_env_t **env);
+
+    void *(AXIS2_CALL *
+    get_element_declaration) (
+            void *interface_fault,
+            axis2_env_t **env);
+
+    void *(AXIS2_CALL *
+    to_element)  (
+            void *interface_fault,
+            axis2_env_t **env);
+
+};
+
+union axis2_woden_interface_fault_base
+{
+    axis2_woden_nested_configurable_t nested_configurable;
+    axis2_woden_interface_fault_element_t interface_fault_element;
+};
+
+struct axis2_woden_interface_fault
+{
+    axis2_woden_interface_fault_base_t base;
+    axis2_woden_interface_fault_ops_t *ops;
+};
+
+AXIS2_DECLARE(axis2_woden_interface_fault_t *)
+axis2_woden_interface_fault_create(
+        axis2_env_t **env);
+
+
+/***************************Woden C Internal Methods***************************/
+AXIS2_DECLARE(axis2_woden_interface_fault_t *)
+axis2_woden_interface_fault_to_interface_fault_element(
+        void *interface_fault,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_interface_fault_t *)
+axis2_woden_interface_fault_to_nested_configurable(
+        void *interface_fault,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_interface_fault_t *)
+axis2_woden_interface_fault_to_configurable(
+        void *interface_fault,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_status_t)
+axis2_woden_interface_fault_resolve_methods(
+        axis2_woden_interface_fault_t *interface_fault,
+        axis2_env_t **env,
+        axis2_woden_interface_fault_t *interface_fault_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define AXIS2_WODEN_INTERFACE_FAULT_FREE(interface_fault, env) \
+		(((axis2_woden_interface_fault_t *) interface_fault)->ops->free(interface_fault, env))
+
+#define AXIS2_WODEN_INTERFACE_FAULT_TO_INTERFACE_FAULT_FREE(interface_fault, env) \
+		(((axis2_woden_interface_fault_t *) interface_fault)->ops->to_interface_fault_free(interface_fault, env))
+
+#define AXIS2_WODEN_INTERFACE_FAULT_SUPER_OBJS(interface_fault, env) \
+		(((axis2_woden_interface_fault_t *) interface_fault)->ops->super_objs(interface_fault, env))
+
+#define AXIS2_WODEN_INTERFACE_FAULT_TYPE(interface_fault, env) \
+		(((axis2_woden_interface_fault_t *) interface_fault)->ops->type(interface_fault, env))
+
+#define AXIS2_WODEN_INTERFACE_FAULT_GET_BASE_IMPL(interface_fault, env) \
+		(((axis2_woden_interface_fault_t *) interface_fault)->ops->get_base_impl(interface_fault, env))
+
+#define AXIS2_WODEN_INTERFACE_FAULT_GET_QNAME(interface_fault, env) \
+		(((axis2_woden_interface_fault_t *) interface_fault)->\
+         get_qname(interface_fault, env))
+
+#define AXIS2_WODEN_INTERFACE_FAULT_GET_ELEMENT_DECLARATION(interface_fault, env) \
+		(((axis2_woden_interface_fault_t *) interface_fault)->\
+         get_element_declaration(interface_fault, env))
+
+#define AXIS2_WODEN_INTERFACE_FAULT_TO_ELEMENT(interface_fault, env) \
+		(((axis2_woden_interface_fault_t *) interface_fault)->ops->\
+         to_element(interface_fault, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_WODEN_INTERFACE_FAULT_H */

Added: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface_fault_ref.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface_fault_ref.h?rev=406516&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface_fault_ref.h (added)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface_fault_ref.h Sun May 14 20:32:53 2006
@@ -0,0 +1,176 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_WODEN_INTERFACE_FAULT_REF_H
+#define AXIS2_WODEN_INTERFACE_FAULT_REF_H
+
+/**
+ * @file axis2_woden_interface_fault_ref.h
+ * @brief Axis2 Interface Fault Reference Interface Fault Reference
+ * This class represents the Interface Fault Reference component of the 
+ * WSDL 2.0 Component model and the &lt;infault&gt; and &lt;outfault&gt; 
+ * child elements of an interface &lt;operation&gt;. 
+ * 
+ */
+
+#include <woden/axis2_woden.h>
+#include <woden/wsdl20/xml/axis2_woden_interface_fault_ref_element.h>
+#include <woden/wsdl20/axis2_woden_nested_configurable.h>
+#include <axis2_qname.h>
+
+/** @defgroup axis2_woden_interface_fault_ref Interface Fault Reference
+  * @ingroup axis2_wsdl
+  * @{
+  */
+
+typedef union axis2_woden_interface_fault_ref_base axis2_woden_interface_fault_ref_base_t;
+typedef struct axis2_woden_interface_fault_ref axis2_woden_interface_fault_ref_t;
+typedef struct axis2_woden_interface_fault_ref_ops axis2_woden_interface_fault_ref_ops_t;
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct axis2_woden_interface_fault_ref_ops
+{
+	/** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (void *interface_fault_ref,
+            axis2_env_t **env);
+
+    axis2_status_t (AXIS2_CALL *
+    to_interface_fault_ref_free) (void *interface_fault_ref,
+            axis2_env_t **env);
+    
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (void *interface_fault_ref,
+            axis2_env_t **env);
+
+    axis2_woden_obj_types_t (AXIS2_CALL *
+    type) (void *interface_fault_ref,
+            axis2_env_t **env);
+    /**
+     * @return the base implementation class
+     */
+    struct axis2_woden_nested_configurable *(AXIS2_CALL *
+    get_base_impl) (
+            void *interface_fault_ref,
+            axis2_env_t **env);
+
+    void *(AXIS2_CALL *
+    get_interface_fault) (
+            void *interface_fault_ref,
+            axis2_env_t **env);
+
+    void *(AXIS2_CALL *
+    get_msg_label) (
+            void *interface_fault_ref,
+            axis2_env_t **env);
+
+    void *(AXIS2_CALL *
+    get_direction) (
+            void *interface_fault_ref,
+            axis2_env_t **env);
+
+    void *(AXIS2_CALL *
+    to_element)  (
+            void *interface_fault_ref,
+            axis2_env_t **env);
+
+};
+
+union axis2_woden_interface_fault_ref_base
+{
+    axis2_woden_nested_configurable_t nested_configurable;
+    axis2_woden_interface_fault_ref_element_t interface_fault_ref_element;
+};
+
+struct axis2_woden_interface_fault_ref
+{
+    axis2_woden_interface_fault_ref_base_t base;
+    axis2_woden_interface_fault_ref_ops_t *ops;
+};
+
+AXIS2_DECLARE(axis2_woden_interface_fault_ref_t *)
+axis2_woden_interface_fault_ref_create(
+        axis2_env_t **env);
+
+
+/***************************Woden C Internal Methods***************************/
+AXIS2_DECLARE(axis2_woden_interface_fault_ref_t *)
+axis2_woden_interface_fault_ref_to_interface_fault_ref_element(
+        void *interface_fault_ref,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_interface_fault_ref_t *)
+axis2_woden_interface_fault_ref_to_nested_configurable(
+        void *interface_fault_ref,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_interface_fault_ref_t *)
+axis2_woden_interface_fault_ref_to_configurable(
+        void *interface_fault_ref,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_status_t)
+axis2_woden_interface_fault_ref_resolve_methods(
+        axis2_woden_interface_fault_ref_t *interface_fault_ref,
+        axis2_env_t **env,
+        axis2_woden_interface_fault_ref_t *interface_fault_ref_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define AXIS2_WODEN_INTERFACE_FAULT_REF_FREE(interface_fault_ref, env) \
+		(((axis2_woden_interface_fault_ref_t *) interface_fault_ref)->ops->free(interface_fault_ref, env))
+
+#define AXIS2_WODEN_INTERFACE_FAULT_REF_TO_INTERFACE_FAULT_REF_FREE(interface_fault_ref, env) \
+		(((axis2_woden_interface_fault_ref_t *) interface_fault_ref)->ops->to_interface_fault_ref_free(interface_fault_ref, env))
+
+#define AXIS2_WODEN_INTERFACE_FAULT_REF_SUPER_OBJS(interface_fault_ref, env) \
+		(((axis2_woden_interface_fault_ref_t *) interface_fault_ref)->ops->super_objs(interface_fault_ref, env))
+
+#define AXIS2_WODEN_INTERFACE_FAULT_REF_TYPE(interface_fault_ref, env) \
+		(((axis2_woden_interface_fault_ref_t *) interface_fault_ref)->ops->type(interface_fault_ref, env))
+
+#define AXIS2_WODEN_INTERFACE_FAULT_REF_GET_BASE_IMPL(interface_fault_ref, env) \
+		(((axis2_woden_interface_fault_ref_t *) interface_fault_ref)->ops->get_base_impl(interface_fault_ref, env))
+
+#define AXIS2_WODEN_INTERFACE_FAULT_REF_GET_INTERFACE_FAULT(interface_fault_ref, env) \
+		(((axis2_woden_interface_fault_ref_t *) interface_fault_ref)->\
+         get_interface_fault(interface_fault_ref, env))
+
+#define AXIS2_WODEN_INTERFACE_FAULT_REF_GET_MSG_LABEL(interface_fault_ref, env) \
+		(((axis2_woden_interface_fault_ref_t *) interface_fault_ref)->\
+         get_msg_label(interface_fault_ref, env))
+
+#define AXIS2_WODEN_INTERFACE_FAULT_REF_GET_DIRECTION(interface_fault_ref, env) \
+		(((axis2_woden_interface_fault_ref_t *) interface_fault_ref)->\
+         get_direction(interface_fault_ref, env))
+
+#define AXIS2_WODEN_INTERFACE_FAULT_REF_TO_ELEMENT(interface_fault_ref, env) \
+		(((axis2_woden_interface_fault_ref_t *) interface_fault_ref)->ops->\
+         to_element(interface_fault_ref, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_WODEN_INTERFACE_FAULT_REF_H */

Added: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface_msg_ref.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface_msg_ref.h?rev=406516&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface_msg_ref.h (added)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface_msg_ref.h Sun May 14 20:32:53 2006
@@ -0,0 +1,189 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_WODEN_INTERFACE_MSG_REF_H
+#define AXIS2_WODEN_INTERFACE_MSG_REF_H
+
+/**
+ * @file axis2_woden_interface_msg_ref.h
+ * @brief Axis2 Interface Message Reference Interface Message Reference
+ * 
+ */
+
+#include <woden/axis2_woden.h>
+#include <woden/wsdl20/xml/axis2_woden_interface_msg_ref_element.h>
+#include <woden/wsdl20/axis2_woden_nested_configurable.h>
+#include <axis2_qname.h>
+
+/** @defgroup axis2_woden_interface_msg_ref Interface Message Reference
+  * @ingroup axis2_wsdl
+  * @{
+  */
+
+typedef union axis2_woden_interface_msg_ref_base axis2_woden_interface_msg_ref_base_t;
+typedef struct axis2_woden_interface_msg_ref axis2_woden_interface_msg_ref_t;
+typedef struct axis2_woden_interface_msg_ref_ops axis2_woden_interface_msg_ref_ops_t;
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct axis2_woden_interface_msg_ref_ops
+{
+	/** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (void *interface_msg_ref,
+            axis2_env_t **env);
+
+    axis2_status_t (AXIS2_CALL *
+    to_interface_msg_ref_free) (void *interface_msg_ref,
+            axis2_env_t **env);
+    
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (void *interface_msg_ref,
+            axis2_env_t **env);
+
+    axis2_woden_obj_types_t (AXIS2_CALL *
+    type) (void *interface_msg_ref,
+            axis2_env_t **env);
+    /**
+     * @return the base implementation class
+     */
+    struct axis2_woden_nested_configurable *(AXIS2_CALL *
+    get_base_impl) (
+            void *interface_msg_ref,
+            axis2_env_t **env);
+
+    void *(AXIS2_CALL *
+    get_msg_label) (
+            void *interface_msg_ref,
+            axis2_env_t **env);
+
+    void *(AXIS2_CALL *
+    get_direction) (
+            void *interface_msg_ref,
+            axis2_env_t **env);
+
+    /**
+     * Indicates the type of message content.#any means any single element, 
+     * #none means no message content, #other means non-XML extension type system
+     * or #element means XML Schema global element definition.
+     *   
+     * @return string representing the type of message content
+     */
+    axis2_char_t *(AXIS2_CALL *
+    get_msg_content_model) (
+            void *interface_msg_ref,
+            axis2_env_t **env);
+
+    void *(AXIS2_CALL *
+    get_element_declaration) (
+            void *interface_msg_ref,
+            axis2_env_t **env);
+
+    void *(AXIS2_CALL *
+    to_element)  (
+            void *interface_msg_ref,
+            axis2_env_t **env);
+
+};
+
+union axis2_woden_interface_msg_ref_base
+{
+    axis2_woden_nested_configurable_t nested_configurable;
+    axis2_woden_interface_msg_ref_element_t interface_msg_ref_element;
+};
+
+struct axis2_woden_interface_msg_ref
+{
+    axis2_woden_interface_msg_ref_base_t base;
+    axis2_woden_interface_msg_ref_ops_t *ops;
+};
+
+AXIS2_DECLARE(axis2_woden_interface_msg_ref_t *)
+axis2_woden_interface_msg_ref_create(
+        axis2_env_t **env);
+
+
+/***************************Woden C Internal Methods***************************/
+AXIS2_DECLARE(axis2_woden_interface_msg_ref_t *)
+axis2_woden_interface_msg_ref_to_interface_msg_ref_element(
+        void *interface_msg_ref,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_interface_msg_ref_t *)
+axis2_woden_interface_msg_ref_to_nested_configurable(
+        void *interface_msg_ref,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_interface_msg_ref_t *)
+axis2_woden_interface_msg_ref_to_configurable(
+        void *interface_msg_ref,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_status_t)
+axis2_woden_interface_msg_ref_resolve_methods(
+        axis2_woden_interface_msg_ref_t *interface_msg_ref,
+        axis2_env_t **env,
+        axis2_woden_interface_msg_ref_t *interface_msg_ref_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define AXIS2_WODEN_INTERFACE_MSG_REF_FREE(interface_msg_ref, env) \
+		(((axis2_woden_interface_msg_ref_t *) interface_msg_ref)->ops->free(interface_msg_ref, env))
+
+#define AXIS2_WODEN_INTERFACE_MSG_REF_TO_INTERFACE_MSG_REF_FREE(interface_msg_ref, env) \
+		(((axis2_woden_interface_msg_ref_t *) interface_msg_ref)->ops->to_interface_msg_ref_free(interface_msg_ref, env))
+
+#define AXIS2_WODEN_INTERFACE_MSG_REF_SUPER_OBJS(interface_msg_ref, env) \
+		(((axis2_woden_interface_msg_ref_t *) interface_msg_ref)->ops->super_objs(interface_msg_ref, env))
+
+#define AXIS2_WODEN_INTERFACE_MSG_REF_TYPE(interface_msg_ref, env) \
+		(((axis2_woden_interface_msg_ref_t *) interface_msg_ref)->ops->type(interface_msg_ref, env))
+
+#define AXIS2_WODEN_INTERFACE_MSG_REF_GET_BASE_IMPL(interface_msg_ref, env) \
+		(((axis2_woden_interface_msg_ref_t *) interface_msg_ref)->ops->get_base_impl(interface_msg_ref, env))
+
+#define AXIS2_WODEN_INTERFACE_MSG_REF_GET_MESSAGE_LABEL(interface_msg_ref, env) \
+		(((axis2_woden_interface_msg_ref_t *) interface_msg_ref)->\
+         get_msg_label(interface_msg_ref, env))
+
+#define AXIS2_WODEN_INTERFACE_MSG_REF_GET_DIRECTION(interface_msg_ref, env) \
+		(((axis2_woden_interface_msg_ref_t *) interface_msg_ref)->\
+         get_direction(interface_msg_ref, env))
+
+#define AXIS2_WODEN_INTERFACE_MSG_REF_GET_MSG_CONTENT_MODEL(interface_msg_ref, env) \
+		(((axis2_woden_interface_msg_ref_t *) interface_msg_ref)->\
+         get_msg_content_model(interface_msg_ref, env))
+
+#define AXIS2_WODEN_INTERFACE_MSG_REF_GET_ELEMENT_DECLARATION(interface_msg_ref, env) \
+		(((axis2_woden_interface_msg_ref_t *) interface_msg_ref)->\
+         get_element_declaration(interface_msg_ref, env))
+
+#define AXIS2_WODEN_INTERFACE_MSG_REF_TO_ELEMENT(interface_msg_ref, env) \
+		(((axis2_woden_interface_msg_ref_t *) interface_msg_ref)->ops->\
+         to_element(interface_msg_ref, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_WODEN_INTERFACE_MSG_REF_H */

Added: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface_op.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface_op.h?rev=406516&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface_op.h (added)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_interface_op.h Sun May 14 20:32:53 2006
@@ -0,0 +1,191 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_WODEN_INTERFACE_OP_H
+#define AXIS2_WODEN_INTERFACE_OP_H
+
+/**
+ * @file axis2_woden_interface_op.h
+ * @brief Axis2 Interface Operation Interface Operation
+ * 
+ */
+
+#include <woden/axis2_woden.h>
+#include <woden/wsdl20/xml/axis2_woden_interface_op_element.h>
+#include <woden/wsdl20/axis2_woden_nested_configurable.h>
+#include <axis2_qname.h>
+
+/** @defgroup axis2_woden_interface_op Interface Operation
+  * @ingroup axis2_wsdl
+  * @{
+  */
+
+typedef union axis2_woden_interface_op_base axis2_woden_interface_op_base_t;
+typedef struct axis2_woden_interface_op axis2_woden_interface_op_t;
+typedef struct axis2_woden_interface_op_ops axis2_woden_interface_op_ops_t;
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct axis2_woden_interface_op_ops
+{
+	/** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (void *interface_op,
+            axis2_env_t **env);
+
+    axis2_status_t (AXIS2_CALL *
+    to_interface_op_free) (void *interface_op,
+            axis2_env_t **env);
+    
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (void *interface_op,
+            axis2_env_t **env);
+
+    axis2_woden_obj_types_t (AXIS2_CALL *
+    type) (void *interface_op,
+            axis2_env_t **env);
+    /**
+     * @return the base implementation class
+     */
+    struct axis2_woden_nested_configurable *(AXIS2_CALL *
+    get_base_impl) (
+            void *interface_op,
+            axis2_env_t **env);
+
+    axis2_qname_t *(AXIS2_CALL *
+    get_qname) (
+            void *interface_op,
+            axis2_env_t **env);
+
+    axis2_url_t *(AXIS2_CALL *
+    get_msg_exchange_pattern) (
+            void *interface_op,
+            axis2_env_t **env);
+
+    axis2_array_list_t *(AXIS2_CALL *
+    get_interface_msg_refs) (
+            void *interface_op,
+            axis2_env_t **env);
+
+    axis2_array_list_t *(AXIS2_CALL *
+    get_interface_fault_refs) (
+            void *interface_op,
+            axis2_env_t **env);
+
+    axis2_array_list_t *(AXIS2_CALL *
+    get_style) (
+            void *interface_op,
+            axis2_env_t **env);
+
+    void *(AXIS2_CALL *
+    to_element)  (
+            void *interface_op,
+            axis2_env_t **env);
+
+};
+
+union axis2_woden_interface_op_base
+{
+    axis2_woden_nested_configurable_t nested_configurable;
+    axis2_woden_interface_op_element_t interface_op_element;
+};
+
+struct axis2_woden_interface_op
+{
+    axis2_woden_interface_op_base_t base;
+    axis2_woden_interface_op_ops_t *ops;
+};
+
+AXIS2_DECLARE(axis2_woden_interface_op_t *)
+axis2_woden_interface_op_create(
+        axis2_env_t **env);
+
+
+/***************************Woden C Internal Methods***************************/
+AXIS2_DECLARE(axis2_woden_interface_op_t *)
+axis2_woden_interface_op_to_interface_op_element(
+        void *interface_op,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_interface_op_t *)
+axis2_woden_interface_op_to_nested_configurable(
+        void *interface_op,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_interface_op_t *)
+axis2_woden_interface_op_to_configurable(
+        void *interface_op,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_status_t)
+axis2_woden_interface_op_resolve_methods(
+        axis2_woden_interface_op_t *interface_op,
+        axis2_env_t **env,
+        axis2_woden_interface_op_t *interface_op_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define AXIS2_WODEN_INTERFACE_OP_FREE(interface_op, env) \
+		(((axis2_woden_interface_op_t *) interface_op)->ops->free(interface_op, env))
+
+#define AXIS2_WODEN_INTERFACE_OP_TO_INTERFACE_OP_FREE(interface_op, env) \
+		(((axis2_woden_interface_op_t *) interface_op)->ops->to_interface_op_free(interface_op, env))
+
+#define AXIS2_WODEN_INTERFACE_OP_SUPER_OBJS(interface_op, env) \
+		(((axis2_woden_interface_op_t *) interface_op)->ops->super_objs(interface_op, env))
+
+#define AXIS2_WODEN_INTERFACE_OP_TYPE(interface_op, env) \
+		(((axis2_woden_interface_op_t *) interface_op)->ops->type(interface_op, env))
+
+#define AXIS2_WODEN_INTERFACE_OP_GET_BASE_IMPL(interface_op, env) \
+		(((axis2_woden_interface_op_t *) interface_op)->ops->get_base_impl(interface_op, env))
+
+#define AXIS2_WODEN_INTERFACE_OP_GET_QNAME(interface_op, env) \
+		(((axis2_woden_interface_op_t *) interface_op)->\
+         get_qname(interface_op, env))
+
+#define AXIS2_WODEN_INTERFACE_OP_GET_MSG_EXCHANGE_PATTERN(interface_op, env) \
+		(((axis2_woden_interface_op_t *) interface_op)->\
+         get_msg_exchange_pattern(interface_op, env))
+
+#define AXIS2_WODEN_INTERFACE_OP_GET_INTERFACE_MSG_REFS(interface_op, env) \
+		(((axis2_woden_interface_op_t *) interface_op)->\
+         get_interface_msg_refs(interface_op, env))
+
+#define AXIS2_WODEN_INTERFACE_OP_GET_INTERFACE_FAULT_REFS(interface_op, env) \
+		(((axis2_woden_interface_op_t *) interface_op)->\
+         get_interface_fault_refs(interface_op, env))
+
+#define AXIS2_WODEN_INTERFACE_OP_GET_STYLE(interface_op, env) \
+		(((axis2_woden_interface_op_t *) interface_op)->\
+         get_style(interface_op, env))
+
+#define AXIS2_WODEN_INTERFACE_OP_TO_ELEMENT(interface_op, env) \
+		(((axis2_woden_interface_op_t *) interface_op)->ops->\
+         to_element(interface_op, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_WODEN_INTERFACE_OP_H */

Added: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_nested_configurable.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_nested_configurable.h?rev=406516&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_nested_configurable.h (added)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_nested_configurable.h Sun May 14 20:32:53 2006
@@ -0,0 +1,127 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_WODEN_NESTED_CONFIGURABLE_H
+#define AXIS2_WODEN_NESTED_CONFIGURABLE_H
+
+/**
+ * @file axis2_woden_nested_configurable.h
+ * @brief Axis2 Nested Configurable Interface
+ * This abstract superclass implements support for accessing or
+ * setting the 'parent' of a nested, configurable WSDL component.
+ * All such classes will directly or indirectly extend this abstract 
+ * class.
+ * 
+ */
+
+#include <woden/axis2_woden.h>
+#include <woden/wsdl20/axis2_woden_nested_component.h>
+#include <woden/wsdl20/xml/axis2_woden_nested_element.h>
+#include <woden/wsdl20/axis2_woden_configurable.h>
+
+/** @defgroup axis2_woden_nested_configurable Nested Configurable
+  * @ingroup axis2_wsdl
+  * @{
+  */
+
+typedef union axis2_woden_nested_configurable_base axis2_woden_nested_configurable_base_t;
+typedef struct axis2_woden_nested_configurable axis2_woden_nested_configurable_t;
+typedef struct axis2_woden_nested_configurable_ops axis2_woden_nested_configurable_ops_t;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct axis2_woden_nested_configurable_ops
+{
+	/** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *nested_configurable,
+            axis2_env_t **env);
+
+    axis2_status_t (AXIS2_CALL *
+    to_nested_configurable_free) (
+            void *nested_configurable,
+            axis2_env_t **env);
+
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (
+            void *nested_configurable,
+            axis2_env_t **env);
+    
+    /**
+     * @return the base implementation class
+     */
+    struct axis2_woden_configurable *(AXIS2_CALL *
+    get_base_impl) (
+            void *nested_configurable,
+            axis2_env_t **env);
+
+};
+
+union axis2_woden_nested_configurable_base
+{
+    axis2_woden_configurable_t configurable;
+    axis2_woden_nested_element_t nested_element;
+    axis2_woden_nested_component_t nested_component;
+};
+
+struct axis2_woden_nested_configurable
+{
+    axis2_woden_nested_configurable_base_t base;
+    axis2_woden_nested_configurable_ops_t *ops;
+};
+
+AXIS2_DECLARE(axis2_woden_nested_configurable_t *)
+axis2_woden_nested_configurable_create(
+        axis2_env_t **env);
+
+/************************Woden C Internal Methods******************************/
+AXIS2_DECLARE(axis2_status_t)
+axis2_woden_nested_configurable_resolve_methods(
+        axis2_woden_nested_configurable_t *nested_configurable,
+        axis2_env_t **env,
+        axis2_woden_nested_configurable_t *nested_configurable_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+
+#define AXIS2_WODEN_NESTED_CONFIGURABLE_FREE(nested_configurable, env) \
+		(((axis2_woden_nested_configurable_t *) nested_configurable)->ops->\
+         free(nested_configurable, env))
+
+#define AXIS2_WODEN_NESTED_CONFIGURABLE_TO_NESTED_CONFIGURABLE_FREE(nested_configurable, env) \
+		(((axis2_woden_nested_configurable_t *) nested_configurable)->ops->\
+         to_nested_configurable_free(nested_configurable, env))
+
+#define AXIS2_WODEN_NESTED_CONFIGURABLE_SUPER_OBJS(nested_configurable, env) \
+		(((axis2_woden_nested_configurable_t *) nested_configurable)->ops->\
+         super_objs(nested_configurable, env))
+
+#define AXIS2_WODEN_NESTED_CONFIGURABLE_GET_BASE_IMPL(nested_configurable, env) \
+		(((axis2_woden_nested_configurable_t *) nested_configurable)->ops->\
+         get_base_impl(nested_configurable, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_WODEN_NESTED_CONFIGURABLE_H */

Added: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_property.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_property.h?rev=406516&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_property.h (added)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_property.h Sun May 14 20:32:53 2006
@@ -0,0 +1,220 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_WODEN_PROPERTY_H
+#define AXIS2_WODEN_PROPERTY_H
+
+/**
+ * @file axis2_woden_property.h
+ * @brief Axis2 Property Interface
+ * An abstract superclass for WSDL 2.0 elements which can have &lt;documentation&gt; 
+ * child elements. That is, all WSDL 2.0 elements except the &lt;documentation&gt; 
+ * element itself. Defines accessor methods for manipulating DocumentationElements.
+ * 
+ */
+
+#include <woden/axis2_woden.h>
+#include <woden/wsdl20/xml/axis2_woden_property_element.h>
+#include <woden/axis2_woden_wsdl_obj.h>
+#include <woden/wsdl20/axis2_woden_documentable.h>
+#include <woden/wsdl20/axis2_woden_nested_component.h>
+
+/** @defgroup axis2_woden_property Property
+  * @ingroup axis2_wsdl
+  * @{
+  */
+
+typedef union axis2_woden_property_base axis2_woden_property_base_t;
+typedef struct axis2_woden_property axis2_woden_property_t;
+typedef struct axis2_woden_property_ops axis2_woden_property_ops_t;
+struct axis2_woden_documentation_element;
+struct axis2_woden_wsdl_component;
+struct axis2_woden_documentable;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct axis2_woden_property_ops
+{
+	/** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (void *property,
+            axis2_env_t **env);
+
+    axis2_status_t (AXIS2_CALL *
+    to_property_free) (void *property,
+            axis2_env_t **env);
+    
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (void *property,
+            axis2_env_t **env);
+
+    axis2_woden_obj_types_t (AXIS2_CALL *
+    type) (void *property,
+            axis2_env_t **env);
+    /**
+     * @return the base implementation class
+     */
+    struct axis2_woden_documentable *(AXIS2_CALL *
+    get_base_impl) (
+            void *property,
+            axis2_env_t **env);
+
+    axis2_url_t *(AXIS2_CALL *
+    get_ref) (
+            void *property,
+            axis2_env_t **env);
+
+    void *(AXIS2_CALL *
+    get_value_constraint) (
+            void *property,
+            axis2_env_t **env);
+
+    void *(AXIS2_CALL *
+    get_value) (
+            void *property,
+            axis2_env_t **env);
+
+    void *(AXIS2_CALL *
+    get_parent) (
+            void *property,
+            axis2_env_t **env);
+
+    void *(AXIS2_CALL *
+    to_element) (
+            void *property,
+            axis2_env_t **env);
+
+};
+
+union axis2_woden_property_base
+{
+    axis2_woden_documentable_t documentable;
+    axis2_woden_property_element_t property_element;
+    axis2_woden_nested_component_t nested_component;
+};
+
+struct axis2_woden_property
+{
+    axis2_woden_property_base_t base;
+    axis2_woden_property_ops_t *ops;
+};
+
+AXIS2_DECLARE(axis2_woden_property_t *)
+axis2_woden_property_create(
+        axis2_env_t **env);
+
+
+/***************************Woden C Internal Methods***************************/
+AXIS2_DECLARE(axis2_woden_property_t *)
+axis2_woden_property_to_property_element(
+        void *property,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_property_t *)
+axis2_woden_property_to_nested_element(
+        void *property,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_property_t *)
+axis2_woden_property_to_documentable_element(
+        void *property,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_property_t *)
+axis2_woden_property_to_documentable(
+        void *property,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_property_t *)
+axis2_woden_property_to_wsdl_obj(
+        void *property,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_property_t *)
+axis2_woden_property_to_nested_component(
+        void *property,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_property_t *)
+axis2_woden_property_to_wsdl_component(
+        void *property,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_property_t *)
+axis2_woden_property_to_element_extensible(
+        void *property,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_property_t *)
+axis2_woden_property_to_attr_extensible(
+        void *property,
+        axis2_env_t **env);
+
+
+AXIS2_DECLARE(axis2_status_t)
+axis2_woden_property_resolve_methods(
+        axis2_woden_property_t *property,
+        axis2_env_t **env,
+        axis2_woden_property_t *property_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define AXIS2_WODEN_PROPERTY_FREE(property, env) \
+		(((axis2_woden_property_t *) property)->ops->free(property, env))
+
+#define AXIS2_WODEN_PROPERTY_TO_PROPERTY_FREE(property, env) \
+		(((axis2_woden_property_t *) property)->ops->to_property_free(property, env))
+
+#define AXIS2_WODEN_PROPERTY_SUPER_OBJS(property, env) \
+		(((axis2_woden_property_t *) property)->ops->super_objs(property, env))
+
+#define AXIS2_WODEN_PROPERTY_TYPE(property, env) \
+		(((axis2_woden_property_t *) property)->ops->type(property, env))
+
+#define AXIS2_WODEN_PROPERTY_GET_BASE_IMPL(property, env) \
+		(((axis2_woden_property_t *) property)->ops->get_base_impl(property, env))
+
+#define AXIS2_WODEN_PROPERTY_GET_REF(property, env) \
+		(((axis2_woden_property_t *) property)->\
+         get_ref(property, env))
+
+#define AXIS2_WODEN_PROPERTY_GET_VALUE_CONSTRAINT(property, env) \
+		(((axis2_woden_property_t *) property)->\
+         get_value_constraint(property, env))
+
+#define AXIS2_WODEN_PROPERTY_GET_VALUE(property, env) \
+		(((axis2_woden_property_t *) property)->\
+         get_value(property, env))
+
+#define AXIS2_WODEN_PROPERTY_GET_PARENT(property, env) \
+		(((axis2_woden_property_t *) property)->ops->\
+         get_parent(property, env))
+
+#define AXIS2_WODEN_PROPERTY_TO_ELEMENT(property, env) \
+		(((axis2_woden_property_t *) property)->ops->\
+         to_element(property, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_WODEN_PROPERTY_H */

Added: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_type_def.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_type_def.h?rev=406516&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_type_def.h (added)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_type_def.h Sun May 14 20:32:53 2006
@@ -0,0 +1,210 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_WODEN_TYPE_DEF_H
+#define AXIS2_WODEN_TYPE_DEF_H
+
+/**
+ * @file axis2_woden_type_def.h
+ * @brief Axis2 Type Definition Interface
+ * This class implements support for parsing, creating and manipulating a
+ * WSDL 2.0 &lt;wsdl:type_def&gt; XML element.
+ * The &lt;wsdl:type_def&gt; element may contain mixed content, but this 
+ * class does not attempt to understand that content. Instead it just wraps
+ * the &lt;wsdl:type_def&gt; element's content model as a void *. 
+ * 
+ */
+
+#include <woden/axis2_woden.h>
+#include <axis2_hash.h>
+#include <axis2_qname.h>
+#include <axis2_url.h>
+
+/** @defgroup axis2_woden_type_def Type Definition
+  * @ingroup axis2_wsdl
+  * @{
+  */
+
+typedef union axis2_woden_type_def_base axis2_woden_type_def_base_t;
+typedef struct axis2_woden_type_def axis2_woden_type_def_t;
+typedef struct axis2_woden_type_def_ops axis2_woden_type_def_ops_t;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct axis2_woden_type_def_ops
+{
+	/** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (void *type_def,
+            axis2_env_t **env);
+    
+    axis2_status_t (AXIS2_CALL *
+    to_type_def_free) (void *type_def,
+            axis2_env_t **env);
+
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (void *type_def,
+            axis2_env_t **env);
+    
+    axis2_woden_obj_types_t (AXIS2_CALL *
+    type) (void *type_def,
+            axis2_env_t **env);
+    /**
+     * @return the base implementation class
+     */
+    void *(AXIS2_CALL *
+    get_base_impl) (
+            void *type_def,
+            axis2_env_t **env);
+
+    axis2_status_t (AXIS2_CALL *
+    set_qname) (
+            void *type_def,
+            axis2_env_t **env,
+            axis2_qname_t *qname);
+
+    axis2_qname_t *(AXIS2_CALL *
+    get_qname) (
+            void *type_def,
+            axis2_env_t **env);
+
+    axis2_status_t (AXIS2_CALL *
+    set_system) (
+            void *type_def,
+            axis2_env_t **env,
+            axis2_url_t *type_system_uri);
+
+    axis2_url_t *(AXIS2_CALL *
+    get_system) (
+            void *type_def,
+            axis2_env_t **env);
+
+    axis2_status_t (AXIS2_CALL *
+    set_content_model) (
+            void *type_def,
+            axis2_env_t **env,
+            axis2_char_t *content_model);
+
+    axis2_char_t *(AXIS2_CALL *
+    get_content_model) (
+            void *type_def,
+            axis2_env_t **env);
+
+
+    axis2_status_t (AXIS2_CALL *
+    set_content) (
+            void *type_def,
+            axis2_env_t **env,
+            void *type_def_content);
+
+    void *(AXIS2_CALL *
+    get_content) (
+            void *type_def,
+            axis2_env_t **env);
+
+};
+
+struct axis2_woden_type_def
+{
+    axis2_woden_type_def_ops_t *ops;
+};
+
+AXIS2_DECLARE(axis2_woden_type_def_t *)
+axis2_woden_type_def_create(
+        axis2_env_t **env);
+
+/************************Woden C Internal Methods******************************/
+AXIS2_DECLARE(axis2_woden_type_def_t *)
+axis2_woden_type_def_to_type_def_element(
+        void *type_def,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_type_def_t *)
+axis2_woden_type_def_to_attr_extensible(
+        void *type_def,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_woden_type_def_t *)
+axis2_woden_type_def_to_element_extensible(
+        void *type_def,
+        axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_status_t)
+axis2_woden_type_def_resolve_methods(
+        axis2_woden_type_def_t *type_def,
+        axis2_env_t **env,
+        axis2_woden_type_def_t *type_def_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+
+#define AXIS2_WODEN_TYPE_DEF_FREE(type_def, env) \
+		(((axis2_woden_type_def_t *) type_def)->ops->free(type_def, env))
+
+#define AXIS2_WODEN_TYPE_DEF_SUPER_OBJS(type_def, env) \
+		(((axis2_woden_type_def_t *) type_def)->ops->\
+         super_objs(type_def, env))
+
+#define AXIS2_WODEN_TYPE_DEF_TYPE(type_def, env) \
+		(((axis2_woden_type_def_t *) type_def)->ops->type(type_def, env))
+
+#define AXIS2_WODEN_TYPE_DEF_GET_BASE_IMPL(type_def, env) \
+		(((axis2_woden_type_def_t *) type_def)->ops->\
+         get_base_impl(type_def, env))
+
+#define AXIS2_WODEN_TYPE_DEF_SET_QNAME(type_def, env, qname) \
+		(((axis2_woden_type_def_t *) type_def)->ops->\
+         set_qname(type_def, env, qname))
+
+#define AXIS2_WODEN_TYPE_DEF_GET_QNAME(type_def, env) \
+		(((axis2_woden_type_def_t *) type_def)->ops->\
+         get_qname(type_def, env))
+
+#define AXIS2_WODEN_TYPE_DEF_SET_SYSTEM(type_def, env, type_system_uri) \
+		(((axis2_woden_type_def_t *) type_def)->ops->\
+         set_system(type_def, env, type_system_uri))
+
+#define AXIS2_WODEN_TYPE_DEF_GET_SYSTEM(type_def, env) \
+		(((axis2_woden_type_def_t *) type_def)->ops->\
+         get_system(type_def, env))
+
+#define AXIS2_WODEN_TYPE_DEF_SET_CONTENT_MODEL(type_def, env, content_model) \
+		(((axis2_woden_type_def_t *) type_def)->ops->\
+         set_content_model(type_def, env, content_model))
+
+#define AXIS2_WODEN_TYPE_DEF_GET_CONTENT_MODEL(type_def, env) \
+		(((axis2_woden_type_def_t *) type_def)->ops->\
+         get_content_model(type_def, env))
+
+#define AXIS2_WODEN_TYPE_DEF_SET_CONTENT(type_def, env, type_def_content) \
+		(((axis2_woden_type_def_t *) type_def)->ops->\
+         set_content(type_def, env, type_def_content))
+
+#define AXIS2_WODEN_TYPE_DEF_GET_CONTENT(type_def, env) \
+		(((axis2_woden_type_def_t *) type_def)->ops->\
+         get_content(type_def, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_WODEN_TYPE_DEF_H */

Modified: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_types.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_types.h?rev=406516&r1=406515&r2=406516&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_types.h (original)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/axis2_woden_types.h Sun May 14 20:32:53 2006
@@ -70,6 +70,10 @@
     to_types_free) (void *types,
             axis2_env_t **env);
 
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (void *types,
+            axis2_env_t **env);
+
     axis2_woden_obj_types_t (AXIS2_CALL *
     type) (void *types,
             axis2_env_t **env);
@@ -248,6 +252,7 @@
 axis2_woden_types_resolve_methods(
         axis2_woden_types_t *types,
         axis2_env_t **env,
+        axis2_woden_types_t *types_impl,
         axis2_hash_t *methods);
 /************************End of Woden C Internal Methods***********************/
 
@@ -256,6 +261,9 @@
 
 #define AXIS2_WODEN_TYPES_TO_TYPES_FREE(types, env) \
 		(((axis2_woden_types_t *) types)->ops->to_types_free(types, env))
+
+#define AXIS2_WODEN_TYPES_SUPER_OBJS(types, env) \
+		(((axis2_woden_types_t *) types)->ops->super_objs(types, env))
 
 #define AXIS2_WODEN_TYPES_TYPE(types, env) \
 		(((axis2_woden_types_t *) types)->ops->type(types, env))

Modified: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_attr_extensible.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_attr_extensible.h?rev=406516&r1=406515&r2=406516&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_attr_extensible.h (original)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_attr_extensible.h Sun May 14 20:32:53 2006
@@ -65,6 +65,11 @@
             void *attr_extensible,
             axis2_env_t **env);
 
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (
+            void *attr_extensible,
+            axis2_env_t **env);
+    
     axis2_woden_obj_types_t (AXIS2_CALL *
     type) (
             void *attr_extensible,
@@ -119,6 +124,7 @@
 axis2_woden_attr_extensible_resolve_methods(
         axis2_woden_attr_extensible_t *extensible,
         axis2_env_t **env,
+        axis2_woden_attr_extensible_t *extensible_impl,
         axis2_hash_t *methods);
 
 #define AXIS2_WODEN_ATTR_EXTENSIBLE_FREE(extensible, env) \
@@ -128,6 +134,10 @@
 #define AXIS2_WODEN_ATTR_EXTENSIBLE_TO_ATTR_EXTENSIBLE_FREE(extensible, env) \
 		(((axis2_woden_attr_extensible_t *) extensible)->ops->\
          to_attr_extensible_free (extensible, env))
+
+#define AXIS2_WODEN_ATTR_EXTENSIBLE_SUPER_OBJS(extensible, env) \
+		(((axis2_woden_attr_extensible_t *) extensible)->ops->\
+         super_objs (extensible, env))
 
 #define AXIS2_WODEN_ATTR_EXTENSIBLE_TYPE(extensible, env) \
 		(((axis2_woden_attr_extensible_t *) extensible)->ops->\

Modified: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_element_extensible.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_element_extensible.h?rev=406516&r1=406515&r2=406516&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_element_extensible.h (original)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/extensions/axis2_woden_element_extensible.h Sun May 14 20:32:53 2006
@@ -67,6 +67,12 @@
             element_extensible,
             axis2_env_t **env);
     
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (
+            void *
+            element_extensible,
+            axis2_env_t **env);
+    
     axis2_woden_obj_types_t (AXIS2_CALL *
     type) (
             void *element_extensible,
@@ -119,6 +125,7 @@
 axis2_woden_element_extensible_resolve_methods(
         axis2_woden_element_extensible_t *extensible,
         axis2_env_t **env,
+        axis2_woden_element_extensible_t *extensible_impl,
         axis2_hash_t *methods);
 
 #define AXIS2_WODEN_ELEMENT_EXTENSIBLE_FREE(extensible, env) \
@@ -129,6 +136,10 @@
         env) \
 		(((axis2_woden_element_extensible_t *) extensible)->ops->\
          to_element_extensible_free (extensible, env))
+
+#define AXIS2_WODEN_ELEMENT_EXTENSIBLE_SUPER_OBJS(extensible, env) \
+		(((axis2_woden_element_extensible_t *) extensible)->ops->\
+         super_objs (extensible, env))
 
 #define AXIS2_WODEN_ELEMENT_EXTENSIBLE_TYPE(extensible, env) \
 		(((axis2_woden_element_extensible_t *) extensible)->ops->\

Added: webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_binding_element.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_binding_element.h?rev=406516&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_binding_element.h (added)
+++ webservices/axis2/trunk/c/modules/wsdl/woden/include/woden/wsdl20/xml/axis2_woden_binding_element.h Sun May 14 20:32:53 2006
@@ -0,0 +1,254 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_WODEN_BINDING_ELEMENT_H
+#define AXIS2_WODEN_BINDING_ELEMENT_H
+
+/**
+ * @file axis2_woden_binding_element.h
+ * @brief Axis2 Binding Element Binding
+ * This interface represents a WSDL &lt;binding&gt; element. 
+ */
+
+#include <axis2_allocator.h>
+#include <axis2_env.h>
+#include <axis2_error.h>
+#include <axis2_string.h>
+#include <axis2_const.h>
+#include <axis2_hash.h>
+#include <axis2_qname.h>
+#include <axis2_url.h>
+#include <axis2_array_list.h>
+#include <woden/axis2_woden.h>
+#include <woden/wsdl20/xml/axis2_woden_documentable_element.h>
+#include <woden/wsdl20/xml/axis2_woden_configurable_element.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct axis2_woden_binding_element axis2_woden_binding_element_t;
+typedef struct axis2_woden_binding_element_ops axis2_woden_binding_element_ops_t;
+typedef union axis2_woden_binding_element_base axis2_woden_binding_element_base_t;
+
+/** @defgroup axis2_woden_binding_element Binding Element
+  * @ingroup axis2_binding
+  * @{
+  */
+
+struct axis2_woden_binding_element_ops
+{
+	/** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *binding_element,
+            axis2_env_t **env);
+ 
+    axis2_status_t (AXIS2_CALL *
+    to_binding_element_free) (
+            void *binding_element,
+            axis2_env_t **env);
+    
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (
+            void *binding_element,
+            axis2_env_t **env);
+ 
+    axis2_woden_obj_types_t (AXIS2_CALL *
+    type) (
+            void *binding_element,
+            axis2_env_t **env);
+
+    /**
+     * Set the QName that represents the <tt>name</tt> attribute of the  
+     * &lt;binding&gt; element. 
+     * 
+     * @param qname the QName that identifies the binding.
+     */
+    axis2_status_t (AXIS2_CALL *
+    set_qname) (
+            void *binding_element,
+            axis2_env_t **env,
+            axis2_qname_t *qname);
+
+    axis2_qname_t *(AXIS2_CALL *
+    get_qname) (
+            void *binding_element,
+            axis2_env_t **env); 
+ 
+    /**
+     * Set the QName that represents the <tt>interface</tt> attribute of the 
+     * &lt;binding&gt; element. This associates the binding with an interface.
+     * 
+     * @param qname the QName that identifies interface for this binding
+     */
+    axis2_status_t (AXIS2_CALL *
+    set_interface_qname) (
+            void *binding_element,
+            axis2_env_t **env,
+            axis2_qname_t *qname);
+
+    axis2_qname_t *(AXIS2_CALL *
+    get_interface_qname) (
+            void *binding_element,
+            axis2_env_t **env); 
+
+    /**
+     * Get the Interface Element identified by the QName specified in the
+     * <tt>interface</tt> attribute of this &lt;binding&gt; element.
+     * 
+     * @return Interface Element the interface associated with this binding
+     */
+    void *(AXIS2_CALL *
+    get_interface_element) (
+            void *binding_element,
+            axis2_env_t **env);
+  
+    /**
+     * Set the URI that represents the <tt>type</tt> attribute of the 
+     * &lt;binding&gt; element. This indicates the type of concrete binding
+     * extensions contained within this binding.
+     * 
+     * @param URI the URI indicating the concrete binding
+     */
+    axis2_status_t (AXIS2_CALL *
+    set_type) (
+            void *binding_element,
+            axis2_env_t **env,
+            axis2_url_t *type);
+
+    axis2_url_t *(AXIS2_CALL *
+    get_type) (
+            void *binding_element,
+            axis2_env_t **env); 
+  
+    axis2_status_t (AXIS2_CALL *
+    add_binding_fault_element) (
+            void *binding_element,
+            axis2_env_t **env,
+            void *fault);
+
+    axis2_array_list_t *(AXIS2_CALL *
+    get_binding_fault_elements) (
+            void *binding_element,
+            axis2_env_t **env);
+ 
+    axis2_status_t (AXIS2_CALL *
+    add_binding_op_element) (
+            void *binding_element,
+            axis2_env_t **env,
+            void *op);
+
+    axis2_array_list_t *(AXIS2_CALL *
+    get_binding_op_elements) (
+            void *binding_element,
+            axis2_env_t **env);
+
+};
+
+union axis2_woden_binding_element_base
+{
+    axis2_woden_documentable_element_t documentable_element;
+    axis2_woden_configurable_element_t configurable_element;
+};
+
+struct axis2_woden_binding_element
+{
+    axis2_woden_binding_element_base_t base;
+    axis2_woden_binding_element_ops_t *ops;
+};
+
+AXIS2_DECLARE(axis2_woden_binding_element_t *)
+axis2_woden_binding_element_create(
+        axis2_env_t **env);
+
+/************************Woden C Internal Methods******************************/
+AXIS2_DECLARE(axis2_status_t)
+axis2_woden_binding_element_resolve_methods(
+        axis2_woden_binding_element_t *binding_element,
+        axis2_env_t **env,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define AXIS2_WODEN_BINDING_ELEMENT_FREE(binding_element, env) \
+		(((axis2_woden_binding_element_t *) binding_element)->ops->\
+         free (binding_element, env))
+
+#define AXIS2_WODEN_BINDING_ELEMENT_TO_BINDING_ELEMENT_FREE(binding_element, env) \
+		(((axis2_woden_binding_element_t *) binding_element)->ops->\
+         to_binding_element_free (binding_element, env))
+
+#define AXIS2_WODEN_BINDING_ELEMENT_SUPER_OBJS(binding_element, env) \
+		(((axis2_woden_binding_element_t *) binding_element)->ops->\
+         super_objs (binding_element, env))
+
+#define AXIS2_WODEN_BINDING_ELEMENT_TYPE(binding_element, env) \
+		(((axis2_woden_binding_element_t *) binding_element)->ops->\
+         type (binding_element, env))
+
+#define AXIS2_WODEN_BINDING_ELEMENT_SET_QNAME(binding_element, env, qname) \
+		(((axis2_woden_binding_element_t *) binding_element)->ops->\
+         set_qname (binding_element, env, qname))
+
+#define AXIS2_WODEN_BINDING_ELEMENT_GET_QNAME(binding_element, env) \
+		(((axis2_woden_binding_element_t *) binding_element)->ops->\
+        get_qname  (binding_element, env))
+
+#define AXIS2_WODEN_BINDING_ELEMENT_SET_INTERFACE_QNAME(binding_element, env, qname) \
+		(((axis2_woden_binding_element_t *) binding_element)->ops->\
+         set_interface_qname (binding_element, env, qname))
+
+#define AXIS2_WODEN_BINDING_ELEMENT_GET_INTERFACE_QNAME(binding_element, env) \
+		(((axis2_woden_binding_element_t *) binding_element)->ops->\
+         get_interface_qname (binding_element, env))
+
+#define AXIS2_WODEN_BINDING_ELEMENT_GET_INTERFACE_ELEMENT(binding_element, env) \
+		(((axis2_woden_binding_element_t *) binding_element)->ops->\
+        get_interface_element  (binding_element, env))
+
+#define AXIS2_WODEN_BINDING_ELEMENT_SET_TYPE(binding_element, env, type) \
+		(((axis2_woden_binding_element_t *) binding_element)->ops->\
+         set_type (binding_element, env, type))
+
+#define AXIS2_WODEN_BINDING_ELEMENT_GET_TYPE(binding_element, env) \
+		(((axis2_woden_binding_element_t *) binding_element)->ops->\
+        get_type  (binding_element, env))
+
+#define AXIS2_WODEN_BINDING_ELEMENT_ADD_BINDING_FAULT_ELEMENT(binding_element, env, fault) \
+		(((axis2_woden_binding_element_t *) binding_element)->ops->\
+        add_binding_fault_element  (binding_element, env, fault))
+
+#define AXIS2_WODEN_BINDING_ELEMENT_GET_BINDING_FAULT_ELEMENTS(binding_element, env) \
+		(((axis2_woden_binding_element_t *) binding_element)->ops->\
+        get_binding_fault_elements  (binding_element, env))
+
+#define AXIS2_WODEN_BINDING_ELEMENT_ADD_BINDING_OP_ELEMENT(binding_element, env, op) \
+		(((axis2_woden_binding_element_t *) binding_element)->ops->\
+         add_binding_op_element (binding_element, env, op))
+
+#define AXIS2_WODEN_BINDING_ELEMENT_GET_BINDING_OP_ELEMENTS(binding_element, env) \
+		(((axis2_woden_binding_element_t *) binding_element)->ops->\
+         get_binding_op_elements (binding_element, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_WODEN_BINDING_ELEMENT_H */