You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by da...@apache.org on 2006/07/05 05:25:48 UTC

svn commit: r419147 [1/2] - in /webservices/axis2/trunk/c/woden: include/ samples/wsdl10/ src/builder/ src/builder/wsdl10/ src/schema/ src/wsdl10/ src/wsdl10/extensions/ src/wsdl10/xml/

Author: damitha
Date: Tue Jul  4 20:25:47 2006
New Revision: 419147

URL: http://svn.apache.org/viewvc?rev=419147&view=rev
Log:
In the process of organizing code

Added:
    webservices/axis2/trunk/c/woden/src/wsdl10/woden_types.c
      - copied, changed from r416247, webservices/axis2/trunk/c/woden/src/wsdl10/types.c
Removed:
    webservices/axis2/trunk/c/woden/include/woden_desc.h
    webservices/axis2/trunk/c/woden/include/woden_desc_element.h
    webservices/axis2/trunk/c/woden/src/wsdl10/types.c
Modified:
    webservices/axis2/trunk/c/woden/include/woden_endpoint.h
    webservices/axis2/trunk/c/woden/include/woden_imported_schema.h
    webservices/axis2/trunk/c/woden/include/woden_inlined_schema.h
    webservices/axis2/trunk/c/woden/include/woden_interface_op.h
    webservices/axis2/trunk/c/woden/include/woden_reader.h
    webservices/axis2/trunk/c/woden/include/woden_schema.h
    webservices/axis2/trunk/c/woden/include/woden_soap_binding_op_exts.h
    webservices/axis2/trunk/c/woden/include/woden_types_element.h
    webservices/axis2/trunk/c/woden/include/woden_wsdl10_binding_op.h
    webservices/axis2/trunk/c/woden/include/woden_wsdl10_desc.h
    webservices/axis2/trunk/c/woden/include/woden_wsdl10_interface_msg_ref_element.h
    webservices/axis2/trunk/c/woden/include/woden_wsdl10_msg_ref_element.h
    webservices/axis2/trunk/c/woden/include/woden_wsdl_element.h
    webservices/axis2/trunk/c/woden/samples/wsdl10/test_wsdl1.c
    webservices/axis2/trunk/c/woden/src/builder/reader.c
    webservices/axis2/trunk/c/woden/src/builder/wsdl10/wsdl10_reader.c
    webservices/axis2/trunk/c/woden/src/schema/imported_schema.c
    webservices/axis2/trunk/c/woden/src/schema/inlined_schema.c
    webservices/axis2/trunk/c/woden/src/schema/schema.c
    webservices/axis2/trunk/c/woden/src/wsdl10/Makefile.am
    webservices/axis2/trunk/c/woden/src/wsdl10/binding_op.c
    webservices/axis2/trunk/c/woden/src/wsdl10/component_model_builder.c
    webservices/axis2/trunk/c/woden/src/wsdl10/desc.c
    webservices/axis2/trunk/c/woden/src/wsdl10/element_decl.c
    webservices/axis2/trunk/c/woden/src/wsdl10/extensions/attr_extensible.c
    webservices/axis2/trunk/c/woden/src/wsdl10/extensions/element_extensible.c
    webservices/axis2/trunk/c/woden/src/wsdl10/interface_msg_ref.c
    webservices/axis2/trunk/c/woden/src/wsdl10/wsdl_element.c
    webservices/axis2/trunk/c/woden/src/wsdl10/xml/interface_msg_ref_element.c

Modified: webservices/axis2/trunk/c/woden/include/woden_endpoint.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_endpoint.h?rev=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_endpoint.h (original)
+++ webservices/axis2/trunk/c/woden/include/woden_endpoint.h Tue Jul  4 20:25:47 2006
@@ -202,11 +202,11 @@
       (((woden_endpoint_t *) endpoint)->ops->get_base_impl(endpoint, env))
 
 #define WODEN_ENDPOINT_GET_NAME(endpoint, env) \
