You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by da...@apache.org on 2006/07/06 08:02:31 UTC

svn commit: r419452 [10/46] - in /webservices/axis2/trunk/c/woden: ./ include/ samples/ samples/wsdl10/ src/ src/builder/ src/builder/wsdl10/ src/schema/ src/types/ src/util/ src/wsdl/ src/wsdl/enumeration/ src/wsdl10/ src/wsdl10/enumeration/ src/wsdl1...

Added: webservices/axis2/trunk/c/woden/include/woden_wsdl10_soap_header_block_element.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_wsdl10_soap_header_block_element.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_wsdl10_soap_header_block_element.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_wsdl10_soap_header_block_element.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,211 @@
+/*
+ * 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 WODEN_WSDL10_SOAP_HEADER_BLOCK_ELEMENT_H
+#define WODEN_WSDL10_SOAP_HEADER_BLOCK_ELEMENT_H
+
+/**
+ * @file woden_wsdl10_soap_header_block_element.h
+ * @brief Axis2 Soap Header Block Element Soap Header Block
+ * This interface represents the <wsoap:header> extension element that 
+ * can appear within a Binding Fault or Binding Message Reference.
+ */
+
+#include <axis2_allocator.h>
+#include <axis2_env.h>
+#include <axis2_error.h>
+#include <axis2_string.h>
+#include <axis2_utils.h>
+#include <axis2_hash.h>
+#include <axis2_qname.h>
+#include <axis2_uri.h>
+#include <axis2_array_list.h>
+#include <woden.h>
+#include <woden_ext_element.h>
+#include <woden_attr_extensible.h>
+#include <woden_element_extensible.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct woden_wsdl10_soap_header_block_element woden_wsdl10_soap_header_block_element_t;
+typedef struct woden_wsdl10_soap_header_block_element_ops woden_wsdl10_soap_header_block_element_ops_t;
+typedef union woden_wsdl10_soap_header_block_element_base woden_wsdl10_soap_header_block_element_base_t;
+
+/** @defgroup woden_wsdl10_soap_header_block_element Soap Header Block Element
+  * @ingroup axiom_soap_header_block
+  * @{
+  */
+
+struct woden_wsdl10_soap_header_block_element_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *soap_header_block_element,
+            const axis2_env_t *env);
+ 
+    woden_obj_types_t (AXIS2_CALL *
+    type) (
+            void *soap_header_block_element,
+            const axis2_env_t *env);
+
+    /**
+     * Set the QName that identifies the Schema element declaration
+     * relating to this soap header.
+     * 
+     * @param qname the QName that identifies a Schema element declaration
+     */
+    axis2_status_t (AXIS2_CALL *
+    set_element_qname) (
+            void *soap_header_block_element,
+            const axis2_env_t *env,
+            axis2_qname_t *qname);
+
+    axis2_qname_t *(AXIS2_CALL *
+    get_element_qname) (
+            void *soap_header_block_element,
+            const axis2_env_t *env); 
+ 
+    /**
+     * Returns the Schema element declaration identified by the QName in the 'element' 
+     * attribute of the &lt;wsoap:header&gt; element. 
+     * If this QName does not resolve to an element declaration in a schema that is visible 
+     * to the containing WSDL description, null will be returned by this method. 
+     * To be visible, the Schema must have been correctly imported or inlined within 
+     * the &lt;types&gt; element.
+     * 
+     * @return the Xml Schema Element identified by the 'element' attribute
+     */
+    void *(AXIS2_CALL *
+    get_element) (
+            void *soap_header_block_element,
+            const axis2_env_t *env);
+
+    axis2_status_t (AXIS2_CALL *
+    set_must_understand) (
+            void *soap_header_block_element,
+            const axis2_env_t *env,
+            axis2_bool_t understood); 
+
+    axis2_bool_t (AXIS2_CALL *
+    must_understand) (
+            void *soap_header_block_element,
+            const axis2_env_t *env);
+  
+    axis2_status_t (AXIS2_CALL *
+    set_parent_element) (
+            void *soap_header_block_element,
+            const axis2_env_t *env,
+            void *wsdl_el);
+
+    void *(AXIS2_CALL *
+    get_parent_element) (
+            void *soap_header_block_element,
+            const axis2_env_t *env); 
+  
+    axis2_status_t (AXIS2_CALL *
+    add_documentation_element) (
+            void *soap_header_block_element,
+            const axis2_env_t *env,
+            void *doc_el);
+
+    axis2_array_list_t *(AXIS2_CALL *
+    get_documentation_elements) (
+            void *soap_header_block_element,
+            const axis2_env_t *env);
+ 
+};
+
+union woden_wsdl10_soap_header_block_element_base
+{
+    woden_ext_element_t ext_element;
+    woden_attr_extensible_t attr_extensible;
+    woden_element_extensible_t element_extensible;
+};
+
+struct woden_wsdl10_soap_header_block_element
+{
+    woden_wsdl10_soap_header_block_element_base_t base;
+    woden_wsdl10_soap_header_block_element_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_wsdl10_soap_header_block_element_t * AXIS2_CALL
+woden_wsdl10_soap_header_block_element_create(
+        const axis2_env_t *env);
+
+/************************Woden C Internal Methods******************************/
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_wsdl10_soap_header_block_element_resolve_methods(
+        woden_wsdl10_soap_header_block_element_t *soap_header_block_element,
+        const axis2_env_t *env,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_WSDL10_SOAP_HEADER_BLOCK_ELEMENT_FREE(soap_header_block_element, env) \
+      (((woden_wsdl10_soap_header_block_element_t *) soap_header_block_element)->ops->\
+         free (soap_header_block_element, env))
+
+#define WODEN_WSDL10_SOAP_HEADER_BLOCK_ELEMENT_TYPE(soap_header_block_element, env) \
+      (((woden_wsdl10_soap_header_block_element_t *) soap_header_block_element)->ops->\
+         type (soap_header_block_element, env))
+
+#define WODEN_WSDL10_SOAP_HEADER_BLOCK_ELEMENT_SET_ELEMENT_QNAME(soap_header_block_element, env, qname) \
+      (((woden_wsdl10_soap_header_block_element_t *) soap_header_block_element)->ops->\
+         set_element_qname (soap_header_block_element, env, qname))
+
+#define WODEN_WSDL10_SOAP_HEADER_BLOCK_ELEMENT_GET_ELEMENT_QNAME(soap_header_block_element, env) \
+      (((woden_wsdl10_soap_header_block_element_t *) soap_header_block_element)->ops->\
+        get_element_qname  (soap_header_block_element, env))
+
+#define WODEN_WSDL10_SOAP_HEADER_BLOCK_ELEMENT_GET_ELEMENT(soap_header_block_element, env) \
+      (((woden_wsdl10_soap_header_block_element_t *) soap_header_block_element)->ops->\
+         get_element (soap_header_block_element, env))
+
+#define WODEN_WSDL10_SOAP_HEADER_BLOCK_ELEMENT_SET_MUST_UNDERSTAND(soap_header_block_element, env, understood) \
+      (((woden_wsdl10_soap_header_block_element_t *) soap_header_block_element)->ops->\
+         set_must_understand (soap_header_block_element, env, understood))
+
+#define WODEN_WSDL10_SOAP_HEADER_BLOCK_ELEMENT_MUST_UNDERSTAND(soap_header_block_element, env) \
+      (((woden_wsdl10_soap_header_block_element_t *) soap_header_block_element)->ops->\
+        must_understand  (soap_header_block_element, env))
+
+#define WODEN_WSDL10_SOAP_HEADER_BLOCK_ELEMENT_SET_PARENT_ELEMENT(soap_header_block_element, env, wsdl_el) \
+      (((woden_wsdl10_soap_header_block_element_t *) soap_header_block_element)->ops->\
+         set_parent_element (soap_header_block_element, env, wsdl_el))
+
+#define WODEN_WSDL10_SOAP_HEADER_BLOCK_ELEMENT_GET_PARENT_ELEMENT(soap_header_block_element, env) \
+      (((woden_wsdl10_soap_header_block_element_t *) soap_header_block_element)->ops->\
+        get_parent_element  (soap_header_block_element, env))
+
+#define WODEN_WSDL10_SOAP_HEADER_BLOCK_ELEMENT_ADD_DOCUMENTATION_ELEMENT(soap_header_block_element, env, doc_el) \
+      (((woden_wsdl10_soap_header_block_element_t *) soap_header_block_element)->ops->\
+        add_documentation_element  (soap_header_block_element, env, doc_el))
+
+#define WODEN_WSDL10_SOAP_HEADER_BLOCK_ELEMENT_GET_DOCUMENTATION_ELEMENTS(soap_header_block_element, env) \
+      (((woden_wsdl10_soap_header_block_element_t *) soap_header_block_element)->ops->\
+        get_documentation_elements  (soap_header_block_element, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_WSDL10_SOAP_HEADER_BLOCK_ELEMENT_H */

Added: webservices/axis2/trunk/c/woden/include/woden_wsdl10_soap_module.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_wsdl10_soap_module.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_wsdl10_soap_module.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_wsdl10_soap_module.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,170 @@
+/*
+ * 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 WODEN_WSDL10_SOAP_MODULE_H
+#define WODEN_WSDL10_SOAP_MODULE_H
+
+/**
+ * @file woden_wsdl10_soap_module.h
+ * @brief Axis2 Soap Module Interface
+ * This interface represents the &lt;wsoap:header&gt; extension element that 
+ * can appear within a Binding Fault or Binding Message Reference.
+ * 
+ */
+
+#include <woden.h>
+#include <woden_wsdl10_soap_module_element.h>
+
+/** @defgroup woden_wsdl10_soap_module Soap Module
+  * @ingroup woden
+  * @{
+  */
+
+typedef union woden_wsdl10_soap_module_base woden_wsdl10_soap_module_base_t;
+typedef struct woden_wsdl10_soap_module woden_wsdl10_soap_module_t;
+typedef struct woden_wsdl10_soap_module_ops woden_wsdl10_soap_module_ops_t;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct woden_wsdl10_soap_module_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL * 
+    free) (
+            void *module,
+            const axis2_env_t *env);
+
+    axis2_hash_t *(AXIS2_CALL * 
+    super_objs) (
+            void *module,
+            const axis2_env_t *env);
+
+    woden_obj_types_t (AXIS2_CALL * 
+    type) (
+            void *module,
+            const axis2_env_t *env);
+
+    struct woden_component_exts *(AXIS2_CALL *
+    get_base_impl) (
+            void *module,
+            const axis2_env_t *env);
+
+
+    /* ***********************************************************************
+     *  Component model methods (SOAPHeaderBlock interface), some shared with Element model
+     * ***********************************************************************/
+
+    axis2_uri_t *(AXIS2_CALL *
+    get_ref) (
+            void *module,
+            axis2_env_t *env);
+
+    axis2_bool_t (AXIS2_CALL * 
+    is_required) (
+            void *module,
+            axis2_env_t *env);
+
+    void *(AXIS2_CALL *
+    get_parent) (
+            void *module,
+            axis2_env_t *env);
+
+    void *(AXIS2_CALL *
+    to_element) (
+            void *module,
+            axis2_env_t *env);
+
+};
+
+struct woden_wsdl10_soap_module
+{
+    woden_wsdl10_soap_module_element_t module_element;
+    woden_wsdl10_soap_module_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_wsdl10_soap_module_t * AXIS2_CALL
+woden_wsdl10_soap_module_create(
+        const axis2_env_t *env);
+
+
+/***************************Woden C Internal Methods***************************/
+AXIS2_EXTERN woden_wsdl10_soap_module_t * AXIS2_CALL
+woden_wsdl10_soap_module_to_soap_module_element(
+        void *module,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_soap_module_t * AXIS2_CALL
+woden_wsdl10_soap_module_to_ext_element(
+        void *module,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_soap_module_t * AXIS2_CALL
+woden_wsdl10_soap_module_to_attr_extensible(
+        void *module,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_soap_module_t * AXIS2_CALL
+woden_wsdl10_soap_module_to_element_extensible(
+        void *module,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_wsdl10_soap_module_resolve_methods(
+        woden_wsdl10_soap_module_t *soap_module,
+        const axis2_env_t *env,
+        woden_wsdl10_soap_module_t *soap_module_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_WSDL10_SOAP_MODULE_FREE(soap_module, env) \
+      (((woden_wsdl10_soap_module_t *) soap_module)->ops->free(soap_module, env))
+
+#define WODEN_WSDL10_SOAP_MODULE_SUPER_OBJS(soap_module, env) \
+      (((woden_wsdl10_soap_module_t *) soap_module)->ops->super_objs(soap_module, env))
+
+#define WODEN_WSDL10_SOAP_MODULE_TYPE(soap_module, env) \
+      (((woden_wsdl10_soap_module_t *) soap_module)->ops->type(soap_module, env))
+
+#define WODEN_WSDL10_SOAP_MODULE_GET_BASE_IMPL(soap_module, env) \
+      (((woden_wsdl10_soap_module_t *) soap_module)->ops->get_base_impl(soap_module, env))
+
+#define WODEN_WSDL10_SOAP_MODULE_GET_REF(soap_module, env) \
+      (((woden_wsdl10_soap_module_t *) soap_module)->\
+        get_ref (soap_module, env))
+
+#define WODEN_WSDL10_SOAP_MODULE_IS_REQUIRED(soap_module, env) \
+      (((woden_wsdl10_soap_module_t *) soap_module)->\
+        is_required (soap_module, env))
+
+#define WODEN_WSDL10_SOAP_MODULE_GET_PARENT(soap_module, env) \
+      (((woden_wsdl10_soap_module_t *) soap_module)->\
+        get_parent (soap_module, env))
+
+#define WODEN_WSDL10_SOAP_MODULE_TO_ELEMENT(soap_module, env) \
+      (((woden_wsdl10_soap_module_t *) soap_module)->\
+        to_element (soap_module, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_WSDL10_SOAP_MODULE_H */

Added: webservices/axis2/trunk/c/woden/include/woden_wsdl10_soap_module_deserializer.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_wsdl10_soap_module_deserializer.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_wsdl10_soap_module_deserializer.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_wsdl10_soap_module_deserializer.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,135 @@
+/*
+ * 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 WODEN_WSDL10_SOAP_MODULE_DESERIALIZER_H
+#define WODEN_WSDL10_SOAP_MODULE_DESERIALIZER_H
+
+/**
+ * @file woden_wsdl10_soap_module_deserializer.h
+ * @brief Axis2 Soap Module Deserializer Soap Module Deserializer
+ * Deserializes the &lt;wsoap:module&gt; extension element into a 
+ * soap_module_element.
+ * 
+ */
+
+#include <woden.h>
+#include <woden_ext_deserializer.h>
+#include <woden_ext_registry.h>
+#include <axiom_node.h>
+#include <axis2_qname.h>
+
+/** @defgroup woden_wsdl10_soap_module_deserializer Soap Module Deserializer
+  * @ingroup woden
+  * @{
+  */
+
+typedef struct woden_wsdl10_soap_module_deserializer 
+        woden_wsdl10_soap_module_deserializer_t;
+typedef struct woden_wsdl10_soap_module_deserializer_ops 
+        woden_wsdl10_soap_module_deserializer_ops_t;
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct woden_wsdl10_soap_module_deserializer_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (void *mod_deser,
+            const axis2_env_t *env);
+
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (void *mod_deser,
+            const axis2_env_t *env);
+
+    woden_obj_types_t (AXIS2_CALL *
+    type) (void *mod_deser,
+            const axis2_env_t *env);
+    /**
+     * @return the base implementation class
+     */
+    struct woden_ext_deserializer *(AXIS2_CALL *
+    get_base_impl) (
+            void *mod_deser,
+            const axis2_env_t *env);
+
+    void *(AXIS2_CALL *
+    unmarshall) (
+            void *mod_deser,
+            const axis2_env_t *env,
+            axis2_char_t *parent_type,
+            void *parent,
+            axis2_qname_t *element_type,
+            axiom_node_t *el_node,
+            void *desc,
+            woden_ext_registry_t *ext_reg);
+
+};
+
+struct woden_wsdl10_soap_module_deserializer
+{
+    woden_ext_deserializer_t ext_deserializer;
+    woden_wsdl10_soap_module_deserializer_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_wsdl10_soap_module_deserializer_t * AXIS2_CALL
+woden_wsdl10_soap_module_deserializer_create(
+        const axis2_env_t *env);
+
+
+/***************************Woden C Internal Methods***************************/
+AXIS2_EXTERN woden_wsdl10_soap_module_deserializer_t * AXIS2_CALL
+woden_wsdl10_soap_module_deserializer_to_ext_deserializer(
+        void *mod_deser,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_wsdl10_soap_module_deserializer_resolve_methods(
+        woden_wsdl10_soap_module_deserializer_t *mod_deser,
+        const axis2_env_t *env,
+        woden_wsdl10_soap_module_deserializer_t *mod_deser_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_WSDL10_SOAP_MODULE_DESERIALIZER_FREE(mod_deser, env) \
+      (((woden_wsdl10_soap_module_deserializer_t *) mod_deser)->ops->free(mod_deser, env))
+
+#define WODEN_WSDL10_SOAP_MODULE_DESERIALIZER_SUPER_OBJS(mod_deser, env) \
+      (((woden_wsdl10_soap_module_deserializer_t *) mod_deser)->ops->super_objs(mod_deser, env))
+
+#define WODEN_WSDL10_SOAP_MODULE_DESERIALIZER_TYPE(mod_deser, env) \
+      (((woden_wsdl10_soap_module_deserializer_t *) mod_deser)->ops->type(mod_deser, env))
+
+#define WODEN_WSDL10_SOAP_MODULE_DESERIALIZER_GET_BASE_IMPL(mod_deser, env) \
+      (((woden_wsdl10_soap_module_deserializer_t *) mod_deser)->ops->get_base_impl(mod_deser, env))
+
+#define WODEN_WSDL10_SOAP_MODULE_DESERIALIZER_UNMARSHALL(mod_deser, env, \
+        parent_type, parent, element_type, el_node, desc, ext_reg) \
+      (((woden_wsdl10_soap_module_deserializer_t *) mod_deser)->\
+         unmarshall(mod_deser, env, parent_type, parent, element_type, el_node, \
+             desc, ext_reg))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_WSDL10_SOAP_MODULE_DESERIALIZER_H */

Added: webservices/axis2/trunk/c/woden/include/woden_wsdl10_soap_module_element.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_wsdl10_soap_module_element.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_wsdl10_soap_module_element.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_wsdl10_soap_module_element.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,168 @@
+/*
+ * 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 WODEN_WSDL10_SOAP_MODULE_ELEMENT_H
+#define WODEN_WSDL10_SOAP_MODULE_ELEMENT_H
+
+/**
+ * @file woden_wsdl10_soap_module_element.h
+ * @brief Axis2 Soap Module Element Soap Module
+ * This interface represents the &lt;wsoap:module&gt; extension element that 
+ * can appear within a Binding, Binding Fault, Binding Operation, Binding
+ * Fault Reference or Binding Message Reference.
+ */
+
+#include <axis2_allocator.h>
+#include <axis2_env.h>
+#include <axis2_error.h>
+#include <axis2_string.h>
+#include <axis2_utils.h>
+#include <axis2_hash.h>
+#include <axis2_qname.h>
+#include <axis2_uri.h>
+#include <axis2_array_list.h>
+#include <woden.h>
+#include <woden_ext_element.h>
+#include <woden_attr_extensible.h>
+#include <woden_element_extensible.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct woden_wsdl10_soap_module_element woden_wsdl10_soap_module_element_t;
+typedef struct woden_wsdl10_soap_module_element_ops woden_wsdl10_soap_module_element_ops_t;
+typedef union woden_wsdl10_soap_module_element_base woden_wsdl10_soap_module_element_base_t;
+
+/** @defgroup woden_wsdl10_soap_module_element Soap Module Element
+  * @ingroup axiom_soap_module
+  * @{
+  */
+
+struct woden_wsdl10_soap_module_element_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *soap_module_element,
+            const axis2_env_t *env);
+ 
+    woden_obj_types_t (AXIS2_CALL *
+    type) (
+            void *soap_module_element,
+            const axis2_env_t *env);
+
+    axis2_status_t (AXIS2_CALL *
+    set_ref) (
+            void *soap_module_element,
+            const axis2_env_t *env,
+            axis2_uri_t *uri);
+
+    axis2_uri_t *(AXIS2_CALL *
+    get_ref) (
+            void *soap_module_element,
+            const axis2_env_t *env); 
+ 
+    axis2_status_t (AXIS2_CALL *
+    set_parent_element) (
+            void *soap_module_element,
+            const axis2_env_t *env,
+            void *wsdl_el);
+
+    void *(AXIS2_CALL *
+    get_parent_element) (
+            void *soap_module_element,
+            const axis2_env_t *env); 
+  
+    axis2_status_t (AXIS2_CALL *
+    add_documentation_element) (
+            void *soap_module_element,
+            const axis2_env_t *env,
+            void *doc_el);
+
+    axis2_array_list_t *(AXIS2_CALL *
+    get_documentation_elements) (
+            void *soap_module_element,
+            const axis2_env_t *env);
+ 
+};
+
+union woden_wsdl10_soap_module_element_base
+{
+    woden_ext_element_t ext_element;
+    woden_attr_extensible_t attr_extensible;
+    woden_element_extensible_t element_extensible;
+};
+
+struct woden_wsdl10_soap_module_element
+{
+    woden_wsdl10_soap_module_element_base_t base;
+    woden_wsdl10_soap_module_element_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_wsdl10_soap_module_element_t * AXIS2_CALL
+woden_wsdl10_soap_module_element_create(
+        const axis2_env_t *env);
+
+/************************Woden C Internal Methods******************************/
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_wsdl10_soap_module_element_resolve_methods(
+        woden_wsdl10_soap_module_element_t *soap_module_element,
+        const axis2_env_t *env,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_WSDL10_SOAP_MODULE_ELEMENT_FREE(soap_module_element, env) \
+      (((woden_wsdl10_soap_module_element_t *) soap_module_element)->ops->\
+         free (soap_module_element, env))
+
+#define WODEN_WSDL10_SOAP_MODULE_ELEMENT_TYPE(soap_module_element, env) \
+      (((woden_wsdl10_soap_module_element_t *) soap_module_element)->ops->\
+         type (soap_module_element, env))
+
+#define WODEN_WSDL10_SOAP_MODULE_ELEMENT_SET_REF(soap_module_element, env, uri) \
+      (((woden_wsdl10_soap_module_element_t *) soap_module_element)->ops->\
+         set_ref (soap_module_element, env, uri))
+
+#define WODEN_WSDL10_SOAP_MODULE_ELEMENT_GET_REF(soap_module_element, env) \
+      (((woden_wsdl10_soap_module_element_t *) soap_module_element)->ops->\
+        get_ref  (soap_module_element, env))
+
+#define WODEN_WSDL10_SOAP_MODULE_ELEMENT_SET_PARENT_ELEMENT(soap_module_element, env, wsdl_el) \
+      (((woden_wsdl10_soap_module_element_t *) soap_module_element)->ops->\
+         set_parent_element (soap_module_element, env, wsdl_el))
+
+#define WODEN_WSDL10_SOAP_MODULE_ELEMENT_GET_PARENT_ELEMENT(soap_module_element, env) \
+      (((woden_wsdl10_soap_module_element_t *) soap_module_element)->ops->\
+        get_parent_element  (soap_module_element, env))
+
+#define WODEN_WSDL10_SOAP_MODULE_ELEMENT_ADD_DOCUMENTATION_ELEMENT(soap_module_element, env, doc_el) \
+      (((woden_wsdl10_soap_module_element_t *) soap_module_element)->ops->\
+        add_documentation_element  (soap_module_element, env, doc_el))
+
+#define WODEN_WSDL10_SOAP_MODULE_ELEMENT_GET_DOCUMENTATION_ELEMENTS(soap_module_element, env) \
+      (((woden_wsdl10_soap_module_element_t *) soap_module_element)->ops->\
+        get_documentation_elements  (soap_module_element, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_WSDL10_SOAP_MODULE_ELEMENT_H */

Added: webservices/axis2/trunk/c/woden/include/woden_wsdl10_svc.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_wsdl10_svc.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_wsdl10_svc.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_wsdl10_svc.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,212 @@
+/*
+ * 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 WODEN_WSDL10_SVC_H
+#define WODEN_WSDL10_SVC_H
+
+/**
+ * @file woden_wsdl10_svc.h
+ * @brief Axis2 Service Interface
+ * This class represents the Service component and the 
+ * &lt;service&gt; element.
+ * 
+ */
+
+#include <woden.h>
+#include <woden_wsdl10_svc_element.h>
+#include <woden_wsdl_obj.h>
+#include <woden_configurable.h>
+#include <woden_configurable_component.h>
+#include <woden_nc_name.h>
+
+/** @defgroup woden_wsdl10_svc Service
+  * @ingroup woden
+  * @{
+  */
+
+typedef union woden_wsdl10_svc_base woden_wsdl10_svc_base_t;
+typedef struct woden_wsdl10_svc woden_wsdl10_svc_t;
+typedef struct woden_wsdl10_svc_ops woden_wsdl10_svc_ops_t;
+struct woden_documentation_element;
+struct woden_wsdl_component;
+struct woden_documentable;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct woden_wsdl10_svc_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (void *svc,
+            const axis2_env_t *env);
+
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (void *svc,
+            const axis2_env_t *env);
+
+    woden_obj_types_t (AXIS2_CALL *
+    type) (void *svc,
+            const axis2_env_t *env);
+    /**
+     * @return the base implementation class
+     */
+    struct woden_configurable *(AXIS2_CALL *
+    get_base_impl) (
+            void *svc,
+            const axis2_env_t *env);
+    /* ************************************************************
+     *  Service interface methods (the WSDL Component model)
+     * ************************************************************/
+
+    axis2_qname_t *(AXIS2_CALL *
+    get_qname) (
+            void *svc,
+            const axis2_env_t *env);
+
+    void *(AXIS2_CALL *
+    get_interface) (
+            void *svc,
+            const axis2_env_t *env);
+
+    axis2_array_list_t *(AXIS2_CALL *
+    get_endpoints) (
+            void *svc,
+            const axis2_env_t *env);
+    /******************************************************************************
+     *  Non-API implementation methods
+     *****************************************************************************/  
+
+    axis2_status_t (AXIS2_CALL *
+    set_interface_element) (
+            void *svc,
+            const axis2_env_t *env,
+            void *winterface);
+
+
+};
+
+union woden_wsdl10_svc_base
+{
+    woden_configurable_t configurable;
+    woden_wsdl10_svc_element_t svc_element;
+    woden_configurable_component_t configurable_component;
+};
+
+struct woden_wsdl10_svc
+{
+    woden_wsdl10_svc_base_t base;
+    woden_wsdl10_svc_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_wsdl10_svc_t * AXIS2_CALL
+woden_wsdl10_svc_create(
+        const axis2_env_t *env);
+
+
+/***************************Woden C Internal Methods***************************/
+AXIS2_EXTERN woden_wsdl10_svc_t * AXIS2_CALL
+woden_wsdl10_svc_to_svc_element(
+        void *svc,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_svc_t * AXIS2_CALL
+woden_wsdl10_svc_to_documentable_element(
+        void *svc,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_svc_t * AXIS2_CALL
+woden_wsdl10_svc_to_configurable(
+        void *svc,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_svc_t * AXIS2_CALL
+woden_wsdl10_svc_to_configurable_component(
+        void *svc,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_svc_t * AXIS2_CALL
+woden_wsdl10_svc_to_wsdl_component(
+        void *svc,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_svc_t * AXIS2_CALL
+woden_wsdl10_svc_to_configurable_element(
+        void *svc,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_svc_t * AXIS2_CALL
+woden_wsdl10_svc_to_documentable(
+        void *svc,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_svc_t * AXIS2_CALL
+woden_wsdl10_svc_to_attr_extensible(
+        void *svc,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_svc_t * AXIS2_CALL
+woden_wsdl10_svc_to_element_extensible(
+        void *svc,
+        const axis2_env_t *env);
+
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_wsdl10_svc_resolve_methods(
+        woden_wsdl10_svc_t *svc,
+        const axis2_env_t *env,
+        woden_wsdl10_svc_t *svc_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_WSDL10_SVC_FREE(svc, env) \
+      (((woden_wsdl10_svc_t *) svc)->ops->free(svc, env))
+
+#define WODEN_WSDL10_SVC_SUPER_OBJS(svc, env) \
+      (((woden_wsdl10_svc_t *) svc)->ops->super_objs(svc, env))
+
+#define WODEN_WSDL10_SVC_TYPE(svc, env) \
+      (((woden_wsdl10_svc_t *) svc)->ops->type(svc, env))
+
+#define WODEN_WSDL10_SVC_GET_BASE_IMPL(svc, env) \
+      (((woden_wsdl10_svc_t *) svc)->ops->get_base_impl(svc, env))
+
+#define WODEN_WSDL10_SVC_GET_QNAME(svc, env) \
+      (((woden_wsdl10_svc_t *) svc)->ops->\
+         get_qname(svc, env))
+
+#define WODEN_WSDL10_SVC_GET_INTERFACE(svc, env) \
+      (((woden_wsdl10_svc_t *) svc)->ops->\
+         get_interface(svc, env))
+
+#define WODEN_WSDL10_SVC_GET_ENDPOINTS(svc, env) \
+      (((woden_wsdl10_svc_t *) svc)->ops->\
+         get_endpoints(svc, env))
+
+#define WODEN_WSDL10_SVC_SET_INTERFACE_ELEMENT(svc, env, interface) \
+      (((woden_wsdl10_svc_t *) svc)->ops->\
+         set_interface_element(svc, env, interface))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_WSDL10_SVC_H */

Added: webservices/axis2/trunk/c/woden/include/woden_wsdl10_svc_element.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_wsdl10_svc_element.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_wsdl10_svc_element.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_wsdl10_svc_element.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,172 @@
+/*
+ * 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 WODEN_WSDL10_SVC_ELEMENT_H
+#define WODEN_WSDL10_SVC_ELEMENT_H
+
+/**
+ * @file woden_wsdl10_svc_element.h
+ * @brief Axis2 Service Element Interface
+ * This interface represents the &lt;service&gt; element. 
+ *
+ */
+
+#include <axis2_allocator.h>
+#include <axis2_env.h>
+#include <axis2_error.h>
+#include <axis2_string.h>
+#include <axis2_utils.h>
+#include <axis2_hash.h>
+#include <axis2_qname.h>
+#include <axis2_uri.h>
+#include <woden.h>
+#include <woden_documentable_element.h>
+#include <woden_configurable_element.h>
+#include <woden_nested_element.h>
+#include <woden_nc_name.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct woden_wsdl10_svc_element woden_wsdl10_svc_element_t;
+typedef struct woden_wsdl10_svc_element_ops woden_wsdl10_svc_element_ops_t;
+typedef union woden_wsdl10_svc_element_base woden_wsdl10_svc_element_base_t;
+
+/** @defgroup woden_wsdl10_svc_element Service Element
+  * @ingroup woden
+  * @{
+  */
+
+struct woden_wsdl10_svc_element_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *svc_el,
+            const axis2_env_t *env);
+    
+    woden_obj_types_t (AXIS2_CALL *
+    type) (
+            void *svc_el,
+            const axis2_env_t *env);
+    
+    axis2_status_t (AXIS2_CALL *
+    set_qname) (
+            void *svc_el,
+            const axis2_env_t *env,
+            axis2_qname_t *qname);
+
+    axis2_qname_t *(AXIS2_CALL *
+    get_qname) (
+            void *svc_el,
+            const axis2_env_t *env);
+
+    axis2_status_t (AXIS2_CALL *
+    set_interface_qname) (
+            void *svc_el,
+            const axis2_env_t *env,
+            axis2_qname_t *qname);
+
+    axis2_qname_t *(AXIS2_CALL *
+    get_interface_qname) (
+            void *svc_el,
+            const axis2_env_t *env);
+
+    void *(AXIS2_CALL *
+    get_interface_element) (
+            void *svc_el,
+            const axis2_env_t *env);
+
+    axis2_status_t (AXIS2_CALL *
+    add_endpoint_element) (
+            void *svc_el,
+            const axis2_env_t *env,
+            void *endpoint);
+
+    axis2_array_list_t *(AXIS2_CALL *
+    get_endpoint_elements) (
+            void *svc_el,
+            const axis2_env_t *env);
+
+};
+
+union woden_wsdl10_svc_element_base
+{
+    woden_documentable_element_t documentable_element;
+    woden_configurable_element_t configurable_element;
+    woden_nested_element_t nested_element;
+};
+
+struct woden_wsdl10_svc_element
+{
+    woden_wsdl10_svc_element_base_t base;
+    woden_wsdl10_svc_element_ops_t *ops;
+};
+
+/************************Woden C Internal Methods******************************/
+axis2_status_t AXIS2_CALL
+woden_wsdl10_svc_element_resolve_methods(
+        woden_wsdl10_svc_element_t *svc_element,
+        const axis2_env_t *env,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_WSDL10_SVC_ELEMENT_FREE(svc_el, env) \
+      (((woden_wsdl10_svc_element_t *) svc_el)->ops->\
+         free (svc_el, env))
+
+#define WODEN_WSDL10_SVC_ELEMENT_TYPE(svc_el, env) \
+      (((woden_wsdl10_svc_element_t *) svc_el)->ops->\
+         type (svc_el, env))
+
+#define WODEN_WSDL10_SVC_ELEMENT_SET_QNAME(svc_el, env, qname) \
+      (((woden_wsdl10_svc_element_t *) svc_el)->ops->\
+         set_qname(svc_el, env, qname))
+
+#define WODEN_WSDL10_SVC_ELEMENT_GET_QNAME(svc_el, env) \
+      (((woden_wsdl10_svc_element_t *) svc_el)->ops->\
+         get_qname(svc_el, env))
+
+#define WODEN_WSDL10_SVC_ELEMENT_SET_INTERFACE_QNAME(svc_el, env, qname) \
+      (((woden_wsdl10_svc_element_t *) svc_el)->ops->\
+         set_interface_qname(svc_el, env, qname))
+
+#define WODEN_WSDL10_SVC_ELEMENT_GET_INTERFACE_QNAME(svc_el, env) \
+      (((woden_wsdl10_svc_element_t *) svc_el)->ops->\
+         get_interface_qname(svc_el, env))
+
+#define WODEN_WSDL10_SVC_ELEMENT_GET_INTERFACE_ELEMENT(svc_el, env) \
+      (((woden_wsdl10_svc_element_t *) svc_el)->ops->\
+         get_interface_element(svc_el, env))
+
+#define WODEN_WSDL10_SVC_ELEMENT_ADD_ENDPOINT_ELEMENT(svc_el, env, endpoint) \
+      (((woden_wsdl10_svc_element_t *) svc_el)->ops->\
+         add_endpoint_element(svc_el, env, endpoint))
+
+#define WODEN_WSDL10_SVC_ELEMENT_GET_ENDPOINT_ELEMENTS(svc_el, env) \
+      (((woden_wsdl10_svc_element_t *) svc_el)->ops->\
+         get_endpoint_elements(svc_el, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_WSDL10_SVC_ELEMENT_H */

Added: webservices/axis2/trunk/c/woden/include/woden_wsdl_component.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_wsdl_component.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_wsdl_component.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_wsdl_component.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,114 @@
+/*
+ * 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 WODEN_WSDL_COMPONENT_H
+#define WODEN_WSDL_COMPONENT_H
+
+/**
+ * @file woden_wsdl_component.h
+ * @brief Axis2 Wsdl 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_utils.h>
+#include <axis2_hash.h>
+#include <axis2_uri.h>
+#include <woden.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct woden_wsdl_component woden_wsdl_component_t;
+typedef struct woden_wsdl_component_ops woden_wsdl_component_ops_t;
+struct woden_component_exts;
+
+/** @defgroup woden_wsdl_component Wsdl Component
+  * @ingroup woden
+  * @{
+  */
+
+struct woden_wsdl_component_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *wsdl_component,
+            const axis2_env_t *env);
+    
+    axis2_status_t (AXIS2_CALL *
+    to_wsdl_component_free) (
+            void *wsdl_component,
+            const axis2_env_t *env);
+
+    woden_obj_types_t (AXIS2_CALL *
+    type) (
+            void *wsdl_component,
+            const axis2_env_t *env);
+    
+    void *(AXIS2_CALL *
+    get_component_exts_for_namespace) (
+            void *wsdl_component,
+            const axis2_env_t *env,
+            axis2_uri_t *namespc);
+
+};
+
+struct woden_wsdl_component
+{
+    woden_wsdl_component_ops_t *ops;
+};
+
+/************************Woden C Internal Methods******************************/
+axis2_status_t AXIS2_CALL
+woden_wsdl_component_resolve_methods(
+        woden_wsdl_component_t *wsdl_component,
+        const axis2_env_t *env,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_WSDL_COMPONENT_FREE(wsdl_component, env) \
+      (((woden_wsdl_component_t *) wsdl_component)->ops->\
+         free (wsdl_component, env))
+
+#define WODEN_WSDL_COMPONENT_TO_WSDL_COMPONENT_FREE(wsdl_component, env) \
+      (((woden_wsdl_component_t *) wsdl_component)->ops->\
+         to_wsdl_component_free (wsdl_component, env))
+
+#define WODEN_WSDL_COMPONENT_TYPE(wsdl_component, env) \
+      (((woden_wsdl_component_t *) wsdl_component)->ops->\
+         type (wsdl_component, env))
+
+#define WODEN_WSDL_COMPONENT_GET_COMPONENT_EXTS_FOR_NAMESPACE(\
+        wsdl_component, env, namespc) \
+      (((woden_wsdl_component_t *) wsdl_component)->ops->\
+         get_component_exts_for_namespace(wsdl_component, env, namespc))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_WSDL_COMPONENT_H */

Added: webservices/axis2/trunk/c/woden/include/woden_wsdl_element.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_wsdl_element.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_wsdl_element.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_wsdl_element.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,151 @@
+/*
+ * 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 WODEN_WSDL_ELEMENT_H
+#define WODEN_WSDL_ELEMENT_H
+
+/**
+ * @file woden_wsdl_element.h
+ * @brief Axis2 Wsdl Element Interface
+ * This abstract class defines the behaviour common to all WSDL elements.
+ * That is, it implements support for extension attributes and elements.
+ * This interface can be used as a common reference for all WSDL elements
+ * represented by the Element API.
+ */
+
+#include <axis2_allocator.h>
+#include <axis2_env.h>
+#include <axis2_error.h>
+#include <axis2_string.h>
+#include <axis2_utils.h>
+#include <axis2_hash.h>
+#include <axis2_qname.h>
+#include <axis2_uri.h>
+#include <axis2_array_list.h>
+#include <woden.h>
+#include <woden_attr_extensible.h>
+#include <woden_element_extensible.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct woden_wsdl_element woden_wsdl_element_t;
+typedef struct woden_wsdl_element_ops woden_wsdl_element_ops_t;
+typedef union woden_wsdl_element_base woden_wsdl_element_base_t;
+struct woden_xml_attr;
+struct woden_ext_element;
+
+/** @defgroup woden_wsdl_element Wsdl Element
+  * @ingroup woden
+  * @{
+  */
+
+struct woden_wsdl_element_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *wsdl_element,
+            const axis2_env_t *env);
+    
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (
+            void *wsdl_element,
+            const axis2_env_t *env);
+ 
+    woden_obj_types_t (AXIS2_CALL *
+    type) (
+            void *wsdl_element,
+            const axis2_env_t *env);
+ 
+    void *(AXIS2_CALL *
+    get_element_extensible) (
+            void *wsdl_element,
+            const axis2_env_t *env);
+
+    void *(AXIS2_CALL *
+    get_attr_extensible) (
+            void *wsdl_element,
+            const axis2_env_t *env);
+
+   
+};
+
+union woden_wsdl_element_base
+{
+    woden_attr_extensible_t attr_extensible;
+    woden_element_extensible_t element_extensible;
+};
+
+struct woden_wsdl_element
+{
+    woden_wsdl_element_base_t base;
+    woden_wsdl_element_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_wsdl_element_t * AXIS2_CALL
+woden_wsdl_element_create(
+        const axis2_env_t *env);
+
+/************************Woden C Internal Methods******************************/
+AXIS2_EXTERN woden_wsdl_element_t * AXIS2_CALL
+woden_wsdl_element_to_attr_extensible(
+        void *wsdl_element,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl_element_t * AXIS2_CALL
+woden_wsdl_element_to_element_extensible(
+        void *wsdl_element,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_wsdl_element_resolve_methods(
+        woden_wsdl_element_t *wsdl_element,
+        const axis2_env_t *env,
+        woden_wsdl_element_t *wsdl_element_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_WSDL_ELEMENT_FREE(wsdl_element, env) \
+      (((woden_wsdl_element_t *) wsdl_element)->ops->\
+         free (wsdl_element, env))
+
+#define WODEN_WSDL_ELEMENT_SUPER_OBJS(wsdl_element, env) \
+      (((woden_wsdl_element_t *) wsdl_element)->ops->\
+         super_objs (wsdl_element, env))
+
+#define WODEN_WSDL_ELEMENT_TYPE(wsdl_element, env) \
+      (((woden_wsdl_element_t *) wsdl_element)->ops->\
+         type (wsdl_element, env))
+
+#define WODEN_WSDL_ELEMENT_GET_ELEMENT_EXTENSIBLE(wsdl_element, env) \
+      (((woden_wsdl_element_t *) wsdl_element)->ops->\
+         get_element_extensible (wsdl_element, env))
+
+#define WODEN_WSDL_ELEMENT_GET_ATTR_EXTENSIBLE(wsdl_element, env) \
+      (((woden_wsdl_element_t *) wsdl_element)->ops->\
+         get_attr_extensible (wsdl_element, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_WSDL_ELEMENT_H */

Added: webservices/axis2/trunk/c/woden/include/woden_wsdl_obj.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_wsdl_obj.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_wsdl_obj.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_wsdl_obj.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,150 @@
+/*
+ * 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 WODEN_WSDL_OBJ_H
+#define WODEN_WSDL_OBJ_H
+
+/**
+ * @file woden_wsdl_obj.h
+ * @brief Axis2 Wsdl Object Interface
+ * All classes implementing the WSDL 2.0 Component and Element
+ * model interfaces directly or indirectly extend this 
+ * abstract class. It implements the WSDL20 Component interface
+ * which just provides a common reference for objects from the WSDL 2.0 
+ * Component API. This class also inherits common behaviour for 
+ * WSDL Elements from WSDL Element, which in turn provides a common
+ * reference for objects from the the WSDL 2.0 Element API. 
+ * 
+ */
+
+#include <woden.h>
+#include <woden_wsdl_element.h>
+#include <woden_wsdl_component.h>
+
+/** @defgroup woden_wsdl_obj Wsdl Object
+  * @ingroup woden
+  * @{
+  */
+
+typedef union woden_wsdl_obj_base woden_wsdl_obj_base_t;
+typedef struct woden_wsdl_obj woden_wsdl_obj_t;
+typedef struct woden_wsdl_obj_ops woden_wsdl_obj_ops_t;
+struct woden_component_exts;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct woden_wsdl_obj_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *wsdl_obj,
+            const axis2_env_t *env);
+    
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (
+            void *wsdl_obj,
+            const axis2_env_t *env);
+    
+    woden_obj_types_t (AXIS2_CALL *
+    type) (
+            void *wsdl_obj,
+            const axis2_env_t *env);
+
+    /**
+     * @return the base implementation class
+     */
+    woden_wsdl_element_t *(AXIS2_CALL *
+    get_base_impl) (
+            void *wsdl_obj,
+            const axis2_env_t *env);
+
+    struct woden_component_exts *(AXIS2_CALL *
+    get_component_exts_for_namespace) (
+            void *wsdl_obj,
+            const axis2_env_t *env,
+            axis2_uri_t *namespc);
+    
+    /*
+     * Store the extensions in a map using the namespace string as the key.
+     * If the extensions value is null, delete any existing entry in the map
+     * for this namespace. If the nsmespace string is null, do nothing.
+     */
+    axis2_status_t (AXIS2_CALL *
+    set_component_exts) (
+            void *wsdl_obj,
+            const axis2_env_t *env,
+            axis2_uri_t *namespc,
+            struct woden_component_exts *exts);
+};
+
+union woden_wsdl_obj_base
+{
+    woden_wsdl_element_t wsdl_element;
+    woden_wsdl_component_t wsdl_component;
+};
+
+struct woden_wsdl_obj
+{
+    woden_wsdl_obj_base_t base;
+    woden_wsdl_obj_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_wsdl_obj_t * AXIS2_CALL
+woden_wsdl_obj_create(
+        const axis2_env_t *env);
+
+/************************Woden C Internal Methods******************************/
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_wsdl_obj_resolve_methods(
+        woden_wsdl_obj_t *wsdl_obj,
+        const axis2_env_t *env,
+        woden_wsdl_obj_t *wsdl_obj_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_WSDL_OBJ_FREE(wsdl_obj, env) \
+      (((woden_wsdl_obj_t *) wsdl_obj)->ops->free(wsdl_obj, env))
+
+#define WODEN_WSDL_OBJ_SUPER_OBJS(wsdl_obj, env) \
+      (((woden_wsdl_obj_t *) wsdl_obj)->ops->super_objs(wsdl_obj, env))
+
+#define WODEN_WSDL_OBJ_TYPE(wsdl_obj, env) \
+      (((woden_wsdl_obj_t *) wsdl_obj)->ops->type(wsdl_obj, env))
+
+#define WODEN_WSDL_OBJ_GET_BASE_IMPL(wsdl_obj, env) \
+      (((woden_wsdl_obj_t *) wsdl_obj)->ops->get_base_impl(wsdl_obj, env))
+
+#define WODEN_WSDL_OBJ_GET_COMPONENT_EXTS_FOR_NAMESPACE(wsdl_obj, env, \
+                        namespc) \
+      (((woden_wsdl_obj_t *) wsdl_obj)->ops->\
+         get_component_exts_for_namespace(wsdl_obj, env, namespc))
+
+#define WODEN_WSDL_OBJ_SET_COMPONENT_EXTS(wsdl_obj, env, namespc, exts) \
+      (((woden_wsdl_obj_t *) wsdl_obj)->ops->set_component_exts(\
+        wsdl_obj, env, namespc, exts))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_WSDL_OBJ_H */

Added: webservices/axis2/trunk/c/woden/include/woden_wsdl_ref.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_wsdl_ref.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_wsdl_ref.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_wsdl_ref.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,173 @@
+/*
+ * 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 WODEN_WSDL_REF_H
+#define WODEN_WSDL_REF_H
+
+/**
+ * @file woden_wsdl_ref.h
+ * @brief Axis2 Wsdl Ref Interface
+ * This abstract class defines the common behaviour for referencing WSDL
+ * documents via the &lt;wsdl:import&gt; and &lt;wsdl:include&gt; elements.
+ * It is extended by the concrete implementation classes for those two elements.
+ * 
+ * 
+ */
+
+#include <woden.h>
+#include <woden_wsdl_element.h>
+#include <woden_wsdl_component.h>
+
+/** @defgroup woden_wsdl_ref Wsdl Ref
+  * @ingroup woden
+  * @{
+  */
+
+typedef union woden_wsdl_ref_base woden_wsdl_ref_base_t;
+typedef struct woden_wsdl_ref woden_wsdl_ref_t;
+typedef struct woden_wsdl_ref_ops woden_wsdl_ref_ops_t;
+struct woden_component_exts;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct woden_wsdl_ref_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *wsdl_ref,
+            const axis2_env_t *env);
+    
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (
+            void *wsdl_ref,
+            const axis2_env_t *env);
+    
+    woden_obj_types_t (AXIS2_CALL *
+    type) (
+            void *wsdl_ref,
+            const axis2_env_t *env);
+
+    /**
+     * @return the base implementation class
+     */
+    woden_wsdl_element_t *(AXIS2_CALL *
+    get_base_impl) (
+            void *wsdl_ref,
+            const axis2_env_t *env);
+
+    axis2_uri_t *(AXIS2_CALL *
+    get_location) (
+            void *wsdl_ref,
+            const axis2_env_t *env);
+
+    axis2_status_t (AXIS2_CALL *
+    set_location) (
+            void *wsdl_ref,
+            const axis2_env_t *env,
+            axis2_uri_t *loc_uri);
+
+    void *(AXIS2_CALL *
+    get_desc_element) (
+            void *wsdl_ref,
+            const axis2_env_t *env);
+
+    axis2_status_t (AXIS2_CALL *
+    set_desc_element) (
+            void *wsdl_ref,
+            const axis2_env_t *env,
+            void *desc);
+
+    axis2_status_t (AXIS2_CALL *
+    add_documentation_element) (
+            void *wsdl_ref,
+            const axis2_env_t *env,
+            void *doc_el);
+
+    axis2_array_list_t *(AXIS2_CALL *
+    get_documentation_elements) (
+            void *wsdl_ref,
+            const axis2_env_t *env);
+
+
+};
+
+struct woden_wsdl_ref
+{
+    woden_wsdl_element_t wsdl_element;
+    woden_wsdl_ref_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_wsdl_ref_t * AXIS2_CALL
+woden_wsdl_ref_create(
+        const axis2_env_t *env);
+
+/************************Woden C Internal Methods******************************/
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_wsdl_ref_resolve_methods(
+        woden_wsdl_ref_t *wsdl_ref,
+        const axis2_env_t *env,
+        woden_wsdl_ref_t *wsdl_ref_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_WSDL_REF_FREE(wsdl_ref, env) \
+      (((woden_wsdl_ref_t *) wsdl_ref)->ops->free(wsdl_ref, env))
+
+#define WODEN_WSDL_REF_SUPER_OBJS(wsdl_ref, env) \
+      (((woden_wsdl_ref_t *) wsdl_ref)->ops->super_objs(wsdl_ref, env))
+
+#define WODEN_WSDL_REF_TYPE(wsdl_ref, env) \
+      (((woden_wsdl_ref_t *) wsdl_ref)->ops->type(wsdl_ref, env))
+
+#define WODEN_WSDL_REF_GET_BASE_IMPL(wsdl_ref, env) \
+      (((woden_wsdl_ref_t *) wsdl_ref)->ops->get_base_impl(wsdl_ref, env))
+
+#define WODEN_WSDL_REF_GET_LOCATION(wsdl_ref, env) \
+      (((woden_wsdl_ref_t *) wsdl_ref)->ops->\
+        get_location (wsdl_ref, env))
+
+#define WODEN_WSDL_REF_SET_LOCATION(wsdl_ref, env, loc_uri) \
+      (((woden_wsdl_ref_t *) wsdl_ref)->ops->\
+         set_location(wsdl_ref, env, loc_uri))
+
+#define WODEN_WSDL_REF_GET_DESC_ELEMENT(wsdl_ref, env) \
+      (((woden_wsdl_ref_t *) wsdl_ref)->ops->\
+        get_desc_element (wsdl_ref, env))
+
+#define WODEN_WSDL_REF_SET_DESC_ELEMENT(wsdl_ref, env, desc) \
+      (((woden_wsdl_ref_t *) wsdl_ref)->ops->\
+         set_desc_element(wsdl_ref, env, desc))
+
+#define WODEN_WSDL_REF_ADD_DOCUMENTATION_ELEMENT(wsdl_ref, env, doc_el) \
+      (((woden_wsdl_ref_t *) wsdl_ref)->ops->\
+        add_documentation_element (wsdl_ref, env, doc_el))
+
+#define WODEN_WSDL_REF_GET_DOCUMENTATION_ELEMENTS(wsdl_ref, env) \
+      (((woden_wsdl_ref_t *) wsdl_ref)->ops->\
+         get_documentation_elements(wsdl_ref, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_WSDL_REF_H */

Added: webservices/axis2/trunk/c/woden/include/woden_xml_attr.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_xml_attr.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_xml_attr.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_xml_attr.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,184 @@
+/*
+ * 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 WODEN_XML_ATTR_H
+#define WODEN_XML_ATTR_H
+
+/**
+ * @file woden_xml_attr.h
+ * @brief Axis2 Xml Attribute Interface
+ *          This is an abstract superclass for all classes representing different
+ *          types of XML attribute information items.
+ */
+
+#include <axis2_allocator.h>
+#include <axis2_env.h>
+#include <axis2_error.h>
+#include <axis2_string.h>
+#include <axis2_utils.h>
+#include <axis2_hash.h>
+#include <axis2_qname.h>
+#include <axis2_generic_obj.h>
+#include <woden.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct woden_xml_attr woden_xml_attr_t;
+typedef struct woden_xml_attr_ops woden_xml_attr_ops_t;
+struct axiom_node;
+struct axiom_element;
+
+/** @defgroup woden_xml_attr Xml Attribute
+  * @ingroup woden
+  * @{
+  */
+
+struct woden_xml_attr_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *xml_attr,
+            const axis2_env_t *env);
+      
+    woden_obj_types_t (AXIS2_CALL *
+    type) (
+            void *xml_attr,
+            const axis2_env_t *env);
+    
+    axis2_status_t (AXIS2_CALL *
+    init) (
+            void *xml_attr,
+            const axis2_env_t *env,
+            struct axiom_element *owner_el,
+            struct axiom_node *owner_node,
+            axis2_qname_t *attr_type, 
+            axis2_char_t *attr_value);
+
+    axis2_qname_t *(AXIS2_CALL *
+    get_attribute_type) (
+            void *xml_attr,
+            const axis2_env_t *env);
+
+    axis2_generic_obj_t *(AXIS2_CALL *
+    get_content) (
+            void *xml_attr,
+            const axis2_env_t *env);
+
+    axis2_char_t *(AXIS2_CALL *
+    to_external_form) (
+            void *xml_attr,
+            const axis2_env_t *env);
+
+    axis2_bool_t (AXIS2_CALL *
+    is_valid) (
+            void *xml_attr,
+            const axis2_env_t *env);
+
+    /* ************************************************************
+     *  Non-API implementation methods 
+     * ************************************************************/
+
+    void *(AXIS2_CALL *
+    convert) (
+            void *xml_attr,
+            const axis2_env_t *env,
+            struct axiom_element *owner_el,
+            struct axiom_node *ownder_node,
+            axis2_char_t *attr_value);
+
+    /*
+     * Validity is initialized to true, but set to false if the attribute's
+     * value is null or if it cannot be converted to an object of the 
+     * appropriate type). This method may be used to change the validity later
+     * (e.g. if Validation determines an error).
+     * 
+     * TODO confirm this method is needed, otherwise remove it.
+     */
+    axis2_status_t (AXIS2_CALL *
+    set_valid) (
+            void *xml_attr,
+            const axis2_env_t *env,
+            axis2_bool_t validity);
+      
+};
+
+struct woden_xml_attr
+{
+    woden_xml_attr_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_xml_attr_t * AXIS2_CALL
+woden_xml_attr_create(
+        const axis2_env_t *env,
+        struct axiom_element *owner_el,
+        struct axiom_node *owner_node,
+        axis2_qname_t *attr_type, 
+        axis2_char_t *attr_value);
+
+/************************Woden C Internal Methods******************************/
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_xml_attr_resolve_methods(
+        woden_xml_attr_t *xml_attr,
+        const axis2_env_t *env,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_XML_ATTR_FREE(xml_attr, env) \
+      (((woden_xml_attr_t *) xml_attr)->ops->free (xml_attr, env))
+
+#define WODEN_XML_ATTR_TYPE(xml_attr, env) \
+      (((woden_xml_attr_t *) xml_attr)->ops->type (xml_attr, env))
+
+#define WODEN_XML_ATTR_INIT(xml_attr, env, owner_el, owner_node, \
+        attr_type, attr_value) \
+      (((woden_xml_attr_t *) xml_attr)->ops->init(xml_attr, env, \
+            owner_el, owner_node, attr_type, attr_value))
+
+#define WODEN_XML_ATTR_GET_ATTRIBUTE_TYPE(xml_attr, env) \
+      (((woden_xml_attr_t *) xml_attr)->ops->\
+         get_attribute_type(xml_attr, env))
+
+#define WODEN_XML_ATTR_GET_CONTENT(xml_attr, env) \
+      (((woden_xml_attr_t *) xml_attr)->ops->get_content(xml_attr, env))
+
+#define WODEN_XML_ATTR_TO_EXTERNAL_FORM(xml_attr, env) \
+      (((woden_xml_attr_t *) xml_attr)->ops->\
+         to_external_form(xml_attr, env))
+
+#define WODEN_XML_ATTR_IS_VALID(xml_attr, env) \
+      (((woden_xml_attr_t *) xml_attr)->ops->is_valid(xml_attr, env))
+
+#define WODEN_XML_ATTR_CONVERT(xml_attr, env, owner_el, owner_node, \
+        attr_type, attr_value) \
+      (((woden_xml_attr_t *) xml_attr)->ops->convert(xml_attr, env, \
+            owner_el, owner_node, attr_type, attr_value))
+
+#define WODEN_XML_ATTR_SET_VALID(xml_attr, env, validity) \
+      (((woden_xml_attr_t *) xml_attr)->ops->set_valid(xml_attr, \
+                                                  env, validity))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_XML_ATTR_H */

Added: webservices/axis2/trunk/c/woden/include/woden_xml_char.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_xml_char.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_xml_char.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_xml_char.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,284 @@
+/*
+ * 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 WODEN_XML_CHAR_H
+#define WODEN_XML_CHAR_H
+
+/**
+ * @file woden_xml_char.h
+ * @brief Axis2 Xml Char Interface
+ * This class has been turned into C from Axis into Woden to support the NCName class.
+ * 
+ * This class defines the basic XML character properties. The data
+ * in this class can be used to verify that a character is a valid
+ * XML character or if the character is a space, name start, or name
+ * character.
+ * <p>
+ * A series of convenience methods are supplied to ease the burden
+ * of the developer. Because inlining the checks can improve per
+ * character performance, the tables of character properties are
+ * public. Using the character as an index into the <code>CHARS</code>
+ * array and applying the appropriate mask flag (e.g.
+ * <code>MASK_VALID</code>), yields the same results as calling the
+ * convenience methods. There is one exception: check the comments
+ * for the <code>isValid</code> method for details.
+ *
+ */
+
+#include <axis2_allocator.h>
+#include <axis2_env.h>
+#include <axis2_error.h>
+#include <axis2_string.h>
+#include <axis2_utils.h>
+#include <axis2_hash.h>
+#include <axis2_uri.h>
+#include <woden.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/** @defgroup woden_xml_char Xml Char
+  * @ingroup woden
+  * @{
+  */
+
+/**
+ * Returns AXIS2_TRUE if the specified character is a supplemental character.
+ *
+ * @param c The character to check.
+ */
+axis2_bool_t AXIS2_CALL 
+woden_xml_char_is_supplemental(
+        int c); 
+
+/**
+ * Returns AXIS2_TRUE the supplemental character corresponding to the given
+ * surrogates.
+ *
+ * @param h The high surrogate.
+ * @param l The low surrogate.
+ */
+int AXIS2_CALL 
+woden_xml_char_supplemental(
+        char h, 
+        char l); 
+
+/**
+ * Returns the high surrogate of a supplemental character
+ *
+ * @param c The supplemental character to "split".
+ */
+axis2_char_t AXIS2_CALL 
+woden_xml_char_high_surrogate(
+        int c); 
+
+/**
+ * Returns the low surrogate of a supplemental character
+ *
+ * @param c The supplemental character to "split".
+ */
+axis2_char_t AXIS2_CALL 
+woden_xml_char_low_surrogate(
+        int c); 
+
+/**
+ * Returns whether the given character is a high surrogate
+ *
+ * @param c The character to check.
+ */
+axis2_bool_t AXIS2_CALL 
+woden_xml_char_is_high_surrogate(
+        int c); 
+
+/**
+ * Returns whether the given character is a low surrogate
+ *
+ * @param c The character to check.
+ */
+axis2_bool_t AXIS2_CALL 
+woden_xml_char_is_low_surrogate(
+        int c); 
+
+
+/**
+ * Returns AXIS2_TRUE if the specified character is valid. This method
+ * also checks the surrogate character range from 0x10000 to 0x10FFFF.
+ * <p>
+ * If the program chooses to apply the mask directly to the
+ * <code>xml_char_impl->CHARS</code> array, then they are responsible for checking
+ * the surrogate character range.
+ *
+ * @param c The character to check.
+ */
+axis2_bool_t AXIS2_CALL 
+woden_xml_char_is_valid(
+        int c); 
+
+/**
+ * Returns AXIS2_TRUE if the specified character is invalid.
+ *
+ * @param c The character to check.
+ */
+axis2_bool_t AXIS2_CALL 
+woden_xml_char_is_invalid(
+        int c); 
+
+/**
+ * Returns AXIS2_TRUE if the specified character can be considered content.
+ *
+ * @param c The character to check.
+ */
+axis2_bool_t AXIS2_CALL 
+woden_xml_char_is_content(
+        int c); 
+
+/**
+ * Returns AXIS2_TRUE if the specified character can be considered markup.
+ * Markup characters include '&lt;', '&amp;', and '%'.
+ *
+ * @param c The character to check.
+ */
+axis2_bool_t AXIS2_CALL 
+woden_xml_char_is_markup(
+        int c); 
+
+/**
+ * Returns AXIS2_TRUE if the specified character is a space character
+ * as defined by production [3] in the XML 1.0 specification.
+ *
+ * @param c The character to check.
+ */
+axis2_bool_t AXIS2_CALL 
+woden_xml_char_is_space(
+        int c); 
+
+/**
+ * Returns AXIS2_TRUE if the specified character is a space character
+ * as amdended in the XML 1.1 specification.
+ *
+ * @param c The character to check.
+ */
+axis2_bool_t AXIS2_CALL 
+woden_xml_char_is_xml11_space(
+        int c); 
+
+/**
+ * Returns AXIS2_TRUE if the specified character is a valid name start
+ * character as defined by production [5] in the XML 1.0
+ * specification.
+ *
+ * @param c The character to check.
+ */
+axis2_bool_t AXIS2_CALL 
+woden_xml_char_is_name_start(
+        int c); 
+
+/**
+ * Returns AXIS2_TRUE if the specified character is a valid name
+ * character as defined by production [4] in the XML 1.0
+ * specification.
+ *
+ * @param c The character to check.
+ */
+axis2_bool_t AXIS2_CALL 
+woden_xml_char_is_name(
+        int c); 
+
+/**
+ * Returns AXIS2_TRUE if the specified character is a valid nc_name start
+ * character as defined by production [4] in Namespaces in XML
+ * recommendation.
+ *
+ * @param c The character to check.
+ */
+axis2_bool_t AXIS2_CALL 
+woden_xml_char_is_nc_name_start(
+        int c); 
+
+/**
+ * Returns AXIS2_TRUE if the specified character is a valid NCName
+ * character as defined by production [5] in Namespaces in XML
+ * recommendation.
+ *
+ * @param c The character to check.
+ */
+axis2_bool_t AXIS2_CALL
+woden_xml_char_is_nc_name(
+        int c); 
+
+/**
+ * Returns AXIS2_TRUE if the specified character is a valid Pubid
+ * character as defined by production [13] in the XML 1.0
+ * specification.
+ *
+ * @param c The character to check.
+ */
+axis2_bool_t AXIS2_CALL 
+woden_xml_char_is_pubid(
+        int c);
+
+/*
+ * [5] Name ::= (Letter | '_' | ':'(NameChar)*
+ */
+/**
+ * Check to see if a string is a valid Name according to [5]
+ * in the XML 1.0 Recommendation
+ *
+ * @param name string to check
+ * @return AXIS2_TRUE if name is a valid Name
+ */
+axis2_bool_t AXIS2_CALL 
+woden_xml_char_is_valid_name(
+        axis2_char_t *name);
+
+
+/*
+ * from the namespace rec
+ * [4] NCName ::= (Letter | '_'(NCNameChar)*
+ */
+/**
+ * Check to see if a string is a valid NCName according to [4]
+ * from the XML Namespaces 1.0 Recommendation
+ *
+ * @param nc_name string to check
+ * @return AXIS2_TRUE if name is a valid NCName
+ */
+axis2_bool_t AXIS2_CALL 
+woden_xml_char_is_valid_nc_name(
+        axis2_char_t * nc_name);
+
+/*
+ * [7] Nmtoken ::= (NameChar)+
+ */
+/**
+ * Check to see if a string is a valid Nmtoken according to [7]
+ * in the XML 1.0 Recommendation
+ *
+ * @param nmtoken string to check
+ * @return AXIS2_TRUE if nmtoken is a valid nmtoken
+ */
+axis2_bool_t AXIS2_CALL 
+woden_xml_char_is_valid_nmtoken(
+        axis2_char_t * nmtoken);
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_XML_CHAR_H */
+

Added: webservices/axis2/trunk/c/woden/samples/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/samples/Makefile.am?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/samples/Makefile.am (added)
+++ webservices/axis2/trunk/c/woden/samples/Makefile.am Wed Jul  5 23:02:19 2006
@@ -0,0 +1,20 @@
+SUBDIRS = wsdl10
+prgbindir=$(prefix)/bin/samples/woden
+prgbin_PROGRAMS = test_wsdl2
+check_PROGRAMS = test_wsdl2
+test_wsdl2_SOURCES = \
+					 test_wsdl2.c
+					 
+test_wsdl2_LDADD   =  \
+                   	-laxis2_util \
+					-laxis2_axiom \
+					-laxis2_xml_schema \
+                    -laxis2_parser \
+					../src/wsdl20/libwoden_wsdl20.la \
+                    $(GUTHTHILA_LIBS) \
+                    $(LIBXML2_LIBS)
+
+INCLUDES = -I$(top_builddir)/include \
+			@AXIOMINC@ \
+			@UTILINC@ \
+			@XMLSCHEMAINC@

Added: webservices/axis2/trunk/c/woden/samples/primer-hotelReservationService.wsdl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/samples/primer-hotelReservationService.wsdl?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/samples/primer-hotelReservationService.wsdl (added)
+++ webservices/axis2/trunk/c/woden/samples/primer-hotelReservationService.wsdl Wed Jul  5 23:02:19 2006
@@ -0,0 +1,77 @@
+<?xml version="1.0" encoding="utf-8" ?> 
+<description 
+    xmlns="http://www.w3.org/2006/01/wsdl"
+    targetNamespace= "http://greath.example.com/2004/wsdl/resSvc" 
+    xmlns:tns= "http://greath.example.com/2004/wsdl/resSvc"
+    xmlns:ghns = "http://greath.example.com/2004/schemas/resSvc"
+    xmlns:wsoap= "http://www.w3.org/2004/08/wsdl/soap12"
+    xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
+
+  <documentation>
+    This document describes the GreatH Web service.  Additional 
+    application-level requirements for use of this service -- 
+    beyond what WSDL 2.0 is able to describe -- are available 
+    at http://greath.example.com/2004/reservation-documentation.html
+  </documentation>
+
+  <types>
+    <xs:schema 
+        xmlns:xs="http://www.w3.org/2001/XMLSchema"
+        targetNamespace="http://greath.example.com/2004/schemas/resSvc"
+        xmlns="http://greath.example.com/2004/schemas/resSvc">
+
+      <xs:element name="checkAvailability" type="tCheckAvailability"/>    
+      <xs:complexType name="tCheckAvailability">     
+        <xs:sequence>      
+          <xs:element  name="checkInDate" type="xs:date"/>      
+          <xs:element  name="checkOutDate" type="xs:date"/>      
+          <xs:element  name="roomType" type="xs:string"/>      
+        </xs:sequence>     
+      </xs:complexType>   
+            
+      <xs:element name="checkAvailabilityResponse" type="xs:double"/>    
+    
+      <xs:element name="invalidDataError" type="xs:string"/>    
+
+    </xs:schema>    
+  </types>
+  
+  <interface  name = "reservationInterface" >
+
+    <fault name = "invalidDataFault"
+            element = "ghns:invalidDataError"/> 
+   
+    <operation name="opCheckAvailability" 
+            pattern="http://www.w3.org/2004/03/wsdl/in-out" >
+        <input messageLabel="In" 
+              element="ghns:checkAvailability" />
+        <output messageLabel="Out" 
+              element="ghns:checkAvailabilityResponse" />
+        <outfault ref="tns:invalidDataFault" messageLabel="Out"/>
+    </operation>
+
+  </interface>
+
+  <binding name="reservationSOAPBinding" 
+	  interface="tns:reservationInterface"
+	  type="http://www.w3.org/2004/08/wsdl/soap12"
+	  wsoap:protocol="http://www.w3.org/2003/05/soap/bindings/HTTP">
+
+    <operation ref="tns:opCheckAvailability" 
+      wsoap:mep="http://www.w3.org/2003/05/soap/mep/request-response"/>
+  
+    <fault ref="tns:invalidDataFault" 
+      wsoap:code="soap:Sender"/>
+
+  </binding>
+
+  <service name="reservationService" 
+       interface="tns:reservationInterface">
+
+     <endpoint name="reservationEndpoint" 
+               binding="tns:reservationSOAPBinding"
+               address ="http://greath.example.com/2004/reservation"/>
+        
+  </service>
+
+</description>

Added: webservices/axis2/trunk/c/woden/samples/test.log
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/samples/test.log?rev=419452&view=auto
==============================================================================
    (empty)

Added: webservices/axis2/trunk/c/woden/samples/test_wsdl2.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/samples/test_wsdl2.c?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/samples/test_wsdl2.c (added)
+++ webservices/axis2/trunk/c/woden/samples/test_wsdl2.c Wed Jul  5 23:02:19 2006
@@ -0,0 +1,105 @@
+/*
+ * 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.
+ */
+
+#include <stdio.h>
+#include <axiom.h>
+#include <axiom_xml_reader.h>
+#include <axis2_env.h>
+#include <axis2_utils.h>
+#include <platforms/axis2_platform_auto_sense.h>
+#include <woden_reader.h>
+#include <woden_desc.h>
+#include <woden_interface.h>
+#include <woden_svc.h>
+
+#include <axiom.h>
+
+static axiom_document_t* 
+get_root_element_from_filename(
+        const axis2_env_t *env, 
+        axis2_char_t *filename);
+
+int main(int argc, char *argv[])
+{
+    axis2_env_t *env = NULL;
+    axiom_document_t *om_doc = NULL;
+    axis2_char_t *doc_base_uri = NULL;
+    axis2_char_t *axis2c_home = NULL;
+    woden_reader_t *reader = NULL;
+    void *desc = NULL;
+    void *intface = NULL;
+    axis2_array_list_t *intfaces = NULL;
+    axis2_qname_t *intface_qname = NULL;
+    axis2_char_t *filename = NULL;
+    axis2_array_list_t *svc_list = NULL;
+    
+    if(argc > 1)
+    {
+        filename = argv[1];
+        printf("filename:%s\n", filename);
+    }
+    else
+    {
+        printf("Give a wsdl2 file name and continue\n");
+        return 0;        
+    }
+    
+    env = axis2_env_create_all("test.log", 1);
+    
+    om_doc = get_root_element_from_filename(env, filename);
+    axis2c_home = AXIS2_GETENV("AXIS2C_HOME");
+    doc_base_uri = AXIS2_STRACAT (axis2c_home, "/woden", env);
+    reader = woden_reader_create(env);
+    
+    desc = (void *)WODEN_READER_READ_WSDL(reader, env, om_doc, doc_base_uri);
+    intfaces = WODEN_DESC_GET_INTERFACES(desc, env);
+    intface = AXIS2_ARRAY_LIST_GET(intfaces, env, 0);
+    intface_qname = WODEN_INTERFACE_GET_QNAME(intface, env);
+    printf("Interface qname is %s\n", AXIS2_QNAME_TO_STRING(intface_qname, env));
+    svc_list = WODEN_DESC_ELEMENT_GET_SVC_ELEMENTS(desc, env);
+    if (svc_list)
+    {
+        void *svc = NULL;
+        svc = AXIS2_ARRAY_LIST_GET(svc_list, env, 0);
+        if (svc)
+        {
+            axis2_qname_t *svc_qname = WODEN_SVC_GET_QNAME(svc, env);
+            if (svc_qname)
+            {
+                printf("First service qname is %s\n", AXIS2_QNAME_TO_STRING(svc_qname, env));
+            }
+        }
+    }
+    return 0;
+}
+
+static axiom_document_t* 
+get_root_element_from_filename(
+        const axis2_env_t *env, 
+        axis2_char_t *filename)
+{
+    axiom_xml_reader_t *reader = NULL;
+    axiom_stax_builder_t *om_builder = NULL;
+    axiom_document_t *doc   = NULL;
+
+    reader = axiom_xml_reader_create_for_file(env, filename, NULL);
+    om_builder = axiom_stax_builder_create(env, reader);
+    doc = axiom_document_create(env, NULL, om_builder); 
+    AXIOM_DOCUMENT_BUILD_ALL(doc, env);
+
+    return doc;    
+}
+

Added: webservices/axis2/trunk/c/woden/samples/wsdl10/CalculatorDoc.wsdl
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/samples/wsdl10/CalculatorDoc.wsdl?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/samples/wsdl10/CalculatorDoc.wsdl (added)
+++ webservices/axis2/trunk/c/woden/samples/wsdl10/CalculatorDoc.wsdl Wed Jul  5 23:02:19 2006
@@ -0,0 +1,255 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright 2003-2004 The Apache Software Foundation.                      -->
+<!-- (c) Copyright IBM Corp. 2004, 2005 All Rights Reserved                   -->
+<!--                                                                          -->
+<!-- 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.                                           -->
+
+<wsdl:definitions targetNamespace="http://localhost/axis/Calculator" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost/axis/Calculator" xmlns:intf="http://localhost/axis/Calculator" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+ <wsdl:types>
+  <schema elementFormDefault="qualified" targetNamespace="http://localhost/axis/Calculator" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost/axis/Calculator" xmlns:intf="http://localhost/axis/Calculator" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
+   <element name="add">
+    <complexType>
+     <sequence>
+      <element name="arg_0_0" type="xsd:int"/>
+      <element name="arg_1_0" type="xsd:int"/>
+     </sequence>
+    </complexType>
+   </element>
+   <element name="addResponse">
+    <complexType>
+     <sequence>
+      <element name="addReturn" type="xsd:int"/>
+     </sequence>
+    </complexType>
+   </element>
+   <element name="sub">
+    <complexType>
+     <sequence>
+      <element name="arg_0_1" type="xsd:int"/>
+      <element name="arg_1_1" type="xsd:int"/>
+     </sequence>
+    </complexType>
+   </element>
+   <element name="subResponse">
+    <complexType>
+     <sequence>
+      <element name="subReturn" type="xsd:int"/>
+     </sequence>
+    </complexType>
+   </element>
+   <element name="mul">
+    <complexType>
+     <sequence>
+      <element name="arg_0_2" type="xsd:int"/>
+      <element name="arg_1_2" type="xsd:int"/>
+     </sequence>
+    </complexType>
+   </element>
+   <element name="mulResponse">
+    <complexType>
+     <sequence>
+      <element name="mulReturn" type="xsd:int"/>
+     </sequence>
+    </complexType>
+   </element>
+   <element name="div">
+    <complexType>
+     <sequence>
+      <element name="arg_0_3" type="xsd:int"/>
+      <element name="arg_1_3" type="xsd:int"/>
+     </sequence>
+    </complexType>
+   </element>
+   <element name="divResponse">
+    <complexType>
+     <sequence>
+      <element name="divReturn" type="xsd:int"/>
+     </sequence>
+    </complexType>
+   </element>
+  </schema>
+ </wsdl:types>
+
+   <wsdl:message name="subResponse">
+
+      <wsdl:part element="impl:subResponse" name="parameters"/>
+
+   </wsdl:message>
+
+   <wsdl:message name="mulResponse">
+
+      <wsdl:part element="impl:mulResponse" name="parameters"/>
+
+   </wsdl:message>
+
+   <wsdl:message name="subRequest">
+
+      <wsdl:part element="impl:sub" name="parameters"/>
+
+   </wsdl:message>
+
+   <wsdl:message name="divRequest">
+
+      <wsdl:part element="impl:div" name="parameters"/>
+
+   </wsdl:message>
+
+   <wsdl:message name="divResponse">
+
+      <wsdl:part element="impl:divResponse" name="parameters"/>
+
+   </wsdl:message>
+
+   <wsdl:message name="mulRequest">
+
+      <wsdl:part element="impl:mul" name="parameters"/>
+
+   </wsdl:message>
+
+   <wsdl:message name="addResponse">
+
+      <wsdl:part element="impl:addResponse" name="parameters"/>
+
+   </wsdl:message>
+
+   <wsdl:message name="addRequest">
+
+      <wsdl:part element="impl:add" name="parameters"/>
+
+   </wsdl:message>
+
+   <wsdl:portType name="Calculator">
+
+      <wsdl:operation name="add">
+
+         <wsdl:input message="impl:addRequest" name="addRequest"/>
+
+         <wsdl:output message="impl:addResponse" name="addResponse"/>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="sub">
+
+         <wsdl:input message="impl:subRequest" name="subRequest"/>
+
+         <wsdl:output message="impl:subResponse" name="subResponse"/>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="mul">
+
+         <wsdl:input message="impl:mulRequest" name="mulRequest"/>
+
+         <wsdl:output message="impl:mulResponse" name="mulResponse"/>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="div">
+
+         <wsdl:input message="impl:divRequest" name="divRequest"/>
+
+         <wsdl:output message="impl:divResponse" name="divResponse"/>
+
+      </wsdl:operation>
+
+   </wsdl:portType>
+
+   <wsdl:binding name="CalculatorSoapBinding" type="impl:Calculator">
+
+      <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
+
+      <wsdl:operation name="add">
+
+         <wsdlsoap:operation soapAction="Calculator#add"/>
+
+         <wsdl:input name="addRequest">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="addResponse">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="sub">
+
+         <wsdlsoap:operation soapAction="Calculator#sub"/>
+
+         <wsdl:input name="subRequest">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="subResponse">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="mul">
+
+         <wsdlsoap:operation soapAction="Calculator#mul"/>
+
+         <wsdl:input name="mulRequest">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="mulResponse">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+      <wsdl:operation name="div">
+
+         <wsdlsoap:operation soapAction="Calculator#div"/>
+
+         <wsdl:input name="divRequest">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:input>
+
+         <wsdl:output name="divResponse">
+
+            <wsdlsoap:body use="literal"/>
+
+         </wsdl:output>
+
+      </wsdl:operation>
+
+   </wsdl:binding>
+
+   <wsdl:service name="Calculator">
+
+      <wsdl:port binding="impl:CalculatorSoapBinding" name="Calculator">
+
+         <wsdlsoap:address location="http://localhost/axis/Calculator"/>
+
+      </wsdl:port>
+
+   </wsdl:service>
+
+</wsdl:definitions>



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org