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 [7/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/wsdl10...

Added: webservices/axis2/trunk/c/woden/include/woden_soap_module.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_soap_module.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_soap_module.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_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_SOAP_MODULE_H
+#define WODEN_SOAP_MODULE_H
+
+/**
+ * @file woden_soap_module.h
+ * @brief Axis2 Soap Module Interface
+ * This interface represents the <wsoap:header> extension element that 
+ * can appear within a Binding Fault or Binding Message Reference.
+ * 
+ */
+
+#include <woden.h>
+#include <woden_soap_module_element.h>
+
+/** @defgroup woden_soap_module Soap Module
+  * @ingroup woden
+  * @{
+  */
+
+typedef union woden_soap_module_base woden_soap_module_base_t;
+typedef struct woden_soap_module woden_soap_module_t;
+typedef struct woden_soap_module_ops woden_soap_module_ops_t;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct woden_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_soap_module
+{
+    woden_soap_module_element_t module_element;
+    woden_soap_module_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_soap_module_t * AXIS2_CALL
+woden_soap_module_create(
+        const axis2_env_t *env);
+
+
+/***************************Woden C Internal Methods***************************/
+AXIS2_EXTERN woden_soap_module_t * AXIS2_CALL
+woden_soap_module_to_soap_module_element(
+        void *module,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_soap_module_t * AXIS2_CALL
+woden_soap_module_to_ext_element(
+        void *module,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_soap_module_t * AXIS2_CALL
+woden_soap_module_to_attr_extensible(
+        void *module,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_soap_module_t * AXIS2_CALL
+woden_soap_module_to_element_extensible(
+        void *module,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_soap_module_resolve_methods(
+        woden_soap_module_t *soap_module,
+        const axis2_env_t *env,
+        woden_soap_module_t *soap_module_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_SOAP_MODULE_FREE(soap_module, env) \
+      (((woden_soap_module_t *) soap_module)->ops->free(soap_module, env))
+
+#define WODEN_SOAP_MODULE_SUPER_OBJS(soap_module, env) \
+      (((woden_soap_module_t *) soap_module)->ops->super_objs(soap_module, env))
+
+#define WODEN_SOAP_MODULE_TYPE(soap_module, env) \
+      (((woden_soap_module_t *) soap_module)->ops->type(soap_module, env))
+
+#define WODEN_SOAP_MODULE_GET_BASE_IMPL(soap_module, env) \
+      (((woden_soap_module_t *) soap_module)->ops->get_base_impl(soap_module, env))
+
+#define WODEN_SOAP_MODULE_GET_REF(soap_module, env) \
+      (((woden_soap_module_t *) soap_module)->\
+        get_ref (soap_module, env))
+
+#define WODEN_SOAP_MODULE_IS_REQUIRED(soap_module, env) \
+      (((woden_soap_module_t *) soap_module)->\
+        is_required (soap_module, env))
+
+#define WODEN_SOAP_MODULE_GET_PARENT(soap_module, env) \
+      (((woden_soap_module_t *) soap_module)->\
+        get_parent (soap_module, env))
+
+#define WODEN_SOAP_MODULE_TO_ELEMENT(soap_module, env) \
+      (((woden_soap_module_t *) soap_module)->\
+        to_element (soap_module, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_SOAP_MODULE_H */

Added: webservices/axis2/trunk/c/woden/include/woden_soap_module_deserializer.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_soap_module_deserializer.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_soap_module_deserializer.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_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_SOAP_MODULE_DESERIALIZER_H
+#define WODEN_SOAP_MODULE_DESERIALIZER_H
+
+/**
+ * @file woden_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_soap_module_deserializer Soap Module Deserializer
+  * @ingroup woden
+  * @{
+  */
+
+typedef struct woden_soap_module_deserializer 
+        woden_soap_module_deserializer_t;
+typedef struct woden_soap_module_deserializer_ops 
+        woden_soap_module_deserializer_ops_t;
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct woden_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_soap_module_deserializer
+{
+    woden_ext_deserializer_t ext_deserializer;
+    woden_soap_module_deserializer_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_soap_module_deserializer_t * AXIS2_CALL
+woden_soap_module_deserializer_create(
+        const axis2_env_t *env);
+
+
+/***************************Woden C Internal Methods***************************/
+AXIS2_EXTERN woden_soap_module_deserializer_t * AXIS2_CALL
+woden_soap_module_deserializer_to_ext_deserializer(
+        void *mod_deser,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_soap_module_deserializer_resolve_methods(
+        woden_soap_module_deserializer_t *mod_deser,
+        const axis2_env_t *env,
+        woden_soap_module_deserializer_t *mod_deser_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_SOAP_MODULE_DESERIALIZER_FREE(mod_deser, env) \
+      (((woden_soap_module_deserializer_t *) mod_deser)->ops->free(mod_deser, env))
+
+#define WODEN_SOAP_MODULE_DESERIALIZER_SUPER_OBJS(mod_deser, env) \
+      (((woden_soap_module_deserializer_t *) mod_deser)->ops->super_objs(mod_deser, env))
+
+#define WODEN_SOAP_MODULE_DESERIALIZER_TYPE(mod_deser, env) \
+      (((woden_soap_module_deserializer_t *) mod_deser)->ops->type(mod_deser, env))
+
+#define WODEN_SOAP_MODULE_DESERIALIZER_GET_BASE_IMPL(mod_deser, env) \
+      (((woden_soap_module_deserializer_t *) mod_deser)->ops->get_base_impl(mod_deser, env))
+
+#define WODEN_SOAP_MODULE_DESERIALIZER_UNMARSHALL(mod_deser, env, \
+        parent_type, parent, element_type, el_node, desc, ext_reg) \
+      (((woden_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_SOAP_MODULE_DESERIALIZER_H */

Added: webservices/axis2/trunk/c/woden/include/woden_soap_module_element.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_soap_module_element.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_soap_module_element.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_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_SOAP_MODULE_ELEMENT_H
+#define WODEN_SOAP_MODULE_ELEMENT_H
+
+/**
+ * @file woden_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_soap_module_element woden_soap_module_element_t;
+typedef struct woden_soap_module_element_ops woden_soap_module_element_ops_t;
+typedef union woden_soap_module_element_base woden_soap_module_element_base_t;
+
+/** @defgroup woden_soap_module_element Soap Module Element
+  * @ingroup axiom_soap_module
+  * @{
+  */
+
+struct woden_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_soap_module_element_base
+{
+    woden_ext_element_t ext_element;
+    woden_attr_extensible_t attr_extensible;
+    woden_element_extensible_t element_extensible;
+};
+
+struct woden_soap_module_element
+{
+    woden_soap_module_element_base_t base;
+    woden_soap_module_element_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_soap_module_element_t * AXIS2_CALL
+woden_soap_module_element_create(
+        const axis2_env_t *env);
+
+/************************Woden C Internal Methods******************************/
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_soap_module_element_resolve_methods(
+        woden_soap_module_element_t *soap_module_element,
+        const axis2_env_t *env,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_SOAP_MODULE_ELEMENT_FREE(soap_module_element, env) \
+      (((woden_soap_module_element_t *) soap_module_element)->ops->\
+         free (soap_module_element, env))
+
+#define WODEN_SOAP_MODULE_ELEMENT_TYPE(soap_module_element, env) \
+      (((woden_soap_module_element_t *) soap_module_element)->ops->\
+         type (soap_module_element, env))
+
+#define WODEN_SOAP_MODULE_ELEMENT_SET_REF(soap_module_element, env, uri) \
+      (((woden_soap_module_element_t *) soap_module_element)->ops->\
+         set_ref (soap_module_element, env, uri))
+
+#define WODEN_SOAP_MODULE_ELEMENT_GET_REF(soap_module_element, env) \
+      (((woden_soap_module_element_t *) soap_module_element)->ops->\
+        get_ref  (soap_module_element, env))
+
+#define WODEN_SOAP_MODULE_ELEMENT_SET_PARENT_ELEMENT(soap_module_element, env, wsdl_el) \
+      (((woden_soap_module_element_t *) soap_module_element)->ops->\
+         set_parent_element (soap_module_element, env, wsdl_el))
+
+#define WODEN_SOAP_MODULE_ELEMENT_GET_PARENT_ELEMENT(soap_module_element, env) \
+      (((woden_soap_module_element_t *) soap_module_element)->ops->\
+        get_parent_element  (soap_module_element, env))
+
+#define WODEN_SOAP_MODULE_ELEMENT_ADD_DOCUMENTATION_ELEMENT(soap_module_element, env, doc_el) \
+      (((woden_soap_module_element_t *) soap_module_element)->ops->\
+        add_documentation_element  (soap_module_element, env, doc_el))
+
+#define WODEN_SOAP_MODULE_ELEMENT_GET_DOCUMENTATION_ELEMENTS(soap_module_element, env) \
+      (((woden_soap_module_element_t *) soap_module_element)->ops->\
+        get_documentation_elements  (soap_module_element, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_SOAP_MODULE_ELEMENT_H */

Added: webservices/axis2/trunk/c/woden/include/woden_string_attr.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_string_attr.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_string_attr.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_string_attr.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,153 @@
+/*
+ * 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_STRING_ATTR_H
+#define WODEN_STRING_ATTR_H
+
+/**
+ * @file woden_string_attr.h
+ * @brief Axis2 String Attribute Interface
+ *          This class represents XML attribute information items of type xs:string.
+ */
+
+#include <woden_xml_attr.h>
+#include <woden.h>
+
+/** @defgroup woden_string_attr String Attribute
+  * @ingroup woden
+  * @{
+  */
+
+typedef struct woden_string_attr woden_string_attr_t;
+typedef struct woden_string_attr_ops woden_string_attr_ops_t;
+struct axiom_element;
+struct axiom_node;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct woden_string_attr_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *string_attr,
+            const axis2_env_t *env);
+    
+    axis2_status_t (AXIS2_CALL *
+    to_string_attr_free) (
+            void *string_attr,
+            const axis2_env_t *env);
+    
+    woden_obj_types_t (AXIS2_CALL *
+    type) (
+            void *string_attr,
+            const axis2_env_t *env);
+
+    /**
+     * @return the base implementation class
+     */
+    woden_xml_attr_t *(AXIS2_CALL *
+    get_base_impl) (
+            void *string_attr,
+            const axis2_env_t *env);
+
+    /* ************************************************************
+     *  QNameAttr interface declared methods 
+     * ************************************************************/
+
+    axis2_char_t *(AXIS2_CALL *
+    get_string) (
+            void *string_attr,
+            const axis2_env_t *env);
+
+    /* ************************************************************
+     *  Non-API implementation methods 
+     * ************************************************************/
+  
+    /*
+     * Convert a string of type xs:string to a axis2_char_t.
+     * A null argument will return a null value.
+     * Any conversion error will be reported and a null value will be returned.
+     */
+    void *(AXIS2_CALL *
+    convert) (
+            void *string_attr,
+            const axis2_env_t *env,
+            struct axiom_element *owner_el,
+            struct axiom_node *owner_node,
+            axis2_char_t *attr_value);
+
+  
+};
+
+struct woden_string_attr
+{
+    woden_xml_attr_t base;
+    woden_string_attr_ops_t *ops;
+};
+
+/*
+ * TODO This constructor is not used for extension attributes, but may be useful if
+ * parsing of native WSDL attributes is changed to use the XMLAttr interface.
+ */
+AXIS2_EXTERN woden_string_attr_t * AXIS2_CALL
+woden_string_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_string_attr_resolve_methods(
+        woden_string_attr_t *string_attr,
+        const axis2_env_t *env,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_STRING_ATTR_FREE(string_attr, env) \
+      (((woden_string_attr_t *) string_attr)->ops->\
+         free(string_attr, env))
+
+#define WODEN_STRING_ATTR_TYPE(string_attr, env) \
+      (((woden_string_attr_t *) string_attr)->ops->\
+         type(string_attr, env))
+
+#define WODEN_STRING_ATTR_GET_BASE_IMPL(string_attr, env) \
+      (((woden_string_attr_t *) string_attr)->ops->\
+         get_base_impl(string_attr, env))
+
+#define WODEN_STRING_ATTR_GET_STRING(string_attr, env) \
+      (((woden_string_attr_t *) string_attr)->ops->\
+         get_string(string_attr, env))
+
+#define WODEN_STRING_ATTR_CONVERT(string_attr, env) \
+      (((woden_string_attr_t *) string_attr)->ops->\
+         convert(string_attr, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_STRING_ATTR_H */

Added: webservices/axis2/trunk/c/woden/include/woden_svc.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_svc.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_svc.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_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_SVC_H
+#define WODEN_SVC_H
+
+/**
+ * @file woden_svc.h
+ * @brief Axis2 Service Interface
+ * This class represents the Service component and the 
+ * &lt;service&gt; element.
+ * 
+ */
+
+#include <woden.h>
+#include <woden_svc_element.h>
+#include <woden_wsdl_obj.h>
+#include <woden_configurable.h>
+#include <woden_configurable_component.h>
+#include <woden_nc_name.h>
+
+/** @defgroup woden_svc Service
+  * @ingroup woden
+  * @{
+  */
+
+typedef union woden_svc_base woden_svc_base_t;
+typedef struct woden_svc woden_svc_t;
+typedef struct woden_svc_ops woden_svc_ops_t;
+struct woden_documentation_element;
+struct woden_wsdl_component;
+struct woden_documentable;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct woden_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_svc_base
+{
+    woden_configurable_t configurable;
+    woden_svc_element_t svc_element;
+    woden_configurable_component_t configurable_component;
+};
+
+struct woden_svc
+{
+    woden_svc_base_t base;
+    woden_svc_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_svc_t * AXIS2_CALL
+woden_svc_create(
+        const axis2_env_t *env);
+
+
+/***************************Woden C Internal Methods***************************/
+AXIS2_EXTERN woden_svc_t * AXIS2_CALL
+woden_svc_to_svc_element(
+        void *svc,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_svc_t * AXIS2_CALL
+woden_svc_to_documentable_element(
+        void *svc,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_svc_t * AXIS2_CALL
+woden_svc_to_configurable(
+        void *svc,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_svc_t * AXIS2_CALL
+woden_svc_to_configurable_component(
+        void *svc,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_svc_t * AXIS2_CALL
+woden_svc_to_wsdl_component(
+        void *svc,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_svc_t * AXIS2_CALL
+woden_svc_to_configurable_element(
+        void *svc,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_svc_t * AXIS2_CALL
+woden_svc_to_documentable(
+        void *svc,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_svc_t * AXIS2_CALL
+woden_svc_to_attr_extensible(
+        void *svc,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_svc_t * AXIS2_CALL
+woden_svc_to_element_extensible(
+        void *svc,
+        const axis2_env_t *env);
+
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_svc_resolve_methods(
+        woden_svc_t *svc,
+        const axis2_env_t *env,
+        woden_svc_t *svc_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_SVC_FREE(svc, env) \
+      (((woden_svc_t *) svc)->ops->free(svc, env))
+
+#define WODEN_SVC_SUPER_OBJS(svc, env) \
+      (((woden_svc_t *) svc)->ops->super_objs(svc, env))
+
+#define WODEN_SVC_TYPE(svc, env) \
+      (((woden_svc_t *) svc)->ops->type(svc, env))
+
+#define WODEN_SVC_GET_BASE_IMPL(svc, env) \
+      (((woden_svc_t *) svc)->ops->get_base_impl(svc, env))
+
+#define WODEN_SVC_GET_QNAME(svc, env) \
+      (((woden_svc_t *) svc)->ops->\
+         get_qname(svc, env))
+
+#define WODEN_SVC_GET_INTERFACE(svc, env) \
+      (((woden_svc_t *) svc)->ops->\
+         get_interface(svc, env))
+
+#define WODEN_SVC_GET_ENDPOINTS(svc, env) \
+      (((woden_svc_t *) svc)->ops->\
+         get_endpoints(svc, env))
+
+#define WODEN_SVC_SET_INTERFACE_ELEMENT(svc, env, interface) \
+      (((woden_svc_t *) svc)->ops->\
+         set_interface_element(svc, env, interface))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_SVC_H */

Added: webservices/axis2/trunk/c/woden/include/woden_svc_element.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_svc_element.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_svc_element.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_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_SVC_ELEMENT_H
+#define WODEN_SVC_ELEMENT_H
+
+/**
+ * @file woden_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_svc_element woden_svc_element_t;
+typedef struct woden_svc_element_ops woden_svc_element_ops_t;
+typedef union woden_svc_element_base woden_svc_element_base_t;
+
+/** @defgroup woden_svc_element Service Element
+  * @ingroup woden
+  * @{
+  */
+
+struct woden_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_svc_element_base
+{
+    woden_documentable_element_t documentable_element;
+    woden_configurable_element_t configurable_element;
+    woden_nested_element_t nested_element;
+};
+
+struct woden_svc_element
+{
+    woden_svc_element_base_t base;
+    woden_svc_element_ops_t *ops;
+};
+
+/************************Woden C Internal Methods******************************/
+axis2_status_t AXIS2_CALL
+woden_svc_element_resolve_methods(
+        woden_svc_element_t *svc_element,
+        const axis2_env_t *env,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_SVC_ELEMENT_FREE(svc_el, env) \
+      (((woden_svc_element_t *) svc_el)->ops->\
+         free (svc_el, env))
+
+#define WODEN_SVC_ELEMENT_TYPE(svc_el, env) \
+      (((woden_svc_element_t *) svc_el)->ops->\
+         type (svc_el, env))
+
+#define WODEN_SVC_ELEMENT_SET_QNAME(svc_el, env, qname) \
+      (((woden_svc_element_t *) svc_el)->ops->\
+         set_qname(svc_el, env, qname))
+
+#define WODEN_SVC_ELEMENT_GET_QNAME(svc_el, env) \
+      (((woden_svc_element_t *) svc_el)->ops->\
+         get_qname(svc_el, env))
+
+#define WODEN_SVC_ELEMENT_SET_INTERFACE_QNAME(svc_el, env, qname) \
+      (((woden_svc_element_t *) svc_el)->ops->\
+         set_interface_qname(svc_el, env, qname))
+
+#define WODEN_SVC_ELEMENT_GET_INTERFACE_QNAME(svc_el, env) \
+      (((woden_svc_element_t *) svc_el)->ops->\
+         get_interface_qname(svc_el, env))
+
+#define WODEN_SVC_ELEMENT_GET_INTERFACE_ELEMENT(svc_el, env) \
+      (((woden_svc_element_t *) svc_el)->ops->\
+         get_interface_element(svc_el, env))
+
+#define WODEN_SVC_ELEMENT_ADD_ENDPOINT_ELEMENT(svc_el, env, endpoint) \
+      (((woden_svc_element_t *) svc_el)->ops->\
+         add_endpoint_element(svc_el, env, endpoint))
+
+#define WODEN_SVC_ELEMENT_GET_ENDPOINT_ELEMENTS(svc_el, env) \
+      (((woden_svc_element_t *) svc_el)->ops->\
+         get_endpoint_elements(svc_el, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_SVC_ELEMENT_H */

Added: webservices/axis2/trunk/c/woden/include/woden_type_def.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_type_def.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_type_def.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_type_def.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,206 @@
+/*
+ * 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_TYPE_DEF_H
+#define WODEN_TYPE_DEF_H
+
+/**
+ * @file 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.h>
+#include <axis2_hash.h>
+#include <axis2_qname.h>
+#include <axis2_uri.h>
+
+/** @defgroup woden_type_def Type Definition
+  * @ingroup woden
+  * @{
+  */
+
+typedef union woden_type_def_base woden_type_def_base_t;
+typedef struct woden_type_def woden_type_def_t;
+typedef struct woden_type_def_ops woden_type_def_ops_t;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct woden_type_def_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (void *type_def,
+            const axis2_env_t *env);
+    
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (void *type_def,
+            const axis2_env_t *env);
+    
+    woden_obj_types_t (AXIS2_CALL *
+    type) (void *type_def,
+            const axis2_env_t *env);
+    /**
+     * @return the base implementation class
+     */
+    void *(AXIS2_CALL *
+    get_base_impl) (
+            void *type_def,
+            const axis2_env_t *env);
+
+    axis2_status_t (AXIS2_CALL *
+    set_qname) (
+            void *type_def,
+            const axis2_env_t *env,
+            axis2_qname_t *qname);
+
+    axis2_qname_t *(AXIS2_CALL *
+    get_qname) (
+            void *type_def,
+            const axis2_env_t *env);
+
+    axis2_status_t (AXIS2_CALL *
+    set_system) (
+            void *type_def,
+            const axis2_env_t *env,
+            axis2_uri_t *type_system_uri);
+
+    axis2_uri_t *(AXIS2_CALL *
+    get_system) (
+            void *type_def,
+            const axis2_env_t *env);
+
+    axis2_status_t (AXIS2_CALL *
+    set_content_model) (
+            void *type_def,
+            const axis2_env_t *env,
+            axis2_char_t *content_model);
+
+    axis2_char_t *(AXIS2_CALL *
+    get_content_model) (
+            void *type_def,
+            const axis2_env_t *env);
+
+
+    axis2_status_t (AXIS2_CALL *
+    set_content) (
+            void *type_def,
+            const axis2_env_t *env,
+            void *type_def_content);
+
+    void *(AXIS2_CALL *
+    get_content) (
+            void *type_def,
+            const axis2_env_t *env);
+
+};
+
+struct woden_type_def
+{
+    woden_type_def_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_type_def_t * AXIS2_CALL
+woden_type_def_create(
+        const axis2_env_t *env);
+
+/************************Woden C Internal Methods******************************/
+AXIS2_EXTERN woden_type_def_t * AXIS2_CALL
+woden_type_def_to_type_def_element(
+        void *type_def,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_type_def_t * AXIS2_CALL
+woden_type_def_to_attr_extensible(
+        void *type_def,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_type_def_t * AXIS2_CALL
+woden_type_def_to_element_extensible(
+        void *type_def,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_type_def_resolve_methods(
+        woden_type_def_t *type_def,
+        const axis2_env_t *env,
+        woden_type_def_t *type_def_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+
+#define WODEN_TYPE_DEF_FREE(type_def, env) \
+      (((woden_type_def_t *) type_def)->ops->free(type_def, env))
+
+#define WODEN_TYPE_DEF_SUPER_OBJS(type_def, env) \
+      (((woden_type_def_t *) type_def)->ops->\
+         super_objs(type_def, env))
+
+#define WODEN_TYPE_DEF_TYPE(type_def, env) \
+      (((woden_type_def_t *) type_def)->ops->type(type_def, env))
+
+#define WODEN_TYPE_DEF_GET_BASE_IMPL(type_def, env) \
+      (((woden_type_def_t *) type_def)->ops->\
+         get_base_impl(type_def, env))
+
+#define WODEN_TYPE_DEF_SET_QNAME(type_def, env, qname) \
+      (((woden_type_def_t *) type_def)->ops->\
+         set_qname(type_def, env, qname))
+
+#define WODEN_TYPE_DEF_GET_QNAME(type_def, env) \
+      (((woden_type_def_t *) type_def)->ops->\
+         get_qname(type_def, env))
+
+#define WODEN_TYPE_DEF_SET_SYSTEM(type_def, env, type_system_uri) \
+      (((woden_type_def_t *) type_def)->ops->\
+         set_system(type_def, env, type_system_uri))
+
+#define WODEN_TYPE_DEF_GET_SYSTEM(type_def, env) \
+      (((woden_type_def_t *) type_def)->ops->\
+         get_system(type_def, env))
+
+#define WODEN_TYPE_DEF_SET_CONTENT_MODEL(type_def, env, content_model) \
+      (((woden_type_def_t *) type_def)->ops->\
+         set_content_model(type_def, env, content_model))
+
+#define WODEN_TYPE_DEF_GET_CONTENT_MODEL(type_def, env) \
+      (((woden_type_def_t *) type_def)->ops->\
+         get_content_model(type_def, env))
+
+#define WODEN_TYPE_DEF_SET_CONTENT(type_def, env, type_def_content) \
+      (((woden_type_def_t *) type_def)->ops->\
+         set_content(type_def, env, type_def_content))
+
+#define WODEN_TYPE_DEF_GET_CONTENT(type_def, env) \
+      (((woden_type_def_t *) type_def)->ops->\
+         get_content(type_def, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_TYPE_DEF_H */

Added: webservices/axis2/trunk/c/woden/include/woden_types.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_types.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_types.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_types.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,299 @@
+/*
+ * 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_TYPES_H
+#define WODEN_TYPES_H
+
+/**
+ * @file woden_types.h
+ * @brief Axis2 Types 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.h>
+#include <woden_types_element.h>
+#include <woden_documentable.h>
+#include <woden_nested_component.h>
+#include <woden_wsdl_obj.h>
+#include <xml_schema.h>
+#include <xml_schema_element.h>
+#include <xml_schema_type.h>
+#include <axis2_array_list.h>
+
+
+/** @defgroup woden_types Types
+  * @ingroup woden
+  * @{
+  */
+
+typedef union woden_types_base woden_types_base_t;
+typedef struct woden_types woden_types_t;
+typedef struct woden_types_ops woden_types_ops_t;
+struct woden_documentation_element;
+struct woden_documentation;
+struct xml_schema;
+struct xml_schema_element;
+struct xml_schema_type;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct woden_types_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (void *types,
+            const axis2_env_t *env);
+
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (void *types,
+            const axis2_env_t *env);
+
+    woden_obj_types_t (AXIS2_CALL *
+    type) (void *types,
+            const axis2_env_t *env);
+    /**
+     * @return the base implementation class
+     */
+    struct woden_documentable *(AXIS2_CALL *
+    get_base_impl) (
+            void *types,
+            const axis2_env_t *env);
+    
+    /* ************************************************************
+     *  Non-API implementation methods
+     * ************************************************************/
+
+    /* 
+     * 
+     * Returns the schema element declaration identified by the QName,
+     * providing the element declaration is referenceable to the 
+     * WSDL description (i.e. visible). This means it must exist in a
+     * Schema that has been inlined or resolved from a schema import
+     * within the &lt;types&gt; element according to the schema 
+     * referenceability rules in the WSDL 2.0 spec.
+     * If the element declaration is not referenceable, null is returned.
+     * If validation is disabled, the referenceability rules do not apply
+     * so all schemas are considered referenceable by the WSDL. 
+     * 
+     */
+    void *(AXIS2_CALL * 
+    get_element_declaration) (
+            void *types,
+            const axis2_env_t *env,
+            axis2_qname_t *qname);
+
+    /*
+     * 
+     * Returns the schema type definition identified by the QName,
+     * providing the type definition is referenceable by the 
+     * WSDL description (i.e. visible). This means it must exist in a
+     * Schema that has been inlined or resolved from a schema import
+     * within the &lt;types&gt; element according to the schema
+     * referenceability rules in the WSDL 2.0 spec.
+     * If the type definition is not referenceable, null is returned.
+     * If validation is disabled, the referenceability rules do not apply
+     * so all schemas are considered referenceable by the WSDL.
+     *  
+     */
+    void *(AXIS2_CALL * 
+    get_type_definition) (
+            void *types,
+            const axis2_env_t *env,
+            axis2_qname_t *qname);
+/*
+ * Returns a List of Xml Schema objects for all schemas that are referenceable 
+ * by the containing WSDL. Examples of schemas that are not referenceable include
+ * schemas without a target namespace or schemas resolved from a schema import
+ * whose target namespace does not match the imported namespace. Referenceability
+ * is determined by validation.
+ */
+    axis2_array_list_t *(AXIS2_CALL *
+    get_referenceable_schema_defs) (
+            void *types,
+            const axis2_env_t *env);
+
+    /*
+     * Indicates if the namespace represented by the specified URI
+     * is in-scope or referenceable by the WSDL description. 
+     * This means it must be the target namespace of a schema correctly
+     * imported or inlined directly within the &lt;types&gt; element.
+     * 
+     * @return true if the namespace is in-scope, or false if it is not.
+     * 
+     */
+    axis2_bool_t (AXIS2_CALL * 
+    is_namespace_in_scope_with_namespace_uri) (
+            void *types,
+            const axis2_env_t *env,
+            axis2_uri_t *namespc_uri);
+
+    /*
+     * Indicates if the namespace represented by the specified QName
+     * is in-scope or referenceable by the WSDL description. 
+     * This means it must be the target namespace of a schema correctly
+     * imported or inlined directly within the &lt;types&gt; element.
+     * 
+     */
+    axis2_bool_t (AXIS2_CALL * 
+    is_namespace_in_scope_with_qname) (
+            void *types,
+            const axis2_env_t *env,
+            axis2_qname_t *qname);
+
+    /*
+     * 
+     * Indicates if the namespace represented by the specified String
+     * is in-scope or referenceable by the WSDL description. 
+     * This means it must be the target namespace of a schema correctly
+     * imported or inlined directly within the &lt;types&gt; element.
+     * 
+     */
+    axis2_bool_t (AXIS2_CALL * 
+    is_namespace_in_scope_with_namespace) (
+            void *types,
+            const axis2_env_t *env,
+            axis2_char_t *namespc);
+
+
+};
+
+union woden_types_base
+{
+    woden_documentable_t documentable;
+    woden_types_element_t types_element;
+    woden_nested_component_t nested_component;
+};
+
+struct woden_types
+{
+    woden_types_base_t base;
+    woden_types_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_types_t * AXIS2_CALL
+woden_types_create(
+        const axis2_env_t *env);
+
+
+/***************************Woden C Internal Methods***************************/
+AXIS2_EXTERN woden_types_t * AXIS2_CALL
+woden_types_to_types_element(
+        void *types,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_types_t * AXIS2_CALL
+woden_types_to_nested_element(
+        void *types,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_types_t * AXIS2_CALL
+woden_types_to_documentable_element(
+        void *types,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_types_t * AXIS2_CALL
+woden_types_to_documentable(
+        void *types,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_types_t * AXIS2_CALL
+woden_types_to_wsdl_obj(
+        void *types,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_types_t * AXIS2_CALL
+woden_types_to_nested_component(
+        void *types,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_types_t * AXIS2_CALL
+woden_types_to_wsdl_component(
+        void *types,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_types_t * AXIS2_CALL
+woden_types_to_element_extensible(
+        void *types,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_types_t * AXIS2_CALL
+woden_types_to_attr_extensible(
+        void *types,
+        const axis2_env_t *env);
+
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_types_resolve_methods(
+        woden_types_t *types,
+        const axis2_env_t *env,
+        woden_types_t *types_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_TYPES_FREE(types, env) \
+      (((woden_types_t *) types)->ops->free(types, env))
+
+#define WODEN_TYPES_SUPER_OBJS(types, env) \
+      (((woden_types_t *) types)->ops->super_objs(types, env))
+
+#define WODEN_TYPES_TYPE(types, env) \
+      (((woden_types_t *) types)->ops->type(types, env))
+
+#define WODEN_TYPES_GET_BASE_IMPL(types, env) \
+      (((woden_types_t *) types)->ops->get_base_impl(types, env))
+
+#define WODEN_TYPES_GET_ELEMENT_DECLARATION(types, env, qname) \
+      (((woden_types_t *) types)->ops->\
+         get_element_declaration(types, env, qname))
+
+#define WODEN_TYPES_GET_TYPE_DEFINITION(types, env, qname) \
+      (((woden_types_t *) types)->ops->\
+         get_type_definition(types, env, qname))
+
+#define WODEN_TYPES_GET_REFERENCEABLE_SCHEMA_DEFS(types, env) \
+      (((woden_types_t *) types)->ops->\
+         get_referenceable_schema_defs(types, env))
+
+#define WODEN_TYPES_GET_REFERENCEABLE_SCHEMA_DEFS_WITH_NAMESPACE(types, env, namespc) \
+      (((woden_types_t *) types)->ops->\
+         get_referenceable_schema_defs_with_namespace(types, env, namespc))
+
+#define WODEN_TYPES_IS_NAMESPACE_IN_SCOPE_WITH_NAMESPACE_URI(types, env, namespc_uri) \
+      (((woden_types_t *) types)->ops->\
+         is_namespace_in_scope_with_namespace_uri(types, env, namespc_uri))
+
+#define WODEN_TYPES_IS_NAMESPACE_IN_SCOPE_WITH_QNAME(types, env, qname) \
+      (((woden_types_t *) types)->ops->\
+         is_namespace_in_scope_with_qname(types, env, qname))
+
+#define WODEN_TYPES_IS_NAMESPACE_IN_SCOPE_WITH_NAMESPACE(types, env, namespc) \
+      (((woden_types_t *) types)->ops->\
+         is_namespace_in_scope_with_namespace(types, env, namespc))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_TYPES_H */

Added: webservices/axis2/trunk/c/woden/include/woden_types_element.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_types_element.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_types_element.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_types_element.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,228 @@
+/*
+ * 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_TYPES_ELEMENT_H
+#define WODEN_TYPES_ELEMENT_H
+
+/**
+ * @file woden_types_element.h
+ * @brief Axis2 Types Element Interface
+ * This interface represents the &lt;wsdl:types&gt; element. 
+ * It supports parsing, creating and manipulating a &lt;types&gt; element.
+ * <p>
+ * The data types used in WSDL elements are typically defined within a 
+ * &lt;types&gt; element using a type system such as W3C XML Schema.
+ * Schemas may be imported or inlined within &lt;types&gt;.
+ * A &lt;types&gt; element may contain multiple schema import elements with
+ * the same namespace attribute, so the schemaLocation attribute may be used 
+ * to distinguish them.
+ * Likewise, it is valid to have multiple inline schemas, so the id attribute 
+ * may be used to distinguish them.
+ * 
+ */
+
+#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 <xml_schema.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct woden_types_element woden_types_element_t;
+typedef struct woden_types_element_ops woden_types_element_ops_t;
+struct xml_schema;
+
+/** @defgroup woden_types_element Types Element
+  * @ingroup woden
+  * @{
+  */
+
+struct woden_types_element_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *types_el,
+            const axis2_env_t *env);
+    
+    woden_obj_types_t (AXIS2_CALL *
+    type) (void *types_el,
+            const axis2_env_t *env);
+    
+    /**
+     * Indicates the type system used within the &lt;types&gt; element. 
+     * Typically the W3C XML Schema type system will be used, indicated by 
+     * the namespace "http://www.w3.org/2001/XMLSchema". An alternative
+     * schema-like type system is Relax NG (http://www.relaxng.org/).
+     */
+    axis2_status_t (AXIS2_CALL *
+    set_type_system) (void *types_el,
+            const axis2_env_t *env,
+            axis2_char_t *type_system);
+
+    /**
+     * Get the string indicating the type system used within the &lt;types&gt;
+     * element.
+     */
+    axis2_char_t *(AXIS2_CALL *
+    get_type_system) (void *types_el,
+            const axis2_env_t *env);
+
+    /**
+     * Add a Schema object for a schema inlined or imported within 
+     * the &lt;types&gt; element.
+     * 
+     * @param schema the Schema object.
+     */
+    axis2_status_t (AXIS2_CALL *
+    add_schema) (void *types_el,
+            const axis2_env_t *env,
+            void *schema);
+
+    /**
+     * Delete the specified Schema object.
+     */
+    axis2_status_t (AXIS2_CALL *
+    remove_schema) (
+            void *types_el,
+            const axis2_env_t *env,
+            struct xml_schema *schema);
+    
+    /**
+     * Return the Schemas representing all inlined schemas or schema imports,
+     * in the order in which they occur within the &lt;types&gt; element.
+     * 
+     * @return an array of Schema objects
+     */
+    axis2_array_list_t *(AXIS2_CALL *
+    get_schemas) (
+            void *types_el,
+            const axis2_env_t *env);
+    
+    /**
+     * Return all Schemas where the specified namespace argument is either the
+     * target namespace of an inlined schema or the imported namespace of a 
+     * schema import. Schemas are returned in the order in which they occur 
+     * within the &lt;types&gt; element.
+     * <p>
+     * A null namespace argument will return any inlined schemas missing their
+     * target namespace attribute or any schema imports missing their namespace 
+     * attribute.
+     * 
+     * @return the Schemas for the schema with the specified target namespace.
+     */
+    axis2_array_list_t *(AXIS2_CALL *
+    get_schemas_with_namespace) (
+            void *types_el,
+            const axis2_env_t *env,
+            axis2_uri_t *namespc);
+
+    /**
+     * Return all schemas inlined within the &lt;types&gt; element, in the order
+     * in which they occur within &lt;types&gt;.
+     * 
+     * @return an array of Schema objects.
+     */
+    axis2_array_list_t *(AXIS2_CALL *
+    get_inlined_schemas) (
+            void *types_el,
+            const axis2_env_t *env);
+    
+    /**
+     * Return all schema imports from within the &lt;types&gt; element, in the order
+     * in which they occur within &lt;types&gt;.
+     * 
+     * @return an array of Schema objects.
+     */
+    axis2_array_list_t *(AXIS2_CALL *
+    get_imported_schemas) (
+            void *types_el,
+            const axis2_env_t *env);
+};
+
+struct woden_types_element
+{
+    woden_documentable_element_t documentable_element;
+    woden_types_element_ops_t *ops;
+};
+
+/************************Woden C Internal Methods******************************/
+axis2_status_t AXIS2_CALL
+woden_types_element_resolve_methods(
+        woden_types_element_t *types_element,
+        const axis2_env_t *env,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_TYPES_ELEMENT_FREE(types_el, env) \
+      (((woden_types_element_t *) types_el)->ops->\
+         free (types_el, env))
+
+#define WODEN_TYPES_ELEMENT_TYPE(types_el, env) \
+      (((woden_types_element_t *) types_el)->ops->\
+         type (types_el, env))
+
+#define WODEN_TYPES_ELEMENT_SET_TYPE_SYSTEM(types_el, env, type_system) \
+      (((woden_types_element_t *) types_el)->ops->\
+         set_type_system(types_el, env, type_system))
+
+#define WODEN_TYPES_ELEMENT_GET_TYPE_SYSTEM(types_el, env) \
+      (((woden_types_element_t *) types_el)->ops->\
+         get_type_system(types_el, env))
+
+#define WODEN_TYPES_ELEMENT_ADD_SCHEMA(types_el, env, schema) \
+      (((woden_types_element_t *) types_el)->ops->\
+         add_schema(types_el, env, schema))
+
+#define WODEN_TYPES_ELEMENT_REMOVE_SCHEMA(types_el, env, schema) \
+      (((woden_types_element_t *) types_el)->ops->\
+         remove_schema(types_el, env, schema))
+
+#define WODEN_TYPES_ELEMENT_GET_SCHEMAS(types_el, env) \
+      (((woden_types_element_t *) types_el)->ops->\
+         get_schemas(types_el, env))
+
+#define WODEN_TYPES_ELEMENT_GET_SCHEMAS_WITH_NAMESPACE(types_el, env, \
+        namespc) \
+      (((woden_types_element_t *) types_el)->ops->\
+         get_schemas_with_namespace(types_el, env, namespc))
+
+#define WODEN_TYPES_ELEMENT_GET_INLINED_SCHEMAS(types_el, env) \
+      (((woden_types_element_t *) types_el)->ops->\
+         get_inlined_schemas(types_el, env))
+
+#define WODEN_TYPES_ELEMENT_GET_IMPORTED_SCHEMAS(types_el, env) \
+      (((woden_types_element_t *) types_el)->ops->\
+         get_imported_schemas(types_el, env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_TYPES_ELEMENT_H */

Added: webservices/axis2/trunk/c/woden/include/woden_uri_attr.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_uri_attr.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_uri_attr.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_uri_attr.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,157 @@
+/*
+ * 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_URI_ATTR_H
+#define WODEN_URI_ATTR_H
+
+/**
+ * @file woden_uri_attr.h
+ * @brief Axis2 URI Attribute Interface
+ *          This class represents XML attribute information items of type xs:anyURI.
+ */
+
+#include <woden.h>
+#include <axis2_uri.h>
+#include <woden_xml_attr.h>
+
+/** @defgroup woden_uri_attr URI Attribute
+  * @ingroup woden
+  * @{
+  */
+
+typedef struct woden_uri_attr woden_uri_attr_t;
+typedef struct woden_uri_attr_ops woden_uri_attr_ops_t;
+struct axiom_element;
+struct axiom_node;
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct woden_uri_attr_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *uri_attr,
+            const axis2_env_t *env);
+    
+    axis2_status_t (AXIS2_CALL *
+    to_uri_attr_free) (
+            void *uri_attr,
+            const axis2_env_t *env);
+    
+    woden_obj_types_t (AXIS2_CALL *
+    type) (
+            void *uri_attr,
+            const axis2_env_t *env);
+
+    /**
+     * @return the base implementation class
+     */
+    woden_xml_attr_t *(AXIS2_CALL *
+    get_base_impl) (
+            void *uri_attr,
+            const axis2_env_t *env);
+
+    /* ************************************************************
+     *  QNameAttr interface declared methods 
+     * ************************************************************/
+
+    axis2_uri_t *(AXIS2_CALL *
+    get_uri) (
+            void *uri_attr,
+            const axis2_env_t *env);
+
+    /* ************************************************************
+     *  Non-API implementation methods 
+     * ************************************************************/
+    
+    /*
+     * Convert a string of type xs:anyURI to a axis2_uri_t.
+     * An empty string argument will return an empty string URI.
+     * A null argument will return a null value.
+     * Any conversion error will be reported and a null value will be returned.
+     */
+    void *(AXIS2_CALL *
+    convert) (
+            void *uri_attr,
+            const axis2_env_t *env,
+            struct axiom_element *owner_el,
+            struct axiom_node *owner_node,
+            axis2_char_t *attr_value);
+
+  
+};
+
+struct woden_uri_attr
+{
+    woden_xml_attr_t base;
+    woden_uri_attr_ops_t *ops;
+};
+
+/*
+ * TODO This constructor is not used for extension attributes, but may be useful if
+ * parsing of native WSDL attributes is changed to use the XMLAttr interface.
+ */
+AXIS2_EXTERN woden_uri_attr_t * AXIS2_CALL
+woden_uri_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_uri_attr_resolve_methods(
+        woden_uri_attr_t *uri_attr,
+        const axis2_env_t *env,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_URI_ATTR_FREE(uri_attr, env) \
+      (((woden_uri_attr_t *) uri_attr)->ops->free(uri_attr, env))
+
+#define WODEN_URI_ATTR_TO_URI_ATTR_FREE(uri_attr, env) \
+      (((woden_uri_attr_t *) uri_attr)->ops->\
+         to_uri_attr_free(uri_attr, env))
+
+#define WODEN_URI_ATTR_TYPE(uri_attr, env) \
+      (((woden_uri_attr_t *) uri_attr)->ops->type(uri_attr, env))
+
+#define WODEN_URI_ATTR_GET_BASE_IMPL(uri_attr, env) \
+      (((woden_uri_attr_t *) uri_attr)->ops->get_base_impl(uri_attr, \
+                                                                        env))
+
+#define WODEN_URI_ATTR_GET_URI(uri_attr, env) \
+      (((woden_uri_attr_t *) uri_attr)->ops->get_uri(uri_attr, \
+                                                                    env))
+
+#define WODEN_URI_ATTR_CONVERT(uri_attr, env) \
+      (((woden_uri_attr_t *) uri_attr)->ops->convert(uri_attr, \
+                                                                       env))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_URI_ATTR_H */

Added: webservices/axis2/trunk/c/woden/include/woden_wsdl10_binding_msg_ref.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_wsdl10_binding_msg_ref.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_wsdl10_binding_msg_ref.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_wsdl10_binding_msg_ref.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,208 @@
+/*
+ * 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_BINDING_MSG_REF_H
+#define WODEN_WSDL10_BINDING_MSG_REF_H
+
+/**
+ * @file woden_wsdl10_binding_msg_ref.h
+ * @brief Axis2 Binding Message Reference Binding Message Reference
+ * This class represents the Binding Message Reference component of the 
+ * WSDL 2.0 Component model and the &lt;input&gt; and &lt;output&gt; 
+ * child elements of a WSDL binding &lt;operation&gt;. 
+ * 
+ */
+
+#include <woden.h>
+#include <woden_wsdl10_binding_msg_ref_element.h>
+#include <woden_nested_configurable.h>
+#include <axis2_qname.h>
+
+/** @defgroup woden_wsdl10_binding_msg_ref Binding Message Reference
+  * @ingroup woden
+  * @{
+  */
+
+typedef union woden_wsdl10_binding_msg_ref_base woden_wsdl10_binding_msg_ref_base_t;
+typedef struct woden_wsdl10_binding_msg_ref woden_wsdl10_binding_msg_ref_t;
+typedef struct woden_wsdl10_binding_msg_ref_ops woden_wsdl10_binding_msg_ref_ops_t;
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct woden_wsdl10_binding_msg_ref_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (void *binding_msg_ref,
+            const axis2_env_t *env);
+
+    axis2_status_t (AXIS2_CALL *
+    to_binding_msg_ref_free) (void *binding_msg_ref,
+            const axis2_env_t *env);
+    
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (void *binding_msg_ref,
+            const axis2_env_t *env);
+
+    woden_obj_types_t (AXIS2_CALL *
+    type) (void *binding_msg_ref,
+            const axis2_env_t *env);
+    /**
+     * @return the base implementation class
+     */
+    struct woden_nested_configurable *(AXIS2_CALL *
+    get_base_impl) (
+            void *binding_msg_ref,
+            const axis2_env_t *env);
+
+    void *(AXIS2_CALL *
+    get_interface_msg_ref) (
+            void *binding_msg_ref,
+            const axis2_env_t *env);
+
+    void *(AXIS2_CALL *
+    to_element)  (
+            void *binding_msg_ref,
+            const axis2_env_t *env);
+
+    axis2_status_t (AXIS2_CALL *
+    set_interface_msg_ref_element) (
+            void *binding_msg_ref,
+            const axis2_env_t *env,
+            void *int_msg_ref);
+
+};
+
+union woden_wsdl10_binding_msg_ref_base
+{
+    woden_nested_configurable_t nested_configurable;
+    woden_wsdl10_binding_msg_ref_element_t binding_msg_ref_element;
+};
+
+struct woden_wsdl10_binding_msg_ref
+{
+    woden_wsdl10_binding_msg_ref_base_t base;
+    woden_wsdl10_binding_msg_ref_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_wsdl10_binding_msg_ref_t * AXIS2_CALL
+woden_wsdl10_binding_msg_ref_create(
+        const axis2_env_t *env);
+
+
+/***************************Woden C Internal Methods***************************/
+AXIS2_EXTERN woden_wsdl10_binding_msg_ref_t * AXIS2_CALL
+woden_wsdl10_binding_msg_ref_to_binding_msg_ref_element(
+        void *binding_msg_ref,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_binding_msg_ref_t * AXIS2_CALL
+woden_wsdl10_binding_msg_ref_to_nested_configurable(
+        void *binding_msg_ref,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_binding_msg_ref_t * AXIS2_CALL
+woden_wsdl10_binding_msg_ref_to_configurable(
+        void *binding_msg_ref,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_binding_msg_ref_t * AXIS2_CALL
+woden_wsdl10_binding_msg_ref_to_wsdl_obj(
+        void *binding_msg_ref,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_binding_msg_ref_t * AXIS2_CALL
+woden_wsdl10_binding_msg_ref_to_nested_element(
+        void *binding_msg_ref,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_binding_msg_ref_t * AXIS2_CALL
+woden_wsdl10_binding_msg_ref_to_wsdl_component(
+        void *binding_msg_ref,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_binding_msg_ref_t * AXIS2_CALL
+woden_wsdl10_binding_msg_ref_to_configurable_element(
+        void *binding_msg_ref,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_binding_msg_ref_t * AXIS2_CALL
+woden_wsdl10_binding_msg_ref_to_documentable_element(
+        void *binding_msg_ref,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_binding_msg_ref_t * AXIS2_CALL
+woden_wsdl10_binding_msg_ref_to_documentable(
+        void *binding_msg_ref,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_binding_msg_ref_t * AXIS2_CALL
+woden_wsdl10_binding_msg_ref_to_attr_extensible(
+        void *binding_msg_ref,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_binding_msg_ref_t * AXIS2_CALL
+woden_wsdl10_binding_msg_ref_to_element_extensible(
+        void *binding_msg_ref,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_wsdl10_binding_msg_ref_resolve_methods(
+        woden_wsdl10_binding_msg_ref_t *binding_msg_ref,
+        const axis2_env_t *env,
+        woden_wsdl10_binding_msg_ref_t *binding_msg_ref_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_WSDL10_BINDING_MSG_REF_FREE(binding_msg_ref, env) \
+      (((woden_wsdl10_binding_msg_ref_t *) binding_msg_ref)->ops->free(binding_msg_ref, env))
+
+#define WODEN_WSDL10_BINDING_MSG_REF_TO_BINDING_MSG_REF_FREE(binding_msg_ref, env) \
+      (((woden_wsdl10_binding_msg_ref_t *) binding_msg_ref)->ops->to_binding_msg_ref_free(binding_msg_ref, env))
+
+#define WODEN_WSDL10_BINDING_MSG_REF_SUPER_OBJS(binding_msg_ref, env) \
+      (((woden_wsdl10_binding_msg_ref_t *) binding_msg_ref)->ops->super_objs(binding_msg_ref, env))
+
+#define WODEN_WSDL10_BINDING_MSG_REF_TYPE(binding_msg_ref, env) \
+      (((woden_wsdl10_binding_msg_ref_t *) binding_msg_ref)->ops->type(binding_msg_ref, env))
+
+#define WODEN_WSDL10_BINDING_MSG_REF_GET_BASE_IMPL(binding_msg_ref, env) \
+      (((woden_wsdl10_binding_msg_ref_t *) binding_msg_ref)->ops->get_base_impl(binding_msg_ref, env))
+
+#define WODEN_WSDL10_BINDING_MSG_REF_GET_INTERFACE_MSG_REF(binding_msg_ref, env) \
+      (((woden_wsdl10_binding_msg_ref_t *) binding_msg_ref)->ops->\
+         get_interface_msg_ref(binding_msg_ref, env))
+
+#define WODEN_WSDL10_BINDING_MSG_REF_TO_ELEMENT(binding_msg_ref, env) \
+      (((woden_wsdl10_binding_msg_ref_t *) binding_msg_ref)->ops->\
+         to_element(binding_msg_ref, env))
+
+#define WODEN_WSDL10_BINDING_MSG_REF_SET_INTERFACE_MSG_REF_ELEMENT(binding_msg_ref, env, int_msg_ref) \
+      (((woden_wsdl10_binding_msg_ref_t *) binding_msg_ref)->ops->\
+         set_interface_msg_ref_element(binding_msg_ref, env, int_msg_ref))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_WSDL10_BINDING_MSG_REF_H */

Added: webservices/axis2/trunk/c/woden/include/woden_wsdl10_binding_msg_ref_element.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_wsdl10_binding_msg_ref_element.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_wsdl10_binding_msg_ref_element.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_wsdl10_binding_msg_ref_element.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,152 @@
+/*
+ * 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_BINDING_MSG_REF_ELEMENT_H
+#define WODEN_WSDL10_BINDING_MSG_REF_ELEMENT_H
+
+/**
+ * @file woden_wsdl10_binding_msg_ref_element.h
+ * @brief Axis2 Binding Msg Reference Element Binding
+ * This interface represents the &lt;input&gt; and &lt;output&gt; 
+ * child elements of a WSDL binding &lt;operation&gt;. 
+ */
+
+#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_documentable_element.h>
+#include <woden_configurable_element.h>
+#include <woden_nested_element.h>
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct woden_wsdl10_binding_msg_ref_element woden_wsdl10_binding_msg_ref_element_t;
+typedef struct woden_wsdl10_binding_msg_ref_element_ops woden_wsdl10_binding_msg_ref_element_ops_t;
+typedef union woden_wsdl10_binding_msg_ref_element_base woden_wsdl10_binding_msg_ref_element_base_t;
+
+/** @defgroup woden_wsdl10_binding_msg_ref_element Binding Msg Reference Element
+  * @ingroup axis2_binding
+  * @{
+  */
+
+struct woden_wsdl10_binding_msg_ref_element_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (
+            void *binding_msg_ref_element,
+            const axis2_env_t *env);
+ 
+    woden_obj_types_t (AXIS2_CALL *
+    type) (
+            void *binding_msg_ref_element,
+            const axis2_env_t *env);
+    
+    axis2_status_t (AXIS2_CALL *
+    set_qname) (
+            void *iface_fault_ele,
+            const axis2_env_t *env,
+            axis2_qname_t *qname);
+
+    axis2_qname_t *(AXIS2_CALL *
+    get_qname) (
+            void *iface_fault_ele,
+            const axis2_env_t *env);
+ 
+    axis2_status_t (AXIS2_CALL *
+    set_direction) (
+            void *iface_fault_ele,
+            const axis2_env_t *env,
+            void *dir);
+
+    void *(AXIS2_CALL *
+    get_direction) (
+            void *iface_fault_ele,
+            const axis2_env_t *env);
+    
+
+};
+
+union woden_wsdl10_binding_msg_ref_element_base
+{
+    woden_documentable_element_t documentable_element;
+    woden_configurable_element_t configurable_element;
+    woden_nested_element_t nested_element;
+};
+
+struct woden_wsdl10_binding_msg_ref_element
+{
+    woden_wsdl10_binding_msg_ref_element_base_t base;
+    woden_wsdl10_binding_msg_ref_element_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_wsdl10_binding_msg_ref_element_t * AXIS2_CALL
+woden_wsdl10_binding_msg_ref_element_create(
+        const axis2_env_t *env);
+
+/************************Woden C Internal Methods******************************/
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_wsdl10_binding_msg_ref_element_resolve_methods(
+        woden_wsdl10_binding_msg_ref_element_t *binding_msg_ref_element,
+        const axis2_env_t *env,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_WSDL10_BINDING_MSG_REF_ELEMENT_FREE(binding_msg_ref_element, env) \
+      (((woden_wsdl10_binding_msg_ref_element_t *) binding_msg_ref_element)->ops->\
+         free (binding_msg_ref_element, env))
+
+#define WODEN_WSDL10_BINDING_MSG_REF_ELEMENT_TYPE(binding_msg_ref_element, env) \
+      (((woden_wsdl10_binding_msg_ref_element_t *) binding_msg_ref_element)->ops->\
+         type (binding_msg_ref_element, env))
+
+#define WODEN_WSDL10_BINDING_MSG_REF_ELEMENT_SET_QNAME(binding_msg_ref_element, env, qname) \
+      (((woden_wsdl10_binding_msg_ref_element_t *) binding_msg_ref_element)->ops->\
+         set_qname (binding_msg_ref_element, env, qname))
+
+#define WODEN_WSDL10_BINDING_MSG_REF_ELEMENT_GET_QNAME(binding_msg_ref_element, env) \
+      (((woden_wsdl10_binding_msg_ref_element_t *) binding_msg_ref_element)->ops->\
+        get_qname  (binding_msg_ref_element, env))
+
+#define WODEN_WSDL10_BINDING_MSG_REF_ELEMENT_SET_DIRECTION(binding_msg_ref_element, env, dir) \
+      (((woden_wsdl10_binding_msg_ref_element_t *) binding_msg_ref_element)->ops->\
+         set_direction (binding_msg_ref_element, env, dir))
+
+#define WODEN_WSDL10_BINDING_MSG_REF_ELEMENT_GET_DIRECTION(binding_msg_ref_element, env) \
+      (((woden_wsdl10_binding_msg_ref_element_t *) binding_msg_ref_element)->ops->\
+         get_direction (binding_msg_ref_element, env))
+
+
+
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_WSDL10_BINDING_MSG_REF_ELEMENT_H */

Added: webservices/axis2/trunk/c/woden/include/woden_wsdl10_binding_op.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_wsdl10_binding_op.h?rev=419452&view=auto
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_wsdl10_binding_op.h (added)
+++ webservices/axis2/trunk/c/woden/include/woden_wsdl10_binding_op.h Wed Jul  5 23:02:19 2006
@@ -0,0 +1,226 @@
+/*
+ * 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_BINDING_OP_H
+#define WODEN_WSDL10_BINDING_OP_H
+
+/**
+ * @file woden_wsdl10_binding_op.h
+ * @brief Axis2 Binding Operation Binding Operation
+ * This class represents the Binding Operation component from the WSDL 2.0 Component Model 
+ * and the &lt;operation&gt; child element of the WSDL &lt;binding&gt; element.
+ * 
+ */
+
+#include <woden.h>
+#include <woden_wsdl10_binding_op_element.h>
+#include <woden_nested_configurable.h>
+#include <axis2_qname.h>
+
+/** @defgroup woden_wsdl10_binding_op Binding Operation
+  * @ingroup woden
+  * @{
+  */
+
+typedef union woden_wsdl10_binding_op_base woden_wsdl10_binding_op_base_t;
+typedef struct woden_wsdl10_binding_op woden_wsdl10_binding_op_t;
+typedef struct woden_wsdl10_binding_op_ops woden_wsdl10_binding_op_ops_t;
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+struct woden_wsdl10_binding_op_ops
+{
+   /** 
+     * Deallocate memory
+     * @return status code
+     */
+    axis2_status_t (AXIS2_CALL *
+    free) (void *binding_op,
+            const axis2_env_t *env);
+
+    axis2_status_t (AXIS2_CALL *
+    to_binding_op_free) (void *binding_op,
+            const axis2_env_t *env);
+    
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (void *binding_op,
+            const axis2_env_t *env);
+
+    woden_obj_types_t (AXIS2_CALL *
+    type) (void *binding_op,
+            const axis2_env_t *env);
+    /**
+     * @return the base implementation class
+     */
+    struct woden_nested_configurable *(AXIS2_CALL *
+    get_base_impl) (
+            void *binding_op,
+            const axis2_env_t *env);
+
+    void *(AXIS2_CALL *
+    get_interface_op) (
+            void *binding_op,
+            const axis2_env_t *env);
+
+    axis2_array_list_t *(AXIS2_CALL *
+    get_binding_msg_refs) (
+            void *binding_op,
+            const axis2_env_t *env);
+
+    axis2_array_list_t *(AXIS2_CALL *
+    get_binding_fault_refs) (
+            void *binding_op,
+            const axis2_env_t *env);
+
+    void *(AXIS2_CALL *
+    to_element)  (
+            void *binding_op,
+            const axis2_env_t *env);
+
+    axis2_status_t (AXIS2_CALL *
+    set_interface_op_element) (
+            void *binding_op,
+            const axis2_env_t *env,
+            void *int_op);
+
+};
+
+union woden_wsdl10_binding_op_base
+{
+    woden_nested_configurable_t nested_configurable;
+    woden_wsdl10_binding_op_element_t binding_op_element;
+};
+
+struct woden_wsdl10_binding_op
+{
+    woden_wsdl10_binding_op_base_t base;
+    woden_wsdl10_binding_op_ops_t *ops;
+};
+
+AXIS2_EXTERN woden_wsdl10_binding_op_t * AXIS2_CALL
+woden_wsdl10_binding_op_create(
+        const axis2_env_t *env);
+
+
+/***************************Woden C Internal Methods***************************/
+AXIS2_EXTERN woden_wsdl10_binding_op_t * AXIS2_CALL
+woden_wsdl10_binding_op_to_binding_op_element(
+        void *binding_op,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_binding_op_t * AXIS2_CALL
+woden_wsdl10_binding_op_to_nested_configurable(
+        void *binding_op,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_binding_op_t * AXIS2_CALL
+woden_wsdl10_binding_op_to_configurable(
+        void *binding_op,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_binding_op_t * AXIS2_CALL
+woden_wsdl10_binding_op_to_wsdl_obj(
+        void *binding_op,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_binding_op_t * AXIS2_CALL
+woden_wsdl10_binding_op_to_nested_element(
+        void *binding_op,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_binding_op_t * AXIS2_CALL
+woden_wsdl10_binding_op_to_wsdl_component(
+        void *binding_op,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_binding_op_t * AXIS2_CALL
+woden_wsdl10_binding_op_to_configurable_element(
+        void *binding_op,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_binding_op_t * AXIS2_CALL
+woden_wsdl10_binding_op_to_documentable_element(
+        void *binding_op,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_binding_op_t * AXIS2_CALL
+woden_wsdl10_binding_op_to_documentable(
+        void *binding_op,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_binding_op_t * AXIS2_CALL
+woden_wsdl10_binding_op_to_attr_extensible(
+        void *binding_op,
+        const axis2_env_t *env);
+
+AXIS2_EXTERN woden_wsdl10_binding_op_t * AXIS2_CALL
+woden_wsdl10_binding_op_to_element_extensible(
+        void *binding_op,
+        const axis2_env_t *env);
+
+
+AXIS2_EXTERN axis2_status_t AXIS2_CALL
+woden_wsdl10_binding_op_resolve_methods(
+        woden_wsdl10_binding_op_t *binding_op,
+        const axis2_env_t *env,
+        woden_wsdl10_binding_op_t *binding_op_impl,
+        axis2_hash_t *methods);
+/************************End of Woden C Internal Methods***********************/
+
+#define WODEN_WSDL10_BINDING_OP_FREE(binding_op, env) \
+      (((woden_wsdl10_binding_op_t *) binding_op)->ops->free(binding_op, env))
+
+#define WODEN_WSDL10_BINDING_OP_TO_BINDING_OP_FREE(binding_op, env) \
+      (((woden_wsdl10_binding_op_t *) binding_op)->ops->to_binding_op_free(binding_op, env))
+
+#define WODEN_WSDL10_BINDING_OP_SUPER_OBJS(binding_op, env) \
+      (((woden_wsdl10_binding_op_t *) binding_op)->ops->super_objs(binding_op, env))
+
+#define WODEN_WSDL10_BINDING_OP_TYPE(binding_op, env) \
+      (((woden_wsdl10_binding_op_t *) binding_op)->ops->type(binding_op, env))
+
+#define WODEN_WSDL10_BINDING_OP_GET_BASE_IMPL(binding_op, env) \
+      (((woden_wsdl10_binding_op_t *) binding_op)->ops->get_base_impl(binding_op, env))
+
+#define WODEN_WSDL10_BINDING_OP_GET_INTERFACE_OP(binding_op, env) \
+      (((woden_wsdl10_binding_op_t *) binding_op)->ops->\
+         get_interface_op(binding_op, env))
+
+#define WODEN_WSDL10_BINDING_OP_GET_BINDING_MSG_REFS(binding_op, env) \
+      (((woden_wsdl10_binding_op_t *) binding_op)->ops->\
+         get_binding_msg_refs(binding_op, env))
+
+#define WODEN_WSDL10_BINDING_OP_GET_BINDING_FAULT_REFS(binding_op, env) \
+      (((woden_wsdl10_binding_op_t *) binding_op)->ops->\
+         get_binding_fault_refs(binding_op, env))
+
+#define WODEN_WSDL10_BINDING_OP_TO_ELEMENT(binding_op, env) \
+      (((woden_wsdl10_binding_op_t *) binding_op)->ops->\
+         to_element(binding_op, env))
+
+#define WODEN_WSDL10_BINDING_OP_SET_INTERFACE_OP_ELEMENT(binding_op, env, int_op) \
+      (((woden_wsdl10_binding_op_t *) binding_op)->ops->\
+         set_interface_op_element(binding_op, env, int_op))
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* WODEN_WSDL10_BINDING_OP_H */



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