-      (((woden_endpoint_t *) endpoint)->\
+      (((woden_endpoint_t *) endpoint)->ops->\
          get_name(endpoint, env))
 
 #define WODEN_ENDPOINT_GET_BINDING(endpoint, env) \
-      (((woden_endpoint_t *) endpoint)->\
+      (((woden_endpoint_t *) endpoint)->ops->\
          get_binding(endpoint, env))
 
 #define WODEN_ENDPOINT_GET_ADDRESS(endpoint, env) \

Modified: webservices/axis2/trunk/c/woden/include/woden_imported_schema.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_imported_schema.h?rev=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_imported_schema.h (original)
+++ webservices/axis2/trunk/c/woden/include/woden_imported_schema.h Tue Jul  4 20:25:47 2006
@@ -51,6 +51,11 @@
             void *schema,
             const axis2_env_t *env);
     
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (
+            void *schema,
+            const axis2_env_t *env);
+    
     woden_obj_types_t (AXIS2_CALL *
     type) (
             void *schema,
@@ -103,6 +108,9 @@
 
 #define WODEN_IMPORTED_SCHEMA_FREE(schema, env) \
       (((woden_imported_schema_t *) schema)->ops->free(schema, env))
+
+#define WODEN_IMPORTED_SCHEMA_SUPER_OBJS(schema, env) \
+      (((woden_imported_schema_t *) schema)->ops->super_objs(schema, env))
 
 #define WODEN_IMPORTED_SCHEMA_TYPE(schema, env) \
       (((woden_imported_schema_t *) schema)->ops->type(schema, env))

Modified: webservices/axis2/trunk/c/woden/include/woden_inlined_schema.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_inlined_schema.h?rev=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_inlined_schema.h (original)
+++ webservices/axis2/trunk/c/woden/include/woden_inlined_schema.h Tue Jul  4 20:25:47 2006
@@ -51,6 +51,11 @@
             void *schema,
             const axis2_env_t *env);
     
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (
+            void *schema,
+            const axis2_env_t *env);
+    
     woden_obj_types_t (AXIS2_CALL *
     type) (
             void *schema,
@@ -103,6 +108,9 @@
 
 #define WODEN_INLINED_SCHEMA_FREE(schema, env) \
       (((woden_inlined_schema_t *) schema)->ops->free(schema, env))
+
+#define WODEN_INLINED_SCHEMA_SUPER_OBJS(schema, env) \
+      (((woden_inlined_schema_t *) schema)->ops->super_objs(schema, env))
 
 #define WODEN_INLINED_SCHEMA_TYPE(schema, env) \
       (((woden_inlined_schema_t *) schema)->ops->type(schema, env))

Modified: webservices/axis2/trunk/c/woden/include/woden_interface_op.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_interface_op.h?rev=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_interface_op.h (original)
+++ webservices/axis2/trunk/c/woden/include/woden_interface_op.h Tue Jul  4 20:25:47 2006
@@ -190,23 +190,23 @@
       (((woden_interface_op_t *) interface_op)->ops->get_base_impl(interface_op, env))
 
 #define WODEN_INTERFACE_OP_GET_QNAME(interface_op, env) \
-      (((woden_interface_op_t *) interface_op)->\
+      (((woden_interface_op_t *) interface_op)->ops->\
          get_qname(interface_op, env))
 
 #define WODEN_INTERFACE_OP_GET_MSG_EXCHANGE_PATTERN(interface_op, env) \
-      (((woden_interface_op_t *) interface_op)->\
+      (((woden_interface_op_t *) interface_op)->ops->\
          get_msg_exchange_pattern(interface_op, env))
 
 #define WODEN_INTERFACE_OP_GET_INTERFACE_MSG_REFS(interface_op, env) \
-      (((woden_interface_op_t *) interface_op)->\
+      (((woden_interface_op_t *) interface_op)->ops->\
          get_interface_msg_refs(interface_op, env))
 
 #define WODEN_INTERFACE_OP_GET_INTERFACE_FAULT_REFS(interface_op, env) \
-      (((woden_interface_op_t *) interface_op)->\
+      (((woden_interface_op_t *) interface_op)->ops->\
          get_interface_fault_refs(interface_op, env))
 
 #define WODEN_INTERFACE_OP_GET_STYLE(interface_op, env) \
-      (((woden_interface_op_t *) interface_op)->\
+      (((woden_interface_op_t *) interface_op)->ops->\
          get_style(interface_op, env))
 
 #define WODEN_INTERFACE_OP_TO_ELEMENT(interface_op, env) \

Modified: webservices/axis2/trunk/c/woden/include/woden_reader.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_reader.h?rev=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_reader.h (original)
+++ webservices/axis2/trunk/c/woden/include/woden_reader.h Tue Jul  4 20:25:47 2006
@@ -58,7 +58,7 @@
             void *reader,
             const axis2_env_t *env,
             axiom_document_t *om_doc,
-            axis2_char_t *uri);
+            const axis2_char_t *uri);
 
     axis2_status_t (AXIS2_CALL *
     set_ext_registry) (

Modified: webservices/axis2/trunk/c/woden/include/woden_schema.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_schema.h?rev=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_schema.h (original)
+++ webservices/axis2/trunk/c/woden/include/woden_schema.h Tue Jul  4 20:25:47 2006
@@ -62,6 +62,11 @@
             void *schema,
             const axis2_env_t *env);
     
+    axis2_hash_t *(AXIS2_CALL *
+    super_objs) (
+            void *schema,
+            const axis2_env_t *env);
+
     axis2_status_t (AXIS2_CALL *
     set_namespace) (
             void *schema,
@@ -139,6 +144,9 @@
 
 #define WODEN_SCHEMA_FREE(schema, env) \
       (((woden_schema_t *) schema)->ops->free (schema, env))
+
+#define WODEN_SCHEMA_SUPER_OBJS(schema, env) \
+      (((woden_schema_t *) schema)->ops->super_objs (schema, env))
 
 #define WODEN_SCHEMA_TYPE(schema, env) \
       (((woden_schema_t *) schema)->ops->type (schema, env))

Modified: webservices/axis2/trunk/c/woden/include/woden_soap_binding_op_exts.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_soap_binding_op_exts.h?rev=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_soap_binding_op_exts.h (original)
+++ webservices/axis2/trunk/c/woden/include/woden_soap_binding_op_exts.h Tue Jul  4 20:25:47 2006
@@ -131,7 +131,7 @@
 #define WODEN_SOAP_BINDING_OP_EXTS_GET_BASE_IMPL(soap_binding_op_exts, env) \
       (((woden_soap_binding_op_exts_t *) soap_binding_op_exts)->ops->get_base_impl(soap_binding_op_exts, env))
 
-#define WODEN_SOAP_BINDING_OP_EXTS_GET_SOAP_MEMP(soap_binding_op_exts, env) \
+#define WODEN_SOAP_BINDING_OP_EXTS_GET_SOAP_MEP(soap_binding_op_exts, env) \
       (((woden_soap_binding_op_exts_t *) soap_binding_op_exts)->ops->\
         get_soap_mep (soap_binding_op_exts, env))
 

Modified: 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=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_types_element.h (original)
+++ webservices/axis2/trunk/c/woden/include/woden_types_element.h Tue Jul  4 20:25:47 2006
@@ -103,7 +103,7 @@
     axis2_status_t (AXIS2_CALL *
     add_schema) (void *types_el,
             const axis2_env_t *env,
-            struct xml_schema *schema);
+            void *schema);
 
     /**
      * Delete the specified Schema object.

Modified: 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=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_wsdl10_binding_op.h (original)
+++ webservices/axis2/trunk/c/woden/include/woden_wsdl10_binding_op.h Tue Jul  4 20:25:47 2006
@@ -199,16 +199,16 @@
 #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_GET_INTERFACE_OP(binding_op, env) \
-      (((woden_wsdl10_binding_op_t *) binding_op)->\
+#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)->\
+      (((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)->\
+      (((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) \

Modified: webservices/axis2/trunk/c/woden/include/woden_wsdl10_desc.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_wsdl10_desc.h?rev=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_wsdl10_desc.h (original)
+++ webservices/axis2/trunk/c/woden/include/woden_wsdl10_desc.h Tue Jul  4 20:25:47 2006
@@ -114,7 +114,7 @@
             void *desc,
             const axis2_env_t *env);
 
-    axis2_array_list_t *(AXIS2_CALL *
+    void *(AXIS2_CALL *
     get_element_decl) (
             void *desc,
             const axis2_env_t *env,

Modified: webservices/axis2/trunk/c/woden/include/woden_wsdl10_interface_msg_ref_element.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_wsdl10_interface_msg_ref_element.h?rev=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_wsdl10_interface_msg_ref_element.h (original)
+++ webservices/axis2/trunk/c/woden/include/woden_wsdl10_interface_msg_ref_element.h Tue Jul  4 20:25:47 2006
@@ -78,7 +78,18 @@
     get_qname) (
             void *iface_fault_ele,
             const axis2_env_t *env);
-    
+     
+    axis2_status_t (AXIS2_CALL *
+    set_msg) (
+            void *iface_fault_ele,
+            const axis2_env_t *env,
+            void *msg);
+
+    void *(AXIS2_CALL *
+    get_msg) (
+            void *iface_fault_ele,
+            const axis2_env_t *env);
+
     axis2_status_t (AXIS2_CALL *
     set_msg_qname) (
             void *iface_fault_ele,
@@ -144,6 +155,14 @@
 #define WODEN_WSDL10_INTERFACE_MSG_REF_ELEMENT_GET_QNAME(interface_msg_ref_element, env) \
       (((woden_wsdl10_interface_msg_ref_element_t *) interface_msg_ref_element)->ops->\
         get_qname  (interface_msg_ref_element, env))
+
+#define WODEN_WSDL10_INTERFACE_MSG_REF_ELEMENT_SET_MSG(interface_msg_ref_element, env, msg) \
+      (((woden_wsdl10_interface_msg_ref_element_t *) interface_msg_ref_element)->ops->\
+        set_msg  (interface_msg_ref_element, env, msg))
+
+#define WODEN_WSDL10_INTERFACE_MSG_REF_ELEMENT_GET_MSG(interface_msg_ref_element, env) \
+      (((woden_wsdl10_interface_msg_ref_element_t *) interface_msg_ref_element)->ops->\
+        get_msg  (interface_msg_ref_element, env))
 
 #define WODEN_WSDL10_INTERFACE_MSG_REF_ELEMENT_SET_MSG_QNAME(interface_msg_ref_element, env, element) \
       (((woden_wsdl10_interface_msg_ref_element_t *) interface_msg_ref_element)->ops->\

Modified: webservices/axis2/trunk/c/woden/include/woden_wsdl10_msg_ref_element.h
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/include/woden_wsdl10_msg_ref_element.h?rev=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_wsdl10_msg_ref_element.h (original)
+++ webservices/axis2/trunk/c/woden/include/woden_wsdl10_msg_ref_element.h Tue Jul  4 20:25:47 2006
@@ -138,6 +138,10 @@
       (((woden_wsdl10_msg_ref_element_t *) msg_ref_element)->ops->\
         get_part  (msg_ref_element, env))
 
+#define WODEN_WSDL10_MSG_REF_ELEMENT_GET_MSG_CONTENT_MODEL(msg_ref_element, env) \
+      (((woden_wsdl10_msg_ref_element_t *) msg_ref_element)->ops->\
+        get_msg_content_model  (msg_ref_element, env))
+
 #define WODEN_WSDL10_MSG_REF_ELEMENT_SET_QNAME(msg_ref_element, env, element) \
       (((woden_wsdl10_msg_ref_element_t *) msg_ref_element)->ops->\
         set_qname  (msg_ref_element, env, element))

Modified: 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=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/include/woden_wsdl_element.h (original)
+++ webservices/axis2/trunk/c/woden/include/woden_wsdl_element.h Tue Jul  4 20:25:47 2006
@@ -75,7 +75,18 @@
     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
@@ -124,6 +135,14 @@
 #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

Modified: webservices/axis2/trunk/c/woden/samples/wsdl10/test_wsdl1.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/samples/wsdl10/test_wsdl1.c?rev=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/samples/wsdl10/test_wsdl1.c (original)
+++ webservices/axis2/trunk/c/woden/samples/wsdl10/test_wsdl1.c Tue Jul  4 20:25:47 2006
@@ -24,6 +24,7 @@
 #include <woden_wsdl10_desc.h>
 #include <woden_interface.h>
 #include <woden_binding.h>
+#include <woden_element_decl.h>
 #include <woden_svc.h>
 
 #include <axiom.h>
@@ -47,6 +48,9 @@
     axis2_char_t *filename = NULL;
     axis2_array_list_t *svc_list = NULL;
     axis2_array_list_t *binding_list = NULL;
+    axis2_array_list_t *ed_list = NULL;
+    void *ed = NULL;
+    axis2_qname_t *ed_qname = NULL;
     
     if(argc > 1)
     {
@@ -101,6 +105,40 @@
             {
                 printf("First binding qname is %s\n", AXIS2_QNAME_TO_STRING(binding_qname, env));
             }
+        }
+    }
+
+    ed_list = WODEN_WSDL10_DESC_GET_ELEMENT_DECLS(desc, env);
+    if (ed_list)
+    {
+        
+        ed = AXIS2_ARRAY_LIST_GET(ed_list, env, 0);
+        if (ed)
+            ed_qname = WODEN_ELEMENT_DECL_GET_QNAME(ed, env);
+    }
+    ed = WODEN_WSDL10_DESC_GET_ELEMENT_DECL(desc, env, ed_qname);
+    if (ed)
+    {
+        axis2_char_t *content_model = NULL;
+        axis2_generic_obj_t *obj = NULL;
+        
+        axis2_qname_t *ed_qname = WODEN_ELEMENT_DECL_GET_QNAME(ed, env);
+        if (ed_qname)
+        {
+            printf("Element declaration qname is %s\n", AXIS2_QNAME_TO_STRING(ed_qname, env));
+        }
+        content_model = WODEN_ELEMENT_DECL_GET_CONTENT_MODEL(ed, env);
+        if (content_model)
+        {
+            printf("Content model is %s\n", content_model);
+        }
+        obj = WODEN_ELEMENT_DECL_GET_CONTENT(ed, env);
+        if (obj)
+        {
+            void *value = NULL;
+
+            value = AXIS2_GENERIC_OBJ_GET_VALUE(obj, env);
+            printf("Content is:\n");
         }
     }
     return 0;

Modified: webservices/axis2/trunk/c/woden/src/builder/reader.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/builder/reader.c?rev=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/src/builder/reader.c (original)
+++ webservices/axis2/trunk/c/woden/src/builder/reader.c Tue Jul  4 20:25:47 2006
@@ -150,7 +150,7 @@
         void *reader,
         const axis2_env_t *env,
         axiom_document_t *om_doc,
-        axis2_char_t *uri);
+        const axis2_char_t *uri);
 
 axis2_status_t AXIS2_CALL
 woden_reader_set_ext_registry(
@@ -176,7 +176,7 @@
 parse_desc(
         void *reader,
         const axis2_env_t *env,
-        axis2_char_t *document_base_uri, 
+        const axis2_char_t *document_base_uri, 
         axiom_node_t *desc_el_node,
         axis2_hash_t *wsdl_modules);
 
@@ -441,7 +441,7 @@
 get_uri(
         void *reader,
         const axis2_env_t *env,
-        axis2_char_t *uri_str);
+        const axis2_char_t *uri_str);
 
 static woden_reader_t *
 create(
@@ -571,7 +571,7 @@
         void *reader,
         const axis2_env_t *env,
         axiom_document_t *om_doc,
-        axis2_char_t *uri) 
+        const axis2_char_t *uri) 
 {
     woden_reader_impl_t *reader_impl = NULL;
     void *desc = NULL;
@@ -610,7 +610,7 @@
 parse_desc(
         void *reader,
         const axis2_env_t *env,
-        axis2_char_t *document_base_uri, 
+        const axis2_char_t *document_base_uri, 
         axiom_node_t *desc_el_node,
         axis2_hash_t *wsdl_modules)
 {
@@ -1136,7 +1136,7 @@
      */
     schema_def = XML_SCHEMA_COLLECTION_READ_ELEMENT_WITH_URI(xsc, 
             env, schema_el_node, base_uri_str);
-    if(AXIS2_ERROR_NONE != AXIS2_ERROR_GET_STATUS_CODE(env->error))
+    if(AXIS2_SUCCESS != AXIS2_ERROR_GET_STATUS_CODE(env->error))
     {
         return NULL;
     }
@@ -1231,7 +1231,7 @@
     uri = WODEN_IMPORTED_SCHEMA_GET_LOCATION(schema, env);
     schema_loc = AXIS2_URI_TO_STRING(uri, env, AXIS2_URI_UNP_OMITUSERINFO);
     uri = axis2_uri_parse_relative(env, context_uri, schema_loc);
-    if(AXIS2_ERROR_NONE != AXIS2_ERROR_GET_STATUS_CODE(env->error))
+    if(AXIS2_SUCCESS != AXIS2_ERROR_GET_STATUS_CODE(env->error))
     {
         /* can't continue schema retrieval with a bad URL.*/
         WODEN_SCHEMA_SET_REFERENCEABLE(schema, env, AXIS2_FALSE);
@@ -1260,7 +1260,7 @@
         imported_schema_doc = axiom_document_create(env, NULL, xml_builder);
         schema_def = XML_SCHEMA_COLLECTION_READ_DOCUMENT(schema_col, 
                 env, imported_schema_doc);
-        if(AXIS2_ERROR_NONE != AXIS2_ERROR_GET_STATUS_CODE(env->error))
+        if(AXIS2_SUCCESS != AXIS2_ERROR_GET_STATUS_CODE(env->error))
         {
             WODEN_SCHEMA_SET_REFERENCEABLE(schema, env, AXIS2_FALSE);
             return schema;
@@ -3776,7 +3776,7 @@
     {
         /* If no error condition occured then this will return
          */
-        if(AXIS2_ERROR_NONE != AXIS2_ERROR_GET_STATUS_CODE(env->error))
+        if(AXIS2_SUCCESS != AXIS2_ERROR_GET_STATUS_CODE(env->error))
             return AXIS2_FAILURE;
         else
             return AXIS2_SUCCESS;
@@ -3942,7 +3942,7 @@
     desc = woden_desc_to_desc_element(desc, env);
     context_uri = WODEN_DESC_ELEMENT_GET_DOCUMENT_BASE_URI(desc, env);
     location_uri = axis2_uri_parse_relative(env, context_uri, location_uri_str);
-    if(AXIS2_ERROR_NONE != AXIS2_ERROR_GET_STATUS_CODE(env->error))
+    if(AXIS2_SUCCESS != AXIS2_ERROR_GET_STATUS_CODE(env->error))
     {
         /* Can't continue import with a bad URL.*/
         return NULL;
@@ -3966,7 +3966,7 @@
         builder = axiom_stax_builder_create(env, xml_reader);
         doc = AXIOM_STAX_BUILDER_GET_DOCUMENT(builder, env);
         doc_el_node = AXIOM_DOCUMENT_GET_ROOT_ELEMENT(doc, env); 
-        if(AXIS2_ERROR_NONE != AXIS2_ERROR_GET_STATUS_CODE(env->error))
+        if(AXIS2_SUCCESS != AXIS2_ERROR_GET_STATUS_CODE(env->error))
         {
             /* Cannot contine without the referenced document */
             return NULL;
@@ -4003,7 +4003,7 @@
 get_uri(
         void *reader,
         const axis2_env_t *env,
-        axis2_char_t *uri_str)
+        const axis2_char_t *uri_str)
 {
     woden_reader_impl_t *reader_impl = NULL;
 

Modified: webservices/axis2/trunk/c/woden/src/builder/wsdl10/wsdl10_reader.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/builder/wsdl10/wsdl10_reader.c?rev=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/src/builder/wsdl10/wsdl10_reader.c (original)
+++ webservices/axis2/trunk/c/woden/src/builder/wsdl10/wsdl10_reader.c Tue Jul  4 20:25:47 2006
@@ -154,7 +154,7 @@
         void *reader,
         const axis2_env_t *env,
         axiom_document_t *om_doc,
-        axis2_char_t *uri);
+        const axis2_char_t *uri);
 
 axis2_status_t AXIS2_CALL
 woden_reader_set_ext_registry(
@@ -180,7 +180,7 @@
 parse_desc(
         void *reader,
         const axis2_env_t *env,
-        axis2_char_t *document_base_uri, 
+        const axis2_char_t *document_base_uri, 
         axiom_node_t *desc_el_node,
         axis2_hash_t *wsdl_modules);
 
@@ -443,7 +443,7 @@
 get_uri(
         void *reader,
         const axis2_env_t *env,
-        axis2_char_t *uri_str);
+        const axis2_char_t *uri_str);
 
 static woden_reader_t *
 create(
@@ -573,7 +573,7 @@
         void *reader,
         const axis2_env_t *env,
         axiom_document_t *om_doc,
-        axis2_char_t *uri) 
+        const axis2_char_t *uri) 
 {
     woden_reader_impl_t *reader_impl = NULL;
     void *desc = NULL;
@@ -612,7 +612,7 @@
 parse_desc(
         void *reader,
         const axis2_env_t *env,
-        axis2_char_t *document_base_uri, 
+        const axis2_char_t *document_base_uri, 
         axiom_node_t *desc_el_node,
         axis2_hash_t *wsdl_modules)
 {
@@ -883,9 +883,12 @@
     AXIOM_ELEMENT_ADD_ATTRIBUTE(schema_elem, env, attr_loc, schema_elem_node);
     
     schema = parse_schema_import(reader, env, schema_elem_node, desc);
-    types = woden_types_to_types_element(types, env);
-    WODEN_TYPES_ELEMENT_ADD_SCHEMA(types, env, (xml_schema_t *) schema);
-    
+    if(schema)
+    {
+        types = woden_types_to_types_element(types, env);
+        schema = woden_imported_schema_to_schema(schema, env);
+        WODEN_TYPES_ELEMENT_ADD_SCHEMA(types, env, schema);
+    }
     return desc;
 }
 
@@ -1092,20 +1095,27 @@
         }
         if(AXIS2_TRUE == woden_schema_constants_compare_import(q_temp_el_type, env))
         {
-            woden_schema_t *schema = NULL;
+            void *schema = NULL;
 
             schema = parse_schema_import(reader, env, temp_el_node, desc);
-            types = woden_types_to_types_element(types, env);
-            WODEN_TYPES_ELEMENT_ADD_SCHEMA(types, env, (xml_schema_t *) schema);
+            if(schema)
+            {
+                types = woden_types_to_types_element(types, env);
+                schema = woden_imported_schema_to_schema(schema, env);
+                WODEN_TYPES_ELEMENT_ADD_SCHEMA(types, env, schema);
+            }
         }
         if(AXIS2_TRUE == woden_schema_constants_compare_schema(q_temp_el_type, env))
         {
-            woden_schema_t *schema = NULL;
+            void *schema = NULL;
 
             schema = parse_schema_inline(reader, env, temp_el_node, desc);
-            types = woden_types_to_types_element(types, env);
-            WODEN_TYPES_ELEMENT_ADD_SCHEMA(types, env, 
-                    (xml_schema_t *) schema);
+            if(schema)
+            {
+                types = woden_types_to_types_element(types, env);
+                schema = woden_inlined_schema_to_schema(schema, env);
+                WODEN_TYPES_ELEMENT_ADD_SCHEMA(types, env, schema);
+            }
         }
         else
         {
@@ -1138,7 +1148,7 @@
         axiom_node_t *schema_el_node,
         void *desc)
 {
-    void *schema = woden_inlined_schema_create(env);
+    void *schema = NULL;
     axis2_char_t *attr_id = NULL;
     axis2_char_t *tns = NULL;
     axis2_uri_t *base_uri = NULL;
@@ -1147,6 +1157,7 @@
     xml_schema_collection_t *xsc = NULL;
     axiom_element_t *schema_el = NULL;
   
+    schema = woden_inlined_schema_create(env);
     schema_el = AXIOM_NODE_GET_DATA_ELEMENT(schema_el_node, env);
     attr_id = AXIOM_ELEMENT_GET_ATTRIBUTE_VALUE_BY_NAME(schema_el, env, 
             WODEN_ATTR_ID); 
@@ -1172,16 +1183,25 @@
      */
     schema_def = XML_SCHEMA_COLLECTION_READ_ELEMENT_WITH_URI(xsc, 
             env, schema_el_node, base_uri_str);
-    if(AXIS2_ERROR_NONE != AXIS2_ERROR_GET_STATUS_CODE(env->error))
+    if(AXIS2_SUCCESS != AXIS2_ERROR_GET_STATUS_CODE(env->error))
     {
         return NULL;
     }
     if(schema_def)
     {
-        WODEN_SCHEMA_SET_SCHEMA_DEF(schema, env, schema_def);
+        void *base_schema = NULL;
+
+        base_schema = WODEN_INLINED_SCHEMA_GET_BASE_IMPL(schema, env);
+        WODEN_SCHEMA_SET_REFERENCEABLE(base_schema, env, AXIS2_TRUE);
+        WODEN_SCHEMA_SET_SCHEMA_DEF(base_schema, env, schema_def);
     }
     else
-        WODEN_SCHEMA_SET_REFERENCEABLE(schema, env, AXIS2_FALSE);
+    {
+        void *base_schema = NULL;
+
+        base_schema = WODEN_INLINED_SCHEMA_GET_BASE_IMPL(schema, env);
+        WODEN_SCHEMA_SET_REFERENCEABLE(base_schema, env, AXIS2_FALSE);
+    }
     
     return schema;
 }
@@ -1216,12 +1236,14 @@
     axis2_uri_t *context_uri = NULL;
     axis2_char_t *schema_loc = NULL;
     axiom_element_t *import_el = NULL;
+    void *base_schema = NULL;
 
     AXIS2_ENV_CHECK(env, NULL);
     AXIS2_PARAM_CHECK(env->error, desc, NULL);
     reader_impl = INTF_TO_IMPL(reader);
 
     schema = woden_imported_schema_create(env);
+    base_schema = WODEN_IMPORTED_SCHEMA_GET_BASE_IMPL(schema, env);
     if(!schema)
         return NULL;
     import_el = AXIOM_NODE_GET_DATA_ELEMENT(import_el_node, env);
@@ -1230,21 +1252,21 @@
     if(NULL != ns)
     {
         uri = get_uri(reader, env, ns);
-        schema = woden_imported_schema_to_schema(schema, env);
-        WODEN_SCHEMA_SET_NAMESPACE(schema, env, uri);
+        WODEN_SCHEMA_SET_NAMESPACE(base_schema, env, uri);
     }
     sloc = AXIOM_ELEMENT_GET_ATTRIBUTE_VALUE_BY_NAME(import_el, env, 
             WODEN_ATTR_SCHEMA_LOCATION);
     if(NULL != sloc)
     {
-    uri = get_uri(reader, env, sloc);
-    WODEN_IMPORTED_SCHEMA_SET_LOCATION(schema, env, uri);
+        uri = get_uri(reader, env, sloc);
+        WODEN_IMPORTED_SCHEMA_SET_LOCATION(schema, env, uri);
     }
         
-    if(NULL == WODEN_SCHEMA_GET_NAMESPACE(schema, env))
+    if(NULL == WODEN_SCHEMA_GET_NAMESPACE(base_schema, env))
     {
+
         /* The namespace attribute is REQUIRED on xs:import, so don't continue. */
-        WODEN_SCHEMA_SET_REFERENCEABLE(schema, env, AXIS2_FALSE);
+        WODEN_SCHEMA_SET_REFERENCEABLE(base_schema, env, AXIS2_FALSE);
         return schema;
     }
     
@@ -1267,10 +1289,13 @@
     uri = WODEN_IMPORTED_SCHEMA_GET_LOCATION(schema, env);
     schema_loc = AXIS2_URI_TO_STRING(uri, env, AXIS2_URI_UNP_OMITUSERINFO);
     uri = axis2_uri_parse_relative(env, context_uri, schema_loc);
-    if(AXIS2_ERROR_NONE != AXIS2_ERROR_GET_STATUS_CODE(env->error))
+    if(AXIS2_SUCCESS != AXIS2_ERROR_GET_STATUS_CODE(env->error))
     {
+        void *base_schema = NULL;
+
+        base_schema = WODEN_IMPORTED_SCHEMA_GET_BASE_IMPL(schema, env);
         /* can't continue schema retrieval with a bad URL.*/
-        WODEN_SCHEMA_SET_REFERENCEABLE(schema, env, AXIS2_FALSE);
+        WODEN_SCHEMA_SET_REFERENCEABLE(base_schema, env, AXIS2_FALSE);
         return schema;
     }
 
@@ -1296,9 +1321,12 @@
         imported_schema_doc = axiom_document_create(env, NULL, xml_builder);
         schema_def = XML_SCHEMA_COLLECTION_READ_DOCUMENT(schema_col, 
                 env, imported_schema_doc);
-        if(AXIS2_ERROR_NONE != AXIS2_ERROR_GET_STATUS_CODE(env->error))
+        if(AXIS2_SUCCESS != AXIS2_ERROR_GET_STATUS_CODE(env->error))
         {
-            WODEN_SCHEMA_SET_REFERENCEABLE(schema, env, AXIS2_FALSE);
+            void *base_schema = NULL;
+
+            base_schema = WODEN_IMPORTED_SCHEMA_GET_BASE_IMPL(schema, env);
+            WODEN_SCHEMA_SET_REFERENCEABLE(base_schema, env, AXIS2_FALSE);
             return schema;
         }
         axis2_hash_set(reader_impl->f_imported_schemas, schema_uri, 
@@ -1308,10 +1336,16 @@
     
     if(NULL != schema_def) 
     {
-        WODEN_SCHEMA_SET_SCHEMA_DEF(schema, env, schema_def);
+        void *base_schema = NULL;
+
+        base_schema = WODEN_IMPORTED_SCHEMA_GET_BASE_IMPL(schema, env);
+        WODEN_SCHEMA_SET_SCHEMA_DEF(base_schema, env, schema_def);
     } else 
     {
-        WODEN_SCHEMA_SET_REFERENCEABLE(schema, env, AXIS2_FALSE);
+        void *base_schema = NULL;
+
+        base_schema = WODEN_IMPORTED_SCHEMA_GET_BASE_IMPL(schema, env);
+        WODEN_SCHEMA_SET_REFERENCEABLE(base_schema, env, AXIS2_FALSE);
     }
     
     return schema;
@@ -2094,12 +2128,30 @@
         axis2_qname_t *qname = NULL;
         axis2_uri_t *namespc = NULL;
         axis2_char_t *namespc_str = NULL;
+        axis2_array_list_t *msgs = NULL;
+        int i = 0, size = 0;
 
         namespc = WODEN_WSDL10_DESC_ELEMENT_GET_TARGET_NAMESPACE(desc, env);
         namespc_str = AXIS2_URI_TO_STRING(namespc, env, AXIS2_URI_UNP_OMITUSERINFO);
         qname = axis2_qname_create(env, msg, namespc_str, NULL);
         msg_ref = woden_wsdl10_interface_msg_ref_to_interface_msg_ref_element(
                 msg_ref, env);
+        desc = woden_wsdl10_desc_to_desc_element(desc, env);
+        msgs = WODEN_WSDL10_DESC_ELEMENT_GET_MSG_ELEMENTS(desc, env);
+        if(msgs)
+            size = AXIS2_ARRAY_LIST_SIZE(msgs, env);
+        for(i = 0; i < size; i++)
+        {
+            void *msg = NULL;
+            axis2_qname_t *msg_qname = NULL;
+            
+            msg = AXIS2_ARRAY_LIST_GET(msgs, env, i);
+            msg_qname = WODEN_WSDL10_MSG_REF_GET_QNAME(msg, env);
+            if(AXIS2_TRUE == AXIS2_QNAME_EQUALS(msg_qname, env, qname))
+            {
+                WODEN_WSDL10_INTERFACE_MSG_REF_ELEMENT_SET_MSG(msg_ref, env, msg);
+            }
+        }
         WODEN_WSDL10_INTERFACE_MSG_REF_ELEMENT_SET_MSG_QNAME(msg_ref, env, qname);
     }
     msg_ref = woden_wsdl10_interface_msg_ref_to_attr_extensible(msg_ref, env); 
@@ -2508,21 +2560,11 @@
         else
         {
             void *ext_element = NULL;
-            void *nested_confble = NULL;
-            void *configurable = NULL;
-            void *documentable = NULL;
-            void *wsdl_obj = NULL;
-            void *wsdl_el = NULL;
 
             ext_element = parse_ext_element(reader, env, "binding_op_element", 
                     op, temp_el_node, desc);
 
-            nested_confble = WODEN_WSDL10_BINDING_OP_GET_BASE_IMPL(op, env);
-            configurable = WODEN_NESTED_CONFIGURABLE_GET_BASE_IMPL(nested_confble, env);
-            documentable = WODEN_CONFIGURABLE_GET_BASE_IMPL(configurable, env);
-            wsdl_obj = WODEN_DOCUMENTABLE_GET_BASE_IMPL(documentable, env);
-            wsdl_el = WODEN_WSDL_OBJ_GET_BASE_IMPL(wsdl_obj, env);
-            wsdl_el = woden_wsdl_element_to_element_extensible(wsdl_el, env);
+            op = woden_wsdl10_binding_op_to_element_extensible(op, env);
             WODEN_ELEMENT_EXTENSIBLE_ADD_EXT_ELEMENT(op, env, ext_element);
         }
 
@@ -3576,7 +3618,7 @@
     {
         /* If no error condition occured then this will return
          */
-        if(AXIS2_ERROR_NONE != AXIS2_ERROR_GET_STATUS_CODE(env->error))
+        if(AXIS2_SUCCESS != AXIS2_ERROR_GET_STATUS_CODE(env->error))
             return AXIS2_FAILURE;
         else
             return AXIS2_SUCCESS;
@@ -3747,7 +3789,7 @@
     desc = woden_wsdl10_desc_to_desc_element(desc, env);
     context_uri = WODEN_WSDL10_DESC_ELEMENT_GET_DOCUMENT_BASE_URI(desc, env);
     location_uri = axis2_uri_parse_relative(env, context_uri, location_uri_str);
-    if(AXIS2_ERROR_NONE != AXIS2_ERROR_GET_STATUS_CODE(env->error))
+    if(AXIS2_SUCCESS != AXIS2_ERROR_GET_STATUS_CODE(env->error))
     {
         /* Can't continue import with a bad URL.*/
         return NULL;
@@ -3771,7 +3813,7 @@
         builder = axiom_stax_builder_create(env, xml_reader);
         doc = AXIOM_STAX_BUILDER_GET_DOCUMENT(builder, env);
         doc_el_node = AXIOM_DOCUMENT_GET_ROOT_ELEMENT(doc, env); 
-        if(AXIS2_ERROR_NONE != AXIS2_ERROR_GET_STATUS_CODE(env->error))
+        if(AXIS2_SUCCESS != AXIS2_ERROR_GET_STATUS_CODE(env->error))
         {
             /* Cannot contine without the referenced document */
             return NULL;
@@ -3808,7 +3850,7 @@
 get_uri(
         void *reader,
         const axis2_env_t *env,
-        axis2_char_t *uri_str)
+        const axis2_char_t *uri_str)
 {
     woden_reader_impl_t *reader_impl = NULL;
 

Modified: webservices/axis2/trunk/c/woden/src/schema/imported_schema.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/schema/imported_schema.c?rev=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/src/schema/imported_schema.c (original)
+++ webservices/axis2/trunk/c/woden/src/schema/imported_schema.c Tue Jul  4 20:25:47 2006
@@ -30,6 +30,7 @@
     woden_schema_t *schema;
     woden_obj_types_t obj_type;
     axis2_hash_t *methods;
+    axis2_hash_t *super;
     axis2_uri_t *f_schema_location;
 };
 
@@ -41,6 +42,11 @@
         void *schema,
         const axis2_env_t *env);
 
+axis2_hash_t *AXIS2_CALL
+woden_imported_schema_super_objs(
+        void *schema,
+        const axis2_env_t *env);
+
 woden_obj_types_t AXIS2_CALL 
 woden_imported_schema_type(
         void *schema,
@@ -62,45 +68,6 @@
         void *schema,
         const axis2_env_t *env);
 
-axis2_status_t AXIS2_CALL 
-woden_imported_schema_set_namespace(
-        void *schema,
-        const axis2_env_t *env,
-        axis2_uri_t *namespc);
-
-axis2_uri_t *AXIS2_CALL 
-woden_imported_schema_get_namespace(
-        void *schema,
-        const axis2_env_t *env);
-
-axis2_status_t AXIS2_CALL 
-woden_imported_schema_set_schema_def(
-        void *schema,
-        const axis2_env_t *env,
-        xml_schema_t *schema_def);
-
-xml_schema_t *AXIS2_CALL 
-woden_imported_schema_get_schema_def(
-        void *schema,
-        const axis2_env_t *env);
-
-axis2_status_t AXIS2_CALL 
-woden_imported_schema_set_referenceable(
-        void *schema,
-        const axis2_env_t *env,
-        axis2_bool_t referenceable);
-
-axis2_bool_t AXIS2_CALL 
-woden_imported_schema_is_referenceable(
-        void *schema,
-        const axis2_env_t *env);
-
-axis2_char_t *AXIS2_CALL 
-woden_imported_schema_get_namespace_as_string(
-        void *schema,
-        const axis2_env_t *env);
-
-
 static woden_imported_schema_t *
 create(const axis2_env_t *env);
 
@@ -151,6 +118,7 @@
     schema_impl->schema = NULL;
     schema_impl->obj_type = WODEN_IMPORTED_SCHEMA;
     schema_impl->methods = NULL;
+    schema_impl->super = NULL;
     schema_impl->f_schema_location = NULL;
 
     schema_impl->imported_schema.schema.ops = NULL;
@@ -161,16 +129,25 @@
 
     schema_impl->imported_schema.ops->free = 
         woden_imported_schema_free;
+    schema_impl->imported_schema.ops->super_objs = 
+        woden_imported_schema_super_objs;
     schema_impl->imported_schema.ops->type = 
         woden_imported_schema_type;
     schema_impl->imported_schema.ops->get_base_impl = 
         woden_imported_schema_get_base_impl;
+    
     schema_impl->imported_schema.ops->set_location = 
         woden_imported_schema_set_location;
     schema_impl->imported_schema.ops->get_location = 
         woden_imported_schema_get_location;
     
     
+    schema_impl->super = axis2_hash_make(env);
+    if(!schema_impl->super) 
+    {
+        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
     schema_impl->methods = axis2_hash_make(env);
     if(!schema_impl->methods) 
     {
@@ -179,26 +156,15 @@
     }
     axis2_hash_set(schema_impl->methods, "free", 
             AXIS2_HASH_KEY_STRING, woden_imported_schema_free);
+    axis2_hash_set(schema_impl->methods, "super_objs", 
+            AXIS2_HASH_KEY_STRING, woden_imported_schema_super_objs);
     axis2_hash_set(schema_impl->methods, "type", 
             AXIS2_HASH_KEY_STRING, woden_imported_schema_type);
+
     axis2_hash_set(schema_impl->methods, "set_location", 
             AXIS2_HASH_KEY_STRING, woden_imported_schema_set_location);
     axis2_hash_set(schema_impl->methods, "get_location", 
             AXIS2_HASH_KEY_STRING, woden_imported_schema_get_location);
-    axis2_hash_set(schema_impl->methods, "set_namespace", 
-            AXIS2_HASH_KEY_STRING, woden_imported_schema_set_namespace);
-    axis2_hash_set(schema_impl->methods, "get_namespace", 
-            AXIS2_HASH_KEY_STRING, woden_imported_schema_get_namespace);
-    axis2_hash_set(schema_impl->methods, "set_schema_def", 
-            AXIS2_HASH_KEY_STRING, woden_imported_schema_set_schema_def);
-    axis2_hash_set(schema_impl->methods, "get_schema_def", 
-            AXIS2_HASH_KEY_STRING, woden_imported_schema_get_schema_def);
-    axis2_hash_set(schema_impl->methods, "set_referenceable", 
-            AXIS2_HASH_KEY_STRING, woden_imported_schema_set_referenceable);
-    axis2_hash_set(schema_impl->methods, "is_referencealbe", 
-            AXIS2_HASH_KEY_STRING, woden_imported_schema_is_referenceable);
-    axis2_hash_set(schema_impl->methods, "get_namespace_as_string", 
-            AXIS2_HASH_KEY_STRING, woden_imported_schema_get_namespace_as_string);
 
     return &(schema_impl->imported_schema);
 }
@@ -212,6 +178,10 @@
     schema_impl = (woden_imported_schema_impl_t *) create(env);
 
     schema_impl->schema = woden_schema_create(env);
+    axis2_hash_set(schema_impl->super, "WODEN_IMPORTED_SCHEMA", AXIS2_HASH_KEY_STRING, 
+            &(schema_impl->schema));
+    axis2_hash_set(schema_impl->super, "WODEN_SCHEMA", AXIS2_HASH_KEY_STRING, 
+            schema_impl->schema);
     return &(schema_impl->imported_schema);
 }
 
@@ -292,6 +262,19 @@
     return AXIS2_SUCCESS;
 }
 
+axis2_hash_t *AXIS2_CALL
+woden_imported_schema_super_objs(
+        void *schema,
+        const axis2_env_t *env)
+{
+    woden_imported_schema_impl_t *schema_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+    schema_impl = INTF_TO_IMPL(schema);
+
+    return schema_impl->super;
+}
+
 woden_schema_t *AXIS2_CALL
 woden_imported_schema_get_base_impl(
         void *schema,
@@ -354,7 +337,7 @@
         AXIS2_URI_FREE(schema_impl->f_schema_location, env);
         schema_impl->f_schema_location = NULL;
     }
-    schema_impl->f_schema_location = location;
+    schema_impl->f_schema_location = AXIS2_URI_CLONE(location, env);
     return AXIS2_SUCCESS;
 }
 
@@ -369,103 +352,5 @@
     schema_impl = INTF_TO_IMPL(schema);
 
     return schema_impl->f_schema_location;
-}
-
-axis2_status_t AXIS2_CALL 
-woden_imported_schema_set_namespace(
-        void *schema,
-        const axis2_env_t *env,
-        axis2_uri_t *namespc)
-{
-    woden_imported_schema_impl_t *schema_impl = NULL;
-
-    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    AXIS2_PARAM_CHECK(env->error, namespc, AXIS2_FAILURE);
-    schema_impl = INTF_TO_IMPL(schema);
-
-    return WODEN_SCHEMA_SET_NAMESPACE(schema_impl->schema, env, namespc);
-}
-
-axis2_uri_t *AXIS2_CALL 
-woden_imported_schema_get_namespace(
-        void *schema,
-        const axis2_env_t *env)
-{
-    woden_imported_schema_impl_t *schema_impl = NULL;
-
-    AXIS2_ENV_CHECK(env, NULL);
-    schema_impl = INTF_TO_IMPL(schema);
-
-    return WODEN_SCHEMA_GET_NAMESPACE(schema_impl->schema, env);
-}
-
-axis2_status_t AXIS2_CALL 
-woden_imported_schema_set_schema_def(
-        void *schema,
-        const axis2_env_t *env,
-        xml_schema_t *schema_def)
-{
-    woden_imported_schema_impl_t *schema_impl = NULL;
-
-    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    AXIS2_PARAM_CHECK(env->error, schema_def, AXIS2_FAILURE);
-    schema_impl = INTF_TO_IMPL(schema);
-    
-    return WODEN_SCHEMA_SET_SCHEMA_DEF(schema_impl->schema, env, 
-            schema_def);
-}
-
-xml_schema_t *AXIS2_CALL 
-woden_imported_schema_get_schema_def(
-        void *schema,
-        const axis2_env_t *env)
-{
-    woden_imported_schema_impl_t *schema_impl = NULL;
-
-    AXIS2_ENV_CHECK(env, NULL);
-    schema_impl = INTF_TO_IMPL(schema);
-
-    return WODEN_SCHEMA_GET_SCHEMA_DEF(schema_impl->schema, env);
-}
-
-axis2_status_t AXIS2_CALL 
-woden_imported_schema_set_referenceable(
-        void *schema,
-        const axis2_env_t *env,
-        axis2_bool_t referenceable)
-{
-    woden_imported_schema_impl_t *schema_impl = NULL;
-
-    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    schema_impl = INTF_TO_IMPL(schema);
-
-    return WODEN_SCHEMA_SET_REFERENCEABLE(schema_impl->schema, env, 
-            referenceable); 
-}
-
-axis2_bool_t AXIS2_CALL 
-woden_imported_schema_is_referenceable(
-        void *schema,
-        const axis2_env_t *env)
-{
-    woden_imported_schema_impl_t *schema_impl = NULL;
-
-    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    schema_impl = INTF_TO_IMPL(schema);
-
-    return WODEN_SCHEMA_IS_REFERENCEABLE(schema_impl->schema, env);
-}
-
-axis2_char_t *AXIS2_CALL 
-woden_imported_schema_get_namespace_as_string(
-        void *schema,
-        const axis2_env_t *env)
-{
-    woden_imported_schema_impl_t *schema_impl = NULL;
-
-    AXIS2_ENV_CHECK(env, NULL);
-    schema_impl = INTF_TO_IMPL(schema);
-
-    return WODEN_SCHEMA_GET_NAMESPACE_AS_STRING(schema_impl->schema, env);
 }
 

Modified: webservices/axis2/trunk/c/woden/src/schema/inlined_schema.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/schema/inlined_schema.c?rev=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/src/schema/inlined_schema.c (original)
+++ webservices/axis2/trunk/c/woden/src/schema/inlined_schema.c Tue Jul  4 20:25:47 2006
@@ -30,6 +30,7 @@
     woden_schema_t *schema;
     woden_obj_types_t obj_type;
     axis2_hash_t *methods;
+    axis2_hash_t *super;
     axis2_char_t *f_schema_id;
 };
 
@@ -41,6 +42,11 @@
         void *schema,
         const axis2_env_t *env);
 
+axis2_hash_t *AXIS2_CALL
+woden_inlined_schema_super_objs(
+        void *schema,
+        const axis2_env_t *env);
+
 woden_obj_types_t AXIS2_CALL 
 woden_inlined_schema_type(
         void *schema,
@@ -62,45 +68,6 @@
         void *schema,
         const axis2_env_t *env);
 
-axis2_status_t AXIS2_CALL 
-woden_inlined_schema_set_namespace(
-        void *schema,
-        const axis2_env_t *env,
-        axis2_uri_t *namespc);
-
-axis2_uri_t *AXIS2_CALL 
-woden_inlined_schema_get_namespace(
-        void *schema,
-        const axis2_env_t *env);
-
-axis2_status_t AXIS2_CALL 
-woden_inlined_schema_set_schema_def(
-        void *schema,
-        const axis2_env_t *env,
-        xml_schema_t *schema_def);
-
-xml_schema_t *AXIS2_CALL 
-woden_inlined_schema_get_schema_def(
-        void *schema,
-        const axis2_env_t *env);
-
-axis2_status_t AXIS2_CALL 
-woden_inlined_schema_set_referenceable(
-        void *schema,
-        const axis2_env_t *env,
-        axis2_bool_t referenceable);
-
-axis2_bool_t AXIS2_CALL 
-woden_inlined_schema_is_referenceable(
-        void *schema,
-        const axis2_env_t *env);
-
-axis2_char_t *AXIS2_CALL 
-woden_inlined_schema_get_namespace_as_string(
-        void *schema,
-        const axis2_env_t *env);
-
-
 static woden_inlined_schema_t *
 create(const axis2_env_t *env);
 
@@ -116,6 +83,7 @@
         const axis2_env_t *env)
 {
     woden_inlined_schema_impl_t *schema_impl = NULL;
+    void *base_schema = NULL;
 
     AXIS2_ENV_CHECK(env, NULL);
 
@@ -131,8 +99,9 @@
     schema_impl->inlined_schema.schema.ops = 
             AXIS2_MALLOC(env->allocator, 
             sizeof(woden_schema_ops_t));
+    base_schema = WODEN_INLINED_SCHEMA_GET_BASE_IMPL(schema, env);
     woden_schema_resolve_methods(&(schema_impl->inlined_schema.schema), 
-            env, schema_impl->schema, schema_impl->methods);
+            env, base_schema, schema_impl->methods);
 
     return schema;
 }
@@ -152,6 +121,7 @@
     schema_impl->schema = NULL;
     schema_impl->obj_type = WODEN_INLINED_SCHEMA;
     schema_impl->methods = NULL;
+    schema_impl->super = NULL;
     schema_impl->f_schema_id = NULL;
 
     schema_impl->inlined_schema.schema.ops = NULL;
@@ -162,6 +132,8 @@
 
     schema_impl->inlined_schema.ops->free = 
         woden_inlined_schema_free;
+    schema_impl->inlined_schema.ops->super_objs = 
+        woden_inlined_schema_super_objs;
     schema_impl->inlined_schema.ops->type = 
         woden_inlined_schema_type;
     schema_impl->inlined_schema.ops->get_base_impl = 
@@ -180,6 +152,8 @@
     }
     axis2_hash_set(schema_impl->methods, "free", 
             AXIS2_HASH_KEY_STRING, woden_inlined_schema_free);
+    axis2_hash_set(schema_impl->methods, "super_objs", 
+            AXIS2_HASH_KEY_STRING, woden_inlined_schema_super_objs);
     axis2_hash_set(schema_impl->methods, "type", 
             AXIS2_HASH_KEY_STRING, woden_inlined_schema_type);
     
@@ -187,20 +161,6 @@
             AXIS2_HASH_KEY_STRING, woden_inlined_schema_set_id);
     axis2_hash_set(schema_impl->methods, "get_id", 
             AXIS2_HASH_KEY_STRING, woden_inlined_schema_get_id);
-    axis2_hash_set(schema_impl->methods, "set_namespace", 
-            AXIS2_HASH_KEY_STRING, woden_inlined_schema_set_namespace);
-    axis2_hash_set(schema_impl->methods, "get_namespace", 
-            AXIS2_HASH_KEY_STRING, woden_inlined_schema_get_namespace);
-    axis2_hash_set(schema_impl->methods, "set_schema_def", 
-            AXIS2_HASH_KEY_STRING, woden_inlined_schema_set_schema_def);
-    axis2_hash_set(schema_impl->methods, "get_schema_def", 
-            AXIS2_HASH_KEY_STRING, woden_inlined_schema_get_schema_def);
-    axis2_hash_set(schema_impl->methods, "set_referenceable", 
-            AXIS2_HASH_KEY_STRING, woden_inlined_schema_set_referenceable);
-    axis2_hash_set(schema_impl->methods, "is_referencealbe", 
-            AXIS2_HASH_KEY_STRING, woden_inlined_schema_is_referenceable);
-    axis2_hash_set(schema_impl->methods, "get_namespace_as_string", 
-            AXIS2_HASH_KEY_STRING, woden_inlined_schema_get_namespace_as_string);
 
     return &(schema_impl->inlined_schema);
 }
@@ -214,6 +174,17 @@
     schema_impl = (woden_inlined_schema_impl_t *) create(env);
 
     schema_impl->schema = woden_schema_create(env);
+    schema_impl->super = axis2_hash_make(env);
+    if(!schema_impl->super) 
+    {
+        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+    axis2_hash_set(schema_impl->super, "WODEN_INLINED_SCHEMA", AXIS2_HASH_KEY_STRING, 
+            &(schema_impl->schema));
+    axis2_hash_set(schema_impl->super, "WODEN_SCHEMA", AXIS2_HASH_KEY_STRING, 
+            schema_impl->schema);
+    
     return &(schema_impl->inlined_schema);
 }
 
@@ -307,6 +278,19 @@
     return schema_impl->schema;
 }
 
+axis2_hash_t *AXIS2_CALL
+woden_inlined_schema_super_objs(
+        void *schema,
+        const axis2_env_t *env)
+{
+    woden_inlined_schema_impl_t *schema_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+    schema_impl = INTF_TO_IMPL(schema);
+
+    return schema_impl->super;
+}
+
 axis2_status_t AXIS2_CALL
 woden_inlined_schema_resolve_methods(
         woden_inlined_schema_t *schema,
@@ -322,14 +306,11 @@
     
     schema->ops->free = 
                 axis2_hash_get(methods, "free", AXIS2_HASH_KEY_STRING);
+    schema->ops->super_objs = axis2_hash_get(methods, "super_objs", 
+            AXIS2_HASH_KEY_STRING);
     schema->ops->type = 
                 axis2_hash_get(methods, "type", AXIS2_HASH_KEY_STRING);
 
-    schema->ops->set_id = axis2_hash_get(methods, "set_id", 
-            AXIS2_HASH_KEY_STRING);
-    schema->ops->get_id = axis2_hash_get(methods, "get_id", 
-            AXIS2_HASH_KEY_STRING);;
-    
     schema->ops->set_id = axis2_hash_get(methods, 
             "set_id", AXIS2_HASH_KEY_STRING);
     if(!schema->ops->set_id && schema_impl_l)
@@ -373,105 +354,8 @@
 
     AXIS2_ENV_CHECK(env, NULL);
     schema_impl = INTF_TO_IMPL(schema);
-
-    return schema_impl->f_schema_id;
-}
-
-axis2_status_t AXIS2_CALL 
-woden_inlined_schema_set_namespace(
-        void *schema,
-        const axis2_env_t *env,
-        axis2_uri_t *namespc)
-{
-    woden_inlined_schema_impl_t *schema_impl = NULL;
-
-    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    AXIS2_PARAM_CHECK(env->error, namespc, AXIS2_FAILURE);
-    schema_impl = INTF_TO_IMPL(schema);
-
-    return WODEN_SCHEMA_SET_NAMESPACE(schema_impl->schema, env, namespc);
-}
-
-axis2_uri_t *AXIS2_CALL 
-woden_inlined_schema_get_namespace(
-        void *schema,
-        const axis2_env_t *env)
-{
-    woden_inlined_schema_impl_t *schema_impl = NULL;
-
-    AXIS2_ENV_CHECK(env, NULL);
-    schema_impl = INTF_TO_IMPL(schema);
-
-    return WODEN_SCHEMA_GET_NAMESPACE(schema_impl->schema, env);
-}
-
-axis2_status_t AXIS2_CALL 
-woden_inlined_schema_set_schema_def(
-        void *schema,
-        const axis2_env_t *env,
-        xml_schema_t *schema_def)
-{
-    woden_inlined_schema_impl_t *schema_impl = NULL;
-
-    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    AXIS2_PARAM_CHECK(env->error, schema_def, AXIS2_FAILURE);
-    schema_impl = INTF_TO_IMPL(schema);
     
-    return WODEN_SCHEMA_SET_SCHEMA_DEF(schema_impl->schema, env, 
-            schema_def);
-}
-
-xml_schema_t *AXIS2_CALL 
-woden_inlined_schema_get_schema_def(
-        void *schema,
-        const axis2_env_t *env)
-{
-    woden_inlined_schema_impl_t *schema_impl = NULL;
-
-    AXIS2_ENV_CHECK(env, NULL);
-    schema_impl = INTF_TO_IMPL(schema);
-
-    return WODEN_SCHEMA_GET_SCHEMA_DEF(schema_impl->schema, env);
-}
-
-axis2_status_t AXIS2_CALL 
-woden_inlined_schema_set_referenceable(
-        void *schema,
-        const axis2_env_t *env,
-        axis2_bool_t referenceable)
-{
-    woden_inlined_schema_impl_t *schema_impl = NULL;
-
-    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    schema_impl = INTF_TO_IMPL(schema);
-
-    return WODEN_SCHEMA_SET_REFERENCEABLE(schema_impl->schema, env, 
-            referenceable); 
-}
-
-axis2_bool_t AXIS2_CALL 
-woden_inlined_schema_is_referenceable(
-        void *schema,
-        const axis2_env_t *env)
-{
-    woden_inlined_schema_impl_t *schema_impl = NULL;
-
-    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    schema_impl = INTF_TO_IMPL(schema);
-
-    return WODEN_SCHEMA_IS_REFERENCEABLE(schema_impl->schema, env);
+    return schema_impl->f_schema_id;
 }
 
-axis2_char_t *AXIS2_CALL 
-woden_inlined_schema_get_namespace_as_string(
-        void *schema,
-        const axis2_env_t *env)
-{
-    woden_inlined_schema_impl_t *schema_impl = NULL;
-
-    AXIS2_ENV_CHECK(env, NULL);
-    schema_impl = INTF_TO_IMPL(schema);
-
-    return WODEN_SCHEMA_GET_NAMESPACE_AS_STRING(schema_impl->schema, env);
-}
 

Modified: webservices/axis2/trunk/c/woden/src/schema/schema.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/schema/schema.c?rev=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/src/schema/schema.c (original)
+++ webservices/axis2/trunk/c/woden/src/schema/schema.c Tue Jul  4 20:25:47 2006
@@ -26,6 +26,9 @@
 struct woden_schema_impl
 {
     woden_schema_t schema;
+    axis2_hash_t *super;
+    woden_obj_types_t obj_type;
+
     axis2_uri_t *f_namespc;
     xml_schema_t *f_schema_def;
     axis2_bool_t f_is_referenceable;
@@ -38,6 +41,16 @@
         void *schema,
         const axis2_env_t *envv);
 
+axis2_hash_t *AXIS2_CALL
+woden_schema_super_objs(
+        void *schema,
+        const axis2_env_t *env);
+
+woden_obj_types_t AXIS2_CALL 
+woden_schema_type(
+        void *schema,
+        const axis2_env_t *env);
+
 axis2_status_t AXIS2_CALL 
 woden_schema_set_namespace(
         void *schema,
@@ -86,6 +99,8 @@
     schema_impl = AXIS2_MALLOC(env->allocator, 
                     sizeof(woden_schema_impl_t));
 
+    schema_impl->super = NULL;
+    schema_impl->obj_type = WODEN_SCHEMA;
     schema_impl->f_namespc = NULL;
     schema_impl->f_schema_def = NULL;
     schema_impl->f_is_referenceable = AXIS2_TRUE;
@@ -93,7 +108,15 @@
     schema_impl->schema.ops = AXIS2_MALLOC(env->allocator, 
                     sizeof(woden_schema_ops_t)); 
     
+    schema_impl->super = axis2_hash_make(env);
+    if(!schema_impl->super) 
+    {
+        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
     schema_impl->schema.ops->free = woden_schema_free;
+    schema_impl->schema.ops->type = woden_schema_type;
+    schema_impl->schema.ops->super_objs = woden_schema_super_objs;
     schema_impl->schema.ops->set_namespace = woden_schema_set_namespace;
     schema_impl->schema.ops->get_namespace = woden_schema_get_namespace;
     schema_impl->schema.ops->set_schema_def = woden_schema_set_schema_def;
@@ -105,6 +128,9 @@
     schema_impl->schema.ops->get_namespace_as_string = 
         woden_schema_get_namespace_as_string;
     
+    axis2_hash_set(schema_impl->super, "WODEN_SCHEMA", AXIS2_HASH_KEY_STRING, 
+            &(schema_impl->schema));
+
     return &(schema_impl->schema);
 }
 
@@ -144,6 +170,33 @@
     return AXIS2_SUCCESS;
 }
 
+axis2_hash_t *AXIS2_CALL
+woden_schema_super_objs(
+        void *schema,
+        const axis2_env_t *env)
+{
+    woden_schema_impl_t *schema_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+    schema_impl = INTF_TO_IMPL(schema);
+
+    return schema_impl->super;
+}
+
+woden_obj_types_t AXIS2_CALL 
+woden_schema_type(
+        void *schema,
+        const axis2_env_t *env)
+{
+    woden_schema_impl_t *schema_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    schema_impl = INTF_TO_IMPL(schema);
+
+    return schema_impl->obj_type;
+}
+
+
 axis2_status_t AXIS2_CALL
 woden_schema_resolve_methods(
         woden_schema_t *schema,
@@ -158,6 +211,9 @@
     schema_impl_l = INTF_TO_IMPL(schema_impl);
     
     schema->ops->free = axis2_hash_get(methods, "free", AXIS2_HASH_KEY_STRING);
+    schema->ops->super_objs = axis2_hash_get(methods, "super_objs", 
+            AXIS2_HASH_KEY_STRING);
+    schema->ops->type = axis2_hash_get(methods, "type", AXIS2_HASH_KEY_STRING);
 
     schema->ops->set_namespace = axis2_hash_get(methods, 
             "set_namespace", AXIS2_HASH_KEY_STRING);
@@ -211,10 +267,13 @@
         axis2_uri_t *namespc)
 {
     woden_schema_impl_t *schema_impl = NULL;
+    axis2_hash_t *super = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, namespc, AXIS2_FAILURE);
-    schema_impl = INTF_TO_IMPL(schema);
+    super = WODEN_SCHEMA_SUPER_OBJS(schema, env);
+    schema_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_SCHEMA", AXIS2_HASH_KEY_STRING));
 
     if(schema_impl->f_namespc)
     {
@@ -232,9 +291,12 @@
         const axis2_env_t *env)
 {
     woden_schema_impl_t *schema_impl = NULL;
+    axis2_hash_t *super = NULL;
 
     AXIS2_ENV_CHECK(env, NULL);
-    schema_impl = INTF_TO_IMPL(schema);
+    super = WODEN_SCHEMA_SUPER_OBJS(schema, env);
+    schema_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_SCHEMA", AXIS2_HASH_KEY_STRING));
 
     return schema_impl->f_namespc;
 }
@@ -246,10 +308,13 @@
         xml_schema_t *schema_def)
 {
     woden_schema_impl_t *schema_impl = NULL;
+    axis2_hash_t *super = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, schema_def, AXIS2_FAILURE);
-    schema_impl = INTF_TO_IMPL(schema);
+    super = WODEN_SCHEMA_SUPER_OBJS(schema, env);
+    schema_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_SCHEMA", AXIS2_HASH_KEY_STRING));
     
     if(schema_impl->f_schema_def)
     {
@@ -267,9 +332,12 @@
         const axis2_env_t *env)
 {
     woden_schema_impl_t *schema_impl = NULL;
+    axis2_hash_t *super = NULL;
 
     AXIS2_ENV_CHECK(env, NULL);
-    schema_impl = INTF_TO_IMPL(schema);
+    super = WODEN_SCHEMA_SUPER_OBJS(schema, env);
+    schema_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_SCHEMA", AXIS2_HASH_KEY_STRING));
 
     return schema_impl->f_schema_def;
 }
@@ -281,9 +349,12 @@
         axis2_bool_t referenceable)
 {
     woden_schema_impl_t *schema_impl = NULL;
+    axis2_hash_t *super = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    schema_impl = INTF_TO_IMPL(schema);
+    super = WODEN_SCHEMA_SUPER_OBJS(schema, env);
+    schema_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_SCHEMA", AXIS2_HASH_KEY_STRING));
 
     schema_impl->f_is_referenceable = referenceable;
     
@@ -296,9 +367,12 @@
         const axis2_env_t *env)
 {
     woden_schema_impl_t *schema_impl = NULL;
+    axis2_hash_t *super = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    schema_impl = INTF_TO_IMPL(schema);
+    super = WODEN_SCHEMA_SUPER_OBJS(schema, env);
+    schema_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_SCHEMA", AXIS2_HASH_KEY_STRING));
 
     return schema_impl->f_is_referenceable;
 }
@@ -309,9 +383,12 @@
         const axis2_env_t *env)
 {
     woden_schema_impl_t *schema_impl = NULL;
+    axis2_hash_t *super = NULL;
 
     AXIS2_ENV_CHECK(env, NULL);
-    schema_impl = INTF_TO_IMPL(schema);
+    super = WODEN_SCHEMA_SUPER_OBJS(schema, env);
+    schema_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_SCHEMA", AXIS2_HASH_KEY_STRING));
 
     return schema_impl->f_namespc != NULL ? 
         AXIS2_URI_TO_STRING(schema_impl->f_namespc, env, AXIS2_URI_UNP_OMITUSERINFO) : NULL;

Modified: webservices/axis2/trunk/c/woden/src/wsdl10/Makefile.am
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/wsdl10/Makefile.am?rev=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/src/wsdl10/Makefile.am (original)
+++ webservices/axis2/trunk/c/woden/src/wsdl10/Makefile.am Tue Jul  4 20:25:47 2006
@@ -11,7 +11,7 @@
 							configurable_component.c \
 							feature.c \
 							property.c \
-							types.c \
+							woden_types.c \
 							type_def.c \
 							msg_ref.c \
 							part.c \

Modified: webservices/axis2/trunk/c/woden/src/wsdl10/binding_op.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/wsdl10/binding_op.c?rev=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/src/wsdl10/binding_op.c (original)
+++ webservices/axis2/trunk/c/woden/src/wsdl10/binding_op.c Tue Jul  4 20:25:47 2006
@@ -407,6 +407,11 @@
         const axis2_env_t *env)
 {
     woden_wsdl10_binding_op_impl_t *binding_op_impl = NULL;
+    void *configurable = NULL;
+    void *documentable = NULL;
+    void *wsdl_obj = NULL;
+    void *wsdl_el = NULL;
+    void *attr_extensible = NULL;
    
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     if(!binding_op)
@@ -421,9 +426,17 @@
         base.documentable_element.wsdl_element.base.attr_extensible.ops = 
         AXIS2_MALLOC(env->allocator, 
                 sizeof(woden_attr_extensible_ops_t));
+
+    configurable = WODEN_NESTED_CONFIGURABLE_GET_BASE_IMPL(binding_op_impl->
+            nested_configurable, env);
+    documentable = WODEN_CONFIGURABLE_GET_BASE_IMPL(configurable, env);
+    wsdl_obj = WODEN_DOCUMENTABLE_GET_BASE_IMPL(documentable, env);
+    wsdl_el = WODEN_WSDL_OBJ_GET_BASE_IMPL(wsdl_obj, env);
+    attr_extensible = WODEN_WSDL_ELEMENT_GET_ATTR_EXTENSIBLE(wsdl_el, env);
     woden_attr_extensible_resolve_methods(&(binding_op_impl->binding_op.base.
             binding_op_element.base.documentable_element.
-            wsdl_element.base.attr_extensible), env, NULL, binding_op_impl->methods);
+            wsdl_element.base.attr_extensible), env, attr_extensible, 
+            binding_op_impl->methods);
     return binding_op;
 }
 
@@ -433,7 +446,12 @@
         const axis2_env_t *env)
 {
     woden_wsdl10_binding_op_impl_t *binding_op_impl = NULL;
-   
+    void *configurable = NULL;
+    void *documentable = NULL;
+    void *wsdl_obj = NULL;
+    void *wsdl_el = NULL;
+    void *element_extensible = NULL;
+
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     if(!binding_op)
     {
@@ -447,9 +465,16 @@
         base.documentable_element.wsdl_element.base.element_extensible.ops = 
         AXIS2_MALLOC(env->allocator, 
                 sizeof(woden_element_extensible_ops_t));
+    configurable = WODEN_NESTED_CONFIGURABLE_GET_BASE_IMPL(binding_op_impl->
+            nested_configurable, env);
+    documentable = WODEN_CONFIGURABLE_GET_BASE_IMPL(configurable, env);
+    wsdl_obj = WODEN_DOCUMENTABLE_GET_BASE_IMPL(documentable, env);
+    wsdl_el = WODEN_WSDL_OBJ_GET_BASE_IMPL(wsdl_obj, env);
+    element_extensible = WODEN_WSDL_ELEMENT_GET_ELEMENT_EXTENSIBLE(wsdl_el, env);
     woden_element_extensible_resolve_methods(&(binding_op_impl->binding_op.base.
             binding_op_element.base.documentable_element.
-            wsdl_element.base.element_extensible), env, NULL, binding_op_impl->methods);
+            wsdl_element.base.element_extensible), env, element_extensible, 
+            binding_op_impl->methods);
     return binding_op;
 }
 
@@ -570,6 +595,11 @@
 {
     woden_wsdl10_binding_op_impl_t *binding_op_impl = NULL;
     void *configurable = NULL;
+    void *documentable = NULL;
+    void *wsdl_obj = NULL;
+    void *wsdl_el = NULL;
+    void *element_extensible = NULL;
+    void *attr_extensible = NULL;
     
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     binding_op_impl = (woden_wsdl10_binding_op_impl_t *) create(env);
@@ -592,6 +622,22 @@
             binding_op_impl->nested_configurable, env);
     axis2_hash_set(binding_op_impl->super, "WODEN_CONFIGURABLE", 
             AXIS2_HASH_KEY_STRING, configurable);
+
+    documentable = WODEN_CONFIGURABLE_GET_BASE_IMPL(configurable, env);
+    wsdl_obj = WODEN_DOCUMENTABLE_GET_BASE_IMPL(documentable, env);
+    wsdl_el = WODEN_WSDL_OBJ_GET_BASE_IMPL(wsdl_obj, env);
+    element_extensible = WODEN_WSDL_ELEMENT_GET_ELEMENT_EXTENSIBLE(wsdl_el, env);
+    attr_extensible = WODEN_WSDL_ELEMENT_GET_ATTR_EXTENSIBLE(wsdl_el, env);
+    axis2_hash_set(binding_op_impl->super, "WODEN_DOCUMENTABLE", 
+            AXIS2_HASH_KEY_STRING, documentable);
+    axis2_hash_set(binding_op_impl->super, "WODEN_WSDL_OBJ", 
+            AXIS2_HASH_KEY_STRING, wsdl_obj);
+    axis2_hash_set(binding_op_impl->super, "WODEN_WSDL_ELEMENT", 
+            AXIS2_HASH_KEY_STRING, wsdl_el);
+    axis2_hash_set(binding_op_impl->super, "WODEN_ELEMENT_EXTENSIBLE", 
+            AXIS2_HASH_KEY_STRING, element_extensible);
+    axis2_hash_set(binding_op_impl->super, "WODEN_ATTR_EXTENSIBLE", 
+            AXIS2_HASH_KEY_STRING, attr_extensible);
  
     return &(binding_op_impl->binding_op);
 }

Modified: webservices/axis2/trunk/c/woden/src/wsdl10/component_model_builder.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/wsdl10/component_model_builder.c?rev=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/src/wsdl10/component_model_builder.c (original)
+++ webservices/axis2/trunk/c/woden/src/wsdl10/component_model_builder.c Tue Jul  4 20:25:47 2006
@@ -492,7 +492,7 @@
             qname = (axis2_qname_t *) AXIS2_ARRAY_LIST_GET(qnames, env, i);
             if(qname)
                 namespc = AXIS2_QNAME_GET_URI(qname, env);
-            if(0 == AXIS2_STRCMP(namespc, schema_tns))
+            if(namespc && 0 == AXIS2_STRCMP(namespc, schema_tns))
             {
                 void *ed = NULL;
 

Modified: webservices/axis2/trunk/c/woden/src/wsdl10/desc.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/wsdl10/desc.c?rev=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/src/wsdl10/desc.c (original)
+++ webservices/axis2/trunk/c/woden/src/wsdl10/desc.c Tue Jul  4 20:25:47 2006
@@ -138,7 +138,7 @@
         void *desc,
         const axis2_env_t *env);
 
-axis2_array_list_t *AXIS2_CALL
+void *AXIS2_CALL
 woden_wsdl10_desc_get_element_decl(
         void *desc,
         const axis2_env_t *env,
@@ -722,7 +722,6 @@
     desc_impl->f_all_msgs = axis2_array_list_create(env, 0);
     desc_impl->f_all_interfaces = axis2_array_list_create(env, 0);
     desc_impl->f_all_type_defs = axis2_array_list_create(env, 0);
-    desc_impl->f_all_element_decls = axis2_array_list_create(env, 0);
     if(!desc_impl->f_interface_elements ||
             !desc_impl->f_msg_elements || 
             !desc_impl->f_svc_elements || 
@@ -731,7 +730,6 @@
             !desc_impl->f_all_bindings || 
             !desc_impl->f_all_svcs || 
             !desc_impl->f_all_msgs || 
-            !desc_impl->f_all_element_decls || 
             !desc_impl->f_all_type_defs
             ) 
     {
@@ -1317,7 +1315,7 @@
     return desc_impl->f_all_element_decls;
 }
 
-axis2_array_list_t *AXIS2_CALL
+void *AXIS2_CALL
 woden_wsdl10_desc_get_element_decl(
         void *desc,
         const axis2_env_t *env,
@@ -1336,7 +1334,8 @@
    
     if(AXIS2_TRUE != desc_impl->f_component_initialized)
         woden_wsdl10_desc_init_components(desc, env);
-    size = AXIS2_ARRAY_LIST_SIZE(desc_impl->f_all_element_decls, env);
+    if(desc_impl->f_all_element_decls)
+        size = AXIS2_ARRAY_LIST_SIZE(desc_impl->f_all_element_decls, env);
     for(i = 0; i < size; i++)
     {
         axis2_qname_t *qname_l = NULL;
@@ -2128,7 +2127,16 @@
     super = WODEN_WSDL10_DESC_SUPER_OBJS(desc, env);
     desc_impl = INTF_TO_IMPL(axis2_hash_get(super, 
                 "WODEN_WSDL10_DESC", AXIS2_HASH_KEY_STRING));
-    
+   
+    if(!desc_impl->f_all_element_decls)
+    {
+        desc_impl->f_all_element_decls = axis2_array_list_create(env, 0);
+        if(!desc_impl->f_all_element_decls)
+        {
+            AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+            return AXIS2_FAILURE;
+        }
+    }
     return AXIS2_ARRAY_LIST_ADD(desc_impl->f_all_element_decls, env, element_decl);
 }
 

Modified: webservices/axis2/trunk/c/woden/src/wsdl10/element_decl.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/wsdl10/element_decl.c?rev=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/src/wsdl10/element_decl.c (original)
+++ webservices/axis2/trunk/c/woden/src/wsdl10/element_decl.c Tue Jul  4 20:25:47 2006
@@ -29,6 +29,7 @@
     woden_element_decl_t decl;
     woden_obj_types_t obj_type;
     axis2_hash_t *super;
+
     axis2_qname_t *f_qname;
     axis2_uri_t *f_system;
     axis2_char_t *f_content_model;
@@ -128,6 +129,8 @@
     
     decl_impl->decl.ops->free = 
         woden_element_decl_free;
+    decl_impl->decl.ops->super_objs = 
+        woden_element_decl_super_objs;
     decl_impl->decl.ops->type = 
         woden_element_decl_type;
     

Modified: webservices/axis2/trunk/c/woden/src/wsdl10/extensions/attr_extensible.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/wsdl10/extensions/attr_extensible.c?rev=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/src/wsdl10/extensions/attr_extensible.c (original)
+++ webservices/axis2/trunk/c/woden/src/wsdl10/extensions/attr_extensible.c Tue Jul  4 20:25:47 2006
@@ -109,6 +109,7 @@
         woden_attr_extensible_super_objs;
     extensible_impl->extensible.ops->type = 
         woden_attr_extensible_type;
+
     extensible_impl->extensible.ops->set_ext_attr = 
         woden_attr_extensible_set_ext_attr;
     extensible_impl->extensible.ops->get_ext_attr = 
@@ -274,10 +275,13 @@
 {
     woden_attr_extensible_impl_t *extensible_impl = NULL;
     axis2_char_t *str_attr_type = NULL;
+    axis2_hash_t *super = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, attr_type, AXIS2_FAILURE);
-    extensible_impl = INTF_TO_IMPL(extensible);
+    super = WODEN_ATTR_EXTENSIBLE_SUPER_OBJS(extensible, env);
+    extensible_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_ATTR_EXTENSIBLE", AXIS2_HASH_KEY_STRING));
     
     str_attr_type = AXIS2_QNAME_TO_STRING(attr_type, env);
     if(attr)
@@ -297,10 +301,13 @@
 {
     woden_attr_extensible_impl_t *extensible_impl = NULL;
     axis2_char_t *str_attr_type = NULL;
+    axis2_hash_t *super = NULL;
 
     AXIS2_ENV_CHECK(env, NULL);
     AXIS2_PARAM_CHECK(env->error, attr_type, NULL);
-    extensible_impl = INTF_TO_IMPL(extensible);
+    super = WODEN_ATTR_EXTENSIBLE_SUPER_OBJS(extensible, env);
+    extensible_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_ATTR_EXTENSIBLE", AXIS2_HASH_KEY_STRING));
 
     str_attr_type = AXIS2_QNAME_TO_STRING(attr_type, env);
     return (woden_xml_attr_t *)axis2_hash_get(extensible_impl->f_ext_attrs, 
@@ -314,9 +321,12 @@
 {
     woden_attr_extensible_impl_t *extensible_impl = NULL;
     axis2_hash_index_t *index = NULL;
+    axis2_hash_t *super = NULL;
     
     AXIS2_ENV_CHECK(env, NULL);
-    extensible_impl = INTF_TO_IMPL(extensible);
+    super = WODEN_ATTR_EXTENSIBLE_SUPER_OBJS(extensible, env);
+    extensible_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_ATTR_EXTENSIBLE", AXIS2_HASH_KEY_STRING));
  
     if(extensible_impl->temp_attrs)
     {
@@ -352,10 +362,13 @@
     woden_attr_extensible_impl_t *extensible_impl = NULL;
     axis2_char_t *str_namespc = NULL;
     axis2_hash_index_t *index = NULL;
+    axis2_hash_t *super = NULL;
     
     AXIS2_ENV_CHECK(env, NULL);
     AXIS2_PARAM_CHECK(env->error, namespc, NULL);
-    extensible_impl = INTF_TO_IMPL(extensible);
+    super = WODEN_ATTR_EXTENSIBLE_SUPER_OBJS(extensible, env);
+    extensible_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_ATTR_EXTENSIBLE", AXIS2_HASH_KEY_STRING));
 
     str_namespc = AXIS2_URI_TO_STRING(namespc, env, AXIS2_URI_UNP_OMITUSERINFO);
     if(extensible_impl->temp_attrs)
@@ -395,10 +408,13 @@
     axis2_bool_t result = AXIS2_FALSE;
     axis2_char_t *str_namespc = NULL;
     axis2_hash_index_t *index = NULL;
+    axis2_hash_t *super = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, namespc, AXIS2_FAILURE);
-    extensible_impl = INTF_TO_IMPL(extensible);
+    super = WODEN_ATTR_EXTENSIBLE_SUPER_OBJS(extensible, env);
+    extensible_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_ATTR_EXTENSIBLE", AXIS2_HASH_KEY_STRING));
 
     str_namespc = AXIS2_URI_TO_STRING(namespc, env, AXIS2_URI_UNP_OMITUSERINFO);
     for (index = axis2_hash_first (extensible_impl->f_ext_attrs, env); index; 

Modified: webservices/axis2/trunk/c/woden/src/wsdl10/extensions/element_extensible.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/woden/src/wsdl10/extensions/element_extensible.c?rev=419147&r1=419146&r2=419147&view=diff
==============================================================================
--- webservices/axis2/trunk/c/woden/src/wsdl10/extensions/element_extensible.c (original)
+++ webservices/axis2/trunk/c/woden/src/wsdl10/extensions/element_extensible.c Tue Jul  4 20:25:47 2006
@@ -107,6 +107,9 @@
         woden_element_extensible_free;
     extensible_impl->extensible.ops->type = 
         woden_element_extensible_type;
+    extensible_impl->extensible.ops->super_objs = 
+        woden_element_extensible_super_objs;
+
     extensible_impl->extensible.ops->add_ext_element = 
         woden_element_extensible_add_ext_element;
     extensible_impl->extensible.ops->remove_ext_element = 
@@ -262,15 +265,18 @@
 
 axis2_status_t AXIS2_CALL 
 woden_element_extensible_add_ext_element(
-                                    void *extensible,
-                                    const axis2_env_t *env,
-                                    woden_ext_element_t *ext_el) 
+        void *extensible,
+        const axis2_env_t *env,
+        woden_ext_element_t *ext_el) 
 {
     woden_element_extensible_impl_t *extensible_impl = NULL;
+    axis2_hash_t *super = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, ext_el, AXIS2_FAILURE);
-    extensible_impl = INTF_TO_IMPL(extensible);
+    super = WODEN_ELEMENT_EXTENSIBLE_SUPER_OBJS(extensible, env);
+    extensible_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_ELEMENT_EXTENSIBLE", AXIS2_HASH_KEY_STRING));
     
     
     return AXIS2_ARRAY_LIST_ADD(extensible_impl->f_ext_elements, env, ext_el);
@@ -284,10 +290,13 @@
 {
     woden_element_extensible_impl_t *extensible_impl = NULL;
     int index = -1;
+    axis2_hash_t *super = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, ext_el, AXIS2_FAILURE);
-    extensible_impl = INTF_TO_IMPL(extensible);
+    super = WODEN_ELEMENT_EXTENSIBLE_SUPER_OBJS(extensible, env);
+    extensible_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_ELEMENT_EXTENSIBLE", AXIS2_HASH_KEY_STRING));
 
     index = AXIS2_ARRAY_LIST_INDEX_OF(extensible_impl->f_ext_elements, env, ext_el);
     AXIS2_ARRAY_LIST_REMOVE(extensible_impl->f_ext_elements, env, index);
@@ -299,9 +308,12 @@
                                                 const axis2_env_t *env) 
 {
     woden_element_extensible_impl_t *extensible_impl = NULL;
+    axis2_hash_t *super = NULL;
 
     AXIS2_ENV_CHECK(env, NULL);
-    extensible_impl = INTF_TO_IMPL(extensible);
+    super = WODEN_ELEMENT_EXTENSIBLE_SUPER_OBJS(extensible, env);
+    extensible_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_ELEMENT_EXTENSIBLE", AXIS2_HASH_KEY_STRING));
     
     return extensible_impl->f_ext_elements;
 }
@@ -314,10 +326,13 @@
     woden_element_extensible_impl_t *extensible_impl = NULL;
     int i = 0;
     int size = 0;
+    axis2_hash_t *super = NULL;
     
     AXIS2_ENV_CHECK(env, NULL);
     AXIS2_PARAM_CHECK(env->error, ext_type, NULL);
-    extensible_impl = INTF_TO_IMPL(extensible);
+    super = WODEN_ELEMENT_EXTENSIBLE_SUPER_OBJS(extensible, env);
+    extensible_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_ELEMENT_EXTENSIBLE", AXIS2_HASH_KEY_STRING));
 
     if(extensible_impl->temp_elems)
     {
@@ -353,19 +368,23 @@
 }
 
 axis2_bool_t AXIS2_CALL 
-woden_element_extensible_has_ext_elements_for_namespace(void *extensible,
-                                                                const axis2_env_t *env,
-                                                                axis2_uri_t *namespc)
+woden_element_extensible_has_ext_elements_for_namespace(
+        void *extensible,
+        const axis2_env_t *env,
+        axis2_uri_t *namespc)
 {
     woden_element_extensible_impl_t *extensible_impl = NULL;
     axis2_bool_t result = AXIS2_FALSE;
     axis2_char_t *ext_ns = NULL;
     int i = 0;
     int size = 0;
+    axis2_hash_t *super = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, namespc, AXIS2_FAILURE);
-    extensible_impl = INTF_TO_IMPL(extensible);
+    super = WODEN_ELEMENT_EXTENSIBLE_SUPER_OBJS(extensible, env);
+    extensible_impl = INTF_TO_IMPL(axis2_hash_get(super, 
+                "WODEN_ELEMENT_EXTENSIBLE", AXIS2_HASH_KEY_STRING));
 
     ext_ns = AXIS2_URI_TO_STRING(namespc, env, AXIS2_URI_UNP_OMITUSERINFO);
     size = AXIS2_ARRAY_LIST_SIZE(extensible_impl->f_ext_elements, env);



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