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 na...@apache.org on 2006/08/08 07:57:52 UTC

svn commit: r429593 [2/3] - in /webservices/axis2/trunk/c/xml_schema: include/ samples/ src/ test/

Modified: webservices/axis2/trunk/c/xml_schema/src/xml_schema_derivation_method.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/src/xml_schema_derivation_method.c?rev=429593&r1=429592&r2=429593&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/src/xml_schema_derivation_method.c (original)
+++ webservices/axis2/trunk/c/xml_schema/src/xml_schema_derivation_method.c Mon Aug  7 22:57:49 2006
@@ -31,8 +31,6 @@
     
     xml_schema_enum_t *schema_enum;
     
-    axis2_hash_t *methods;
-    
     xml_schema_types_t type;
     
     axis2_array_list_t *members;
@@ -83,7 +81,6 @@
     }
     
     derivation_method_impl->schema_enum = NULL;
-    derivation_method_impl->methods = NULL;
     derivation_method_impl->members = NULL;
     derivation_method_impl->ht_super = NULL;
     derivation_method_impl->type = XML_SCHEMA_DERIVATION_METHOD;
@@ -143,27 +140,6 @@
     AXIS2_ARRAY_LIST_ADD(derivation_method_impl->members, env,
         AXIS2_STRDUP(XML_SCHEMA_CONST_UNION, env));
 
-    derivation_method_impl->methods = axis2_hash_make(env);
-
-    if(!derivation_method_impl->methods)
-    {
-        xml_schema_derivation_method_free(
-            &(derivation_method_impl->derivation_method), env);
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        return NULL;
-    }
-    
-    axis2_hash_set(derivation_method_impl->methods, "free", AXIS2_HASH_KEY_STRING, 
-            xml_schema_derivation_method_free);
-            
-    axis2_hash_set(derivation_method_impl->methods, "get_values", AXIS2_HASH_KEY_STRING, 
-            xml_schema_derivation_method_get_values);
-    
-    axis2_hash_set(derivation_method_impl->methods, "super_objs", AXIS2_HASH_KEY_STRING,
-            xml_schema_derivation_method_super_objs);
-            
-    axis2_hash_set(derivation_method_impl->methods, "get_type", AXIS2_HASH_KEY_STRING,
-            xml_schema_derivation_method_get_type);
     
     derivation_method_impl->schema_enum = 
         xml_schema_enum_create(env, value);
@@ -176,15 +152,18 @@
     }   
     
     derivation_method_impl->ht_super = axis2_hash_make(env);
-    axis2_hash_set(derivation_method_impl->ht_super, "XML_SCHEMA_DERIVATION_METHOD",
+    axis2_hash_set(derivation_method_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_DERIVATION_METHOD", env),
                     AXIS2_HASH_KEY_STRING, &(derivation_method_impl->derivation_method));
                     
-    axis2_hash_set(derivation_method_impl->ht_super, "XML_SCHEMA_ENUM",
+    axis2_hash_set(derivation_method_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_ENUM", env),
                     AXIS2_HASH_KEY_STRING, derivation_method_impl->schema_enum);                       
+
     status = xml_schema_enum_resolve_methods(
             &(derivation_method_impl->derivation_method.base), 
             env, derivation_method_impl->schema_enum, 
-            derivation_method_impl->methods); 
+            xml_schema_derivation_method_super_objs,
+            xml_schema_derivation_method_get_type,
+            xml_schema_derivation_method_free); 
 
     return &(derivation_method_impl->derivation_method);
 }

Modified: webservices/axis2/trunk/c/xml_schema/src/xml_schema_documentation.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/src/xml_schema_documentation.c?rev=429593&r1=429592&r2=429593&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/src/xml_schema_documentation.c (original)
+++ webservices/axis2/trunk/c/xml_schema/src/xml_schema_documentation.c Mon Aug  7 22:57:49 2006
@@ -35,8 +35,6 @@
     
     axis2_hash_t *ht_super;
     
-    axis2_hash_t *methods;
-
     axis2_char_t *source;
     
     axiom_child_element_iterator_t *markup; 
@@ -115,7 +113,6 @@
     documentation_impl->documentation.ops = NULL;
     documentation_impl->obj_type = XML_SCHEMA_APP_INFO;
     documentation_impl->ht_super = NULL;
-    documentation_impl->methods = NULL;
     documentation_impl->source = NULL;
     documentation_impl->markup = NULL;
     documentation_impl->language  = NULL;
@@ -160,34 +157,6 @@
         xml_schema_documentation_get_language;
                    
    
-    documentation_impl->methods = axis2_hash_make(env);
-    if(!documentation_impl->methods) 
-    {
-        xml_schema_documentation_free(&(documentation_impl->documentation), env);
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        return NULL;
-    }
-    axis2_hash_set(documentation_impl->methods, "free", 
-            AXIS2_HASH_KEY_STRING, xml_schema_documentation_free);
-    
-    axis2_hash_set(documentation_impl->methods, "super_objs", 
-            AXIS2_HASH_KEY_STRING, xml_schema_documentation_super_objs);
-    
-    axis2_hash_set(documentation_impl->methods, "get_type", 
-            AXIS2_HASH_KEY_STRING, xml_schema_documentation_get_type);
-    
-    axis2_hash_set(documentation_impl->methods, "get_source", 
-            AXIS2_HASH_KEY_STRING, xml_schema_documentation_get_source);
-    
-    axis2_hash_set(documentation_impl->methods, "set_source", 
-            AXIS2_HASH_KEY_STRING, xml_schema_documentation_set_source);
-    
-    axis2_hash_set(documentation_impl->methods, "get_markup", 
-            AXIS2_HASH_KEY_STRING, xml_schema_documentation_get_markup);
-    
-    axis2_hash_set(documentation_impl->methods, "set_markup", 
-            AXIS2_HASH_KEY_STRING, xml_schema_documentation_set_markup);
-
     documentation_impl->schema_obj = xml_schema_obj_create(env);
     if(!documentation_impl->schema_obj) 
     {
@@ -203,14 +172,19 @@
         AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
     }
-    axis2_hash_set(documentation_impl->ht_super, "XML_SCHEMA_DOCUMENTATION", 
+    axis2_hash_set(documentation_impl->ht_super, 
+            AXIS2_STRDUP("XML_SCHEMA_DOCUMENTATION", env), 
             AXIS2_HASH_KEY_STRING, &(documentation_impl->documentation));
             
-    axis2_hash_set(documentation_impl->ht_super, "XML_SCHEMA_OBJ", 
+    axis2_hash_set(documentation_impl->ht_super, 
+            AXIS2_STRDUP("XML_SCHEMA_OBJ", env), 
             AXIS2_HASH_KEY_STRING, documentation_impl->schema_obj);
 
     status = xml_schema_obj_resolve_methods(&(documentation_impl->documentation.base), 
-            env, documentation_impl->schema_obj, documentation_impl->methods);
+            env, documentation_impl->schema_obj, 
+            xml_schema_documentation_super_objs,
+            xml_schema_documentation_get_type,
+            xml_schema_documentation_free);
     return &(documentation_impl->documentation);
 }
 
@@ -237,12 +211,6 @@
         documentation_impl->ht_super = NULL;
     }
     
-    if(NULL != documentation_impl->methods)
-    {
-        axis2_hash_free(documentation_impl->methods, env);
-        documentation_impl->methods = NULL;
-    }
-
     if(NULL != documentation_impl->schema_obj)
     {
         XML_SCHEMA_OBJ_FREE(documentation_impl->schema_obj, env);

Modified: webservices/axis2/trunk/c/xml_schema/src/xml_schema_element.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/src/xml_schema_element.c?rev=429593&r1=429592&r2=429593&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/src/xml_schema_element.c (original)
+++ webservices/axis2/trunk/c/xml_schema/src/xml_schema_element.c Mon Aug  7 22:57:49 2006
@@ -20,6 +20,8 @@
 #include <xml_schema_derivation_method.h>
 #include <xml_schema_obj_collection.h>
 #include <xml_schema_type.h>
+#include <xml_schema_simple_type.h>
+#include <xml_schema_complex_type.h>
 #include <xml_schema_form.h>
 #include <axis2_utils.h>
 
@@ -39,7 +41,6 @@
     
     xml_schema_particle_t *particle;
     
-    axis2_hash_t *methods;
     /**
      * Attribute used to block a type derivation.
      */
@@ -324,7 +325,6 @@
     }
 
     element_impl->type_recv = NULL;
-    element_impl->methods = NULL;
     element_impl->block = NULL;
     element_impl->block_resolved = NULL;
     element_impl->constraints = NULL;
@@ -336,7 +336,6 @@
     element_impl->form = NULL;
     element_impl->is_abstract = AXIS2_FALSE;
     element_impl->is_nillable = AXIS2_FALSE;
-    element_impl->methods = NULL;
     element_impl->schema_type = NULL;
     element_impl->schema_type_qname = NULL;
     element_impl->element.ops = NULL;
@@ -433,84 +432,7 @@
     element_impl->element.ops->set_type = 
             xml_schema_element_set_type;
    
-    element_impl->methods = axis2_hash_make(env);
-    if(!element_impl->methods)
-    {
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        return NULL;
-    }
-    axis2_hash_set(element_impl->methods, "free", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_free);
-    axis2_hash_set(element_impl->methods, "get_constraints", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_get_constraints);
-    axis2_hash_set(element_impl->methods, "get_type", AXIS2_HASH_KEY_STRING,
-            xml_schema_element_get_type);
-    axis2_hash_set(element_impl->methods, "super_objs", AXIS2_HASH_KEY_STRING,
-            xml_schema_element_super_objs);            
-    axis2_hash_set(element_impl->methods, "get_default_value", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_get_default_value);
-    axis2_hash_set(element_impl->methods, "set_default_value", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_set_default_value);
-    axis2_hash_set(element_impl->methods, "get_block", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_get_block);
-    axis2_hash_set(element_impl->methods, "set_block", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_set_block);
-    axis2_hash_set(element_impl->methods, "get_final", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_get_final);
-    axis2_hash_set(element_impl->methods, "set_final", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_set_final);
-    axis2_hash_set(element_impl->methods, "get_block_resolved", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_get_block_resolved);
-    axis2_hash_set(element_impl->methods, "get_fixed_value", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_get_fixed_value);
-    axis2_hash_set(element_impl->methods, "set_fixed_value", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_set_fixed_value);
-    axis2_hash_set(element_impl->methods, "get_element_type", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_get_element_type);
-    axis2_hash_set(element_impl->methods, "get_form", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_get_form);
-    axis2_hash_set(element_impl->methods, "set_form", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_set_form);
-    axis2_hash_set(element_impl->methods, "is_abstract", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_is_abstract);
-    axis2_hash_set(element_impl->methods, "set_abstract", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_set_abstract);
-    axis2_hash_set(element_impl->methods, "is_nillable", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_is_nillable);
-    axis2_hash_set(element_impl->methods, "set_nillable", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_set_nillable);
-    axis2_hash_set(element_impl->methods, "get_name", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_get_name);
-    axis2_hash_set(element_impl->methods, "set_name", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_set_name);
-    axis2_hash_set(element_impl->methods, "get_ref_qname", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_get_ref_qname);
-    axis2_hash_set(element_impl->methods, "set_ref_qname", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_set_ref_qname);
-    axis2_hash_set(element_impl->methods, "get_qname", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_get_qname);
-    axis2_hash_set(element_impl->methods, "get_qname", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_get_qname);
-    axis2_hash_set(element_impl->methods, "set_qname", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_set_qname);
-    axis2_hash_set(element_impl->methods, "get_schema_type", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_get_schema_type);
-    axis2_hash_set(element_impl->methods, "set_schema_type", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_set_schema_type);
-    axis2_hash_set(element_impl->methods, "get_schema_type_qname", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_get_schema_type_qname);
-    axis2_hash_set(element_impl->methods, "set_schema-type_qname", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_set_schema_type_qname);
-    axis2_hash_set(element_impl->methods, "get_substitution_group", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_get_substitution_group);
-    axis2_hash_set(element_impl->methods, "set_substitution_group", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_set_substitution_group);
-    axis2_hash_set(element_impl->methods, "to_string", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_to_string);
-    axis2_hash_set(element_impl->methods, "set_type", AXIS2_HASH_KEY_STRING, 
-            xml_schema_element_set_type);
-
-    /*element_impl->type_recv = xml_schema_type_receiver_create(env); */
+   /*element_impl->type_recv = xml_schema_type_receiver_create(env); */
     element_impl->particle = xml_schema_particle_create(env);
     if(!element_impl->particle)
     {
@@ -524,22 +446,25 @@
         return NULL;
     }
     
-    axis2_hash_set(element_impl->ht_super, "XML_SCHEMA_ELEMENT",
+    axis2_hash_set(element_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_ELEMENT", env),
         AXIS2_HASH_KEY_STRING, &(element_impl->element));
-    axis2_hash_set(element_impl->ht_super, "XML_SCHEMA_PARTICLE",
+        
+    axis2_hash_set(element_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_PARTICLE", env),
         AXIS2_HASH_KEY_STRING, element_impl->particle);
     
     annotated = XML_SCHEMA_PARTICLE_GET_BASE_IMPL(element_impl->particle, env);
     if(NULL != annotated)
     {
-        axis2_hash_set(element_impl->ht_super, "XML_SCHEMA_ANNOTATED", 
+        axis2_hash_set(element_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_ANNOTATED", env), 
             AXIS2_HASH_KEY_STRING, &(element_impl->element));
-        axis2_hash_set(element_impl->ht_super, "XML_SCHEMA_OBJ",
+        axis2_hash_set(element_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_OBJ", env),
             AXIS2_HASH_KEY_STRING, XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(annotated, env));            
     }
     xml_schema_particle_resolve_methods(
             &(element_impl->element.base), env, element_impl->particle, 
-            element_impl->methods);
+            xml_schema_element_super_objs,
+            xml_schema_element_get_type,
+            xml_schema_element_free);
 
     return &(element_impl->element);
 }
@@ -559,39 +484,44 @@
         XML_SCHEMA_PARTICLE_FREE(element_impl->particle, env);
         element_impl->particle = NULL;
     }
-    if(NULL != element_impl->methods)
-    {
-        axis2_hash_free(element_impl->methods, env);
-        element_impl->methods = NULL;
-    }
     
     if(NULL != element_impl->type_recv)
     {
         XML_SCHEMA_ANNOTATED_FREE(element_impl->type_recv, env);
         element_impl->type_recv = NULL;
     }
-    if(NULL !=  element_impl->element.ops)
-    {
-        AXIS2_FREE(env->allocator, element_impl->element.ops);
-        element_impl->element.ops = NULL;
-    }
+    
+
+
     if(NULL != element_impl->schema_type)
     {
-        /*
         if(XML_SCHEMA_TYPE_GET_TYPE(element_impl->schema_type, env) 
             == XML_SCHEMA_SIMPLE_TYPE)
         {
+          /*
             XML_SCHEMA_SIMPLE_TYPE_FREE(element_impl->schema_type, env);
             element_impl->schema_type = NULL;
-        }
-        if(XML_SCHEMA_TYPE_GET_TYPE(element_impl->schema_type, env)
+          */            
+        }else if(XML_SCHEMA_TYPE_GET_TYPE(element_impl->schema_type, env)
             == XML_SCHEMA_COMPLEX_TYPE)
         {
+            /*
             XML_SCHEMA_COMPLEX_TYPE_FREE(element_impl->schema_type, env);
+            */
         } 
-        */
-        XML_SCHEMA_TYPE_FREE(element_impl->schema_type, env);            
     }
+    if(NULL != element_impl->element.base.ops)
+    {
+        AXIS2_FREE(env->allocator, element_impl->element.base.ops);
+        element_impl->element.base.ops = NULL;
+    
+    }
+    if(NULL !=  element_impl->element.ops)
+    {
+        AXIS2_FREE(env->allocator, element_impl->element.ops);
+        element_impl->element.ops = NULL;
+    }
+
     if(element_impl)
     {
         AXIS2_FREE(env->allocator, element_impl);

Modified: webservices/axis2/trunk/c/xml_schema/src/xml_schema_enum.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/src/xml_schema_enum.c?rev=429593&r1=429592&r2=429593&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/src/xml_schema_enum.c (original)
+++ webservices/axis2/trunk/c/xml_schema/src/xml_schema_enum.c Mon Aug  7 22:57:49 2006
@@ -218,13 +218,15 @@
         xml_schema_enum_t *schema_enum,
         const axis2_env_t *env,
         xml_schema_enum_t *schema_enum_impl,
-        axis2_hash_t *methods)
+        XML_SCHEMA_SUPER_OBJS_FN super_objs,
+        XML_SCHEMA_GET_TYPE_FN get_type,
+        XML_SCHEMA_FREE_FN free_fn)
+                                
 {    
     xml_schema_enum_impl_t *this_sch_enum_impl = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, schema_enum_impl, AXIS2_FAILURE);
-    AXIS2_PARAM_CHECK(env->error, methods, AXIS2_FAILURE);
     
     this_sch_enum_impl = (xml_schema_enum_impl_t*) schema_enum_impl;
     
@@ -237,13 +239,10 @@
         return AXIS2_FAILURE;
     }
     
-    schema_enum->ops->free = axis2_hash_get(methods, "free", 
-            AXIS2_HASH_KEY_STRING);
+    schema_enum->ops->free = free_fn;
     
-    schema_enum->ops->super_objs = axis2_hash_get(methods, "super_objs", 
-            AXIS2_HASH_KEY_STRING);
-    schema_enum->ops->get_type = axis2_hash_get(methods, "get_type", 
-            AXIS2_HASH_KEY_STRING);
+    schema_enum->ops->super_objs = super_objs;
+    schema_enum->ops->get_type = get_type;
     
     schema_enum->ops->get_value = 
         this_sch_enum_impl->schema_enum.ops->get_value;
@@ -254,13 +253,9 @@
     schema_enum->ops->equals = 
         this_sch_enum_impl->schema_enum.ops->equals;
     
-    schema_enum->ops->get_values = axis2_hash_get(methods, 
-            "get_values", AXIS2_HASH_KEY_STRING);
-    if(!schema_enum->ops->get_values)
     schema_enum->ops->get_values = 
             this_sch_enum_impl->schema_enum.ops->get_values;
     return AXIS2_SUCCESS;    
-
 }
 
 

Modified: webservices/axis2/trunk/c/xml_schema/src/xml_schema_external.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/src/xml_schema_external.c?rev=429593&r1=429592&r2=429593&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/src/xml_schema_external.c (original)
+++ webservices/axis2/trunk/c/xml_schema/src/xml_schema_external.c Mon Aug  7 22:57:49 2006
@@ -28,8 +28,6 @@
     
     xml_schema_t *schema;
     
-    axis2_hash_t *methods;
-    
     xml_schema_types_t obj_type;
     
     axis2_hash_t *ht_super;
@@ -96,7 +94,6 @@
     }
     external_impl->schema = NULL;
     external_impl->annotated = NULL;
-    external_impl->methods = NULL;
     external_impl->external.ops = NULL;
     external_impl->external.base.ops = NULL;
     external_impl->ht_super = NULL;
@@ -130,44 +127,15 @@
     external_impl->external.ops->set_schema_location =
         xml_schema_external_set_schema_location;
 
-    external_impl->methods = axis2_hash_make(env);
     external_impl->ht_super = axis2_hash_make(env);
 
-    if(!external_impl->methods || !external_impl->ht_super)
+    if(!external_impl->ht_super)
     {
         xml_schema_external_free(&(external_impl->external), env);
         AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
     }
 
-    axis2_hash_set(external_impl->methods, "free", 
-            AXIS2_HASH_KEY_STRING, 
-            xml_schema_external_free);
-    
-    axis2_hash_set(external_impl->methods, "get_type",
-            AXIS2_HASH_KEY_STRING, 
-            xml_schema_external_get_type);
-    
-    axis2_hash_set(external_impl->methods, "super_objs", 
-            AXIS2_HASH_KEY_STRING, 
-            xml_schema_external_super_objs);
-            
-    axis2_hash_set(external_impl->methods, "get_schema_location",
-            AXIS2_HASH_KEY_STRING, 
-            xml_schema_external_get_schema_location);
-            
-    axis2_hash_set(external_impl->methods, "set_schema_location", 
-            AXIS2_HASH_KEY_STRING, 
-            xml_schema_external_set_schema_location);
-            
-    axis2_hash_set(external_impl->methods, "get_schema", 
-            AXIS2_HASH_KEY_STRING, 
-            xml_schema_external_get_schema);
-            
-    axis2_hash_set(external_impl->methods, "set_schema", 
-            AXIS2_HASH_KEY_STRING, 
-            xml_schema_external_set_schema);
-
     external_impl->annotated = xml_schema_annotated_create(env);
 
     if(!external_impl->annotated)
@@ -176,17 +144,19 @@
         return NULL;
     }
     
-    axis2_hash_set(external_impl->ht_super, "XML_SCHEMA_EXTERNAL", 
+    axis2_hash_set(external_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_EXTERNAL", env), 
             AXIS2_HASH_KEY_STRING, &(external_impl->external));
-    axis2_hash_set(external_impl->ht_super, "XML_SCHEMA_ANNOTATED", 
+    axis2_hash_set(external_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_ANNOTATED", env), 
             AXIS2_HASH_KEY_STRING, external_impl->annotated);
-    axis2_hash_set(external_impl->ht_super, "XML_SCHEMA_OBJ", 
+    axis2_hash_set(external_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_OBJ", env), 
             AXIS2_HASH_KEY_STRING, 
             XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(external_impl->annotated, env));
 
     status = xml_schema_annotated_resolve_methods(
             &(external_impl->external.base), env, external_impl->annotated, 
-            external_impl->methods);
+            xml_schema_external_super_objs,
+            xml_schema_external_get_type,
+            xml_schema_external_free);
 
     return &(external_impl->external);
 }
@@ -209,12 +179,6 @@
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     external_impl = AXIS2_INTF_TO_IMPL(external);
 
-    if(NULL != external_impl->methods)
-    {
-        axis2_hash_free(external_impl->methods, env);
-        external_impl->methods = NULL;
-    }
-
     if(NULL != external_impl->ht_super)
     {
         axis2_hash_free(external_impl->ht_super, env);
@@ -258,25 +222,23 @@
                                 xml_schema_external_t *external,
                                 const axis2_env_t *env,
                                 xml_schema_external_t *external_impl,
-                                axis2_hash_t *methods)
+                                XML_SCHEMA_SUPER_OBJS_FN super_objs,
+                                XML_SCHEMA_GET_TYPE_FN get_type,
+                                XML_SCHEMA_FREE_FN free_fn)
 {
     xml_schema_external_impl_t *sch_ext_impl = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, external_impl, AXIS2_FAILURE);
-    AXIS2_PARAM_CHECK(env->error, methods, AXIS2_FAILURE);
     
     sch_ext_impl = (xml_schema_external_impl_t *) external_impl;
     
     external->ops = AXIS2_MALLOC(env->allocator, 
             sizeof(xml_schema_external_ops_t));
             
-    external->ops->free = axis2_hash_get(methods, "free", 
-            AXIS2_HASH_KEY_STRING);
-    external->ops->super_objs = axis2_hash_get(methods, "super_objs",
-            AXIS2_HASH_KEY_STRING);
-    external->ops->get_type = axis2_hash_get(methods, "type",
-            AXIS2_HASH_KEY_STRING);
+    external->ops->free = free_fn;
+    external->ops->super_objs = super_objs;
+    external->ops->get_type = get_type;
                                    
     external->ops->set_schema = 
         sch_ext_impl->external.ops->set_schema;
@@ -287,7 +249,7 @@
     external->ops->get_schema_location =
         sch_ext_impl->external.ops->get_schema_location;        
     return xml_schema_annotated_resolve_methods(&(external->base), 
-            env, sch_ext_impl->annotated, methods);
+            env, sch_ext_impl->annotated, super_objs, get_type, free_fn);
 }
 
 xml_schema_t * AXIS2_CALL

Modified: webservices/axis2/trunk/c/xml_schema/src/xml_schema_facet.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/src/xml_schema_facet.c?rev=429593&r1=429592&r2=429593&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/src/xml_schema_facet.c (original)
+++ webservices/axis2/trunk/c/xml_schema/src/xml_schema_facet.c Mon Aug  7 22:57:49 2006
@@ -27,8 +27,6 @@
     
     xml_schema_annotated_t *annotated;
     
-    axis2_hash_t *methods;
-    
     axis2_bool_t fixed;
     
     int obj_type;
@@ -114,7 +112,7 @@
     facet_impl->facet.ops = NULL;
     facet_impl->obj_type = type;
     facet_impl->facet.base.ops = NULL;
-    facet_impl->methods = NULL;
+
     facet_impl->fixed = fixed;
     facet_impl->value = AXIS2_STRDUP(value, env);
     
@@ -145,29 +143,6 @@
     facet_impl->facet.ops->super_objs =
         xml_schema_facet_super_objs;                       
    
-    facet_impl->methods = axis2_hash_make(env);
-    if(!facet_impl->methods)
-    {
-        xml_schema_facet_free(&(facet_impl->facet), env);
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        return NULL;
-    }
-    axis2_hash_set(facet_impl->methods, "free", AXIS2_HASH_KEY_STRING, 
-            xml_schema_facet_free);
-    axis2_hash_set(facet_impl->methods, "is_fixed", 
-            AXIS2_HASH_KEY_STRING, xml_schema_facet_is_fixed);
-    axis2_hash_set(facet_impl->methods, "set_fixed", 
-            AXIS2_HASH_KEY_STRING, xml_schema_facet_set_fixed);
-    axis2_hash_set(facet_impl->methods, "get_value", 
-            AXIS2_HASH_KEY_STRING, xml_schema_facet_get_value);
-    axis2_hash_set(facet_impl->methods, "set_value", 
-            AXIS2_HASH_KEY_STRING, xml_schema_facet_set_value);
-
-    axis2_hash_set(facet_impl->methods, "get_type", 
-            AXIS2_HASH_KEY_STRING, xml_schema_facet_get_type);
-    axis2_hash_set(facet_impl->methods, "super_objs",
-            AXIS2_HASH_KEY_STRING, xml_schema_facet_super_objs);
-            
 
     facet_impl->annotated = xml_schema_annotated_create(env);
     if(!facet_impl->annotated)
@@ -182,18 +157,20 @@
         xml_schema_facet_free(&(facet_impl->facet), env);
         return NULL;
     }
-    axis2_hash_set(facet_impl->ht_super, "XML_SCHEMA_FACET",
+    axis2_hash_set(facet_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_FACET", env),
             AXIS2_HASH_KEY_STRING, &(facet_impl->facet));
-    axis2_hash_set(facet_impl->ht_super, "XML_SCHEMA_ANNOTATED",
+    axis2_hash_set(facet_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_ANNOTATED", env),
             AXIS2_HASH_KEY_STRING, facet_impl->annotated);
-    axis2_hash_set(facet_impl->ht_super, "XML_SCHEMA_OBJ",
+    axis2_hash_set(facet_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_OBJ", env),
             AXIS2_HASH_KEY_STRING, 
             XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(
                 facet_impl->annotated, env));
             
     status = xml_schema_annotated_resolve_methods(
             &(facet_impl->facet.base), env, facet_impl->annotated, 
-            facet_impl->methods);
+            xml_schema_facet_super_objs,
+            xml_schema_facet_get_type,
+            xml_schema_facet_free);
     
     return &(facet_impl->facet);
 }
@@ -206,11 +183,7 @@
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     facet_impl = AXIS2_INTF_TO_IMPL(facet);
-    if(NULL != facet_impl->methods)
-    {
-        axis2_hash_free(facet_impl->methods, env);
-        facet_impl->methods = NULL;
-    }
+ 
     if(NULL != facet_impl->annotated)
     {
         XML_SCHEMA_ANNOTATED_FREE(facet_impl->annotated, env);

Modified: webservices/axis2/trunk/c/xml_schema/src/xml_schema_form.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/src/xml_schema_form.c?rev=429593&r1=429592&r2=429593&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/src/xml_schema_form.c (original)
+++ webservices/axis2/trunk/c/xml_schema/src/xml_schema_form.c Mon Aug  7 22:57:49 2006
@@ -33,8 +33,7 @@
     
     axis2_hash_t *ht_super;
     
-    axis2_hash_t *methods;
-    
+
     axis2_array_list_t *members;
 };
 
@@ -91,7 +90,7 @@
     form_impl->schema_enum = NULL;
     form_impl->obj_type = XML_SCHEMA_FORM;
     form_impl->ht_super = NULL;
-    form_impl->methods = NULL;
+  
     form_impl->members = NULL;
     form_impl->form.ops = AXIS2_MALLOC(env->allocator, 
                     sizeof(xml_schema_form_ops_t));
@@ -135,27 +134,6 @@
     AXIS2_ARRAY_LIST_ADD(form_impl->members, env, 
         AXIS2_STRDUP(XML_SCHEMA_FORM_NONE, env));
 
-    form_impl->methods = axis2_hash_make(env);
-    if(!form_impl->methods)
-    {
-        xml_schema_form_free(&(form_impl->form), env);
-        AXIS2_ERROR_SET(env->error, 
-            AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        return NULL;
-    }
-
-    axis2_hash_set(form_impl->methods, "free", 
-        AXIS2_HASH_KEY_STRING, xml_schema_form_free);
-        
-    axis2_hash_set(form_impl->methods, "super_objs", 
-        AXIS2_HASH_KEY_STRING, xml_schema_form_super_objs);
-        
-    axis2_hash_set(form_impl->methods, "get_type", 
-        AXIS2_HASH_KEY_STRING, xml_schema_form_get_type);
-        
-    axis2_hash_set(form_impl->methods, "get_values", 
-        AXIS2_HASH_KEY_STRING, xml_schema_form_get_values);
-
     form_impl->schema_enum = xml_schema_enum_create(env, value);
     if(!form_impl->schema_enum)
     {
@@ -175,15 +153,17 @@
         return NULL;
     }
 
-    axis2_hash_set(form_impl->ht_super, "XML_SCHEMA_FORM",
+    axis2_hash_set(form_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_FORM", env),
         AXIS2_HASH_KEY_STRING, &(form_impl->form));
         
-    axis2_hash_set(form_impl->ht_super, "XML_SCHEMA_ENUM",
+    axis2_hash_set(form_impl->ht_super,AXIS2_STRDUP("XML_SCHEMA_ENUM", env),
         AXIS2_HASH_KEY_STRING, form_impl->schema_enum);
         
     status = xml_schema_enum_resolve_methods(
             &(form_impl->form.base), env, form_impl->schema_enum, 
-            form_impl->methods); 
+            xml_schema_form_super_objs,
+            xml_schema_form_get_type,
+            xml_schema_form_free); 
 
     return &(form_impl->form);
 }
@@ -221,12 +201,7 @@
         axis2_hash_free(form_impl->ht_super, env);
         form_impl->ht_super = NULL;
     }
-   
-    if(form_impl->methods)
-    {
-        axis2_hash_free(form_impl->methods, env);
-        form_impl->methods = NULL;
-    }
+ 
 
     if(form_impl->schema_enum)
     {

Modified: webservices/axis2/trunk/c/xml_schema/src/xml_schema_group.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/src/xml_schema_group.c?rev=429593&r1=429592&r2=429593&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/src/xml_schema_group.c (original)
+++ webservices/axis2/trunk/c/xml_schema/src/xml_schema_group.c Mon Aug  7 22:57:49 2006
@@ -30,7 +30,6 @@
     xml_schema_annotated_t *annotated;
     xml_schema_types_t obj_type;
     axis2_hash_t *ht_super;
-    axis2_hash_t *methods;
     axis2_char_t *name;
     xml_schema_group_base_t *particle;
 };
@@ -91,7 +90,6 @@
     group_impl->annotated = NULL;
     group_impl->obj_type = XML_SCHEMA_GROUP;
     group_impl->ht_super = NULL;
-    group_impl->methods = NULL;
     group_impl->name = NULL;
     group_impl->particle = NULL;
     group_impl->group.base.ops = NULL;
@@ -124,28 +122,6 @@
     group_impl->group.ops->set_particle = 
             xml_schema_group_set_particle;
    
-    group_impl->methods = axis2_hash_make(env);
-    if(!group_impl->methods)
-    {
-        xml_schema_group_free(&(group_impl->group), env);
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        return NULL;
-    }
-    axis2_hash_set(group_impl->methods, "free", AXIS2_HASH_KEY_STRING, 
-            xml_schema_group_free);
-    axis2_hash_set(group_impl->methods, "super_objs", AXIS2_HASH_KEY_STRING, 
-            xml_schema_group_super_objs);
-    axis2_hash_set(group_impl->methods, "get_type", AXIS2_HASH_KEY_STRING, 
-            xml_schema_group_get_type);
-    axis2_hash_set(group_impl->methods, "get_name", 
-            AXIS2_HASH_KEY_STRING, xml_schema_group_get_name);
-    axis2_hash_set(group_impl->methods, "set_name", 
-            AXIS2_HASH_KEY_STRING, xml_schema_group_set_name);
-    axis2_hash_set(group_impl->methods, "get_particle", 
-            AXIS2_HASH_KEY_STRING, xml_schema_group_get_particle);
-    axis2_hash_set(group_impl->methods, "set_particle", 
-            AXIS2_HASH_KEY_STRING, xml_schema_group_set_particle);
-    
     group_impl->annotated = xml_schema_annotated_create(env);
     if(!group_impl->annotated)
     {
@@ -159,17 +135,19 @@
         AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
     }
-    axis2_hash_set(group_impl->ht_super, "XML_SCHEMA_GROUP", AXIS2_HASH_KEY_STRING, 
+    axis2_hash_set(group_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_GROUP", env), AXIS2_HASH_KEY_STRING, 
             &(group_impl->group));
-    axis2_hash_set(group_impl->ht_super, "XML_SCHEMA_ANNOTATED", AXIS2_HASH_KEY_STRING, 
+    axis2_hash_set(group_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_ANNOTATED", env), AXIS2_HASH_KEY_STRING, 
             group_impl->annotated);
-    axis2_hash_set(group_impl->ht_super, "XML_SCHEMA_OBJ", AXIS2_HASH_KEY_STRING, 
+    axis2_hash_set(group_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_OBJ", env), AXIS2_HASH_KEY_STRING, 
             XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(group_impl->annotated, env));
                 
 
     status = xml_schema_annotated_resolve_methods(
             &(group_impl->group.base), env, group_impl->annotated, 
-            group_impl->methods);
+            xml_schema_group_super_objs,
+            xml_schema_group_get_type,
+            xml_schema_group_free);
     return &(group_impl->group);
 }
 
@@ -200,12 +178,7 @@
         group_impl->ht_super = NULL;
     }
     
-    if(NULL != group_impl->methods)
-    {
-        axis2_hash_free(group_impl->methods, env);
-        group_impl->methods = NULL;
-    }
-
+   
     if(NULL != group_impl->annotated)
     {
         XML_SCHEMA_ANNOTATED_FREE(group_impl->annotated, env);

Modified: webservices/axis2/trunk/c/xml_schema/src/xml_schema_group_base.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/src/xml_schema_group_base.c?rev=429593&r1=429592&r2=429593&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/src/xml_schema_group_base.c (original)
+++ webservices/axis2/trunk/c/xml_schema/src/xml_schema_group_base.c Mon Aug  7 22:57:49 2006
@@ -21,7 +21,7 @@
                 xml_schema_group_base_impl_t;
 
 /** 
- * @brief Other Extension Struct Impl
+ * @brief group base Struct Impl
  *   Axis2 Other Extension  
  */ 
 struct xml_schema_group_base_impl
@@ -34,8 +34,6 @@
     
     axis2_hash_t *ht_super;
     
-    axis2_hash_t *methods;
-    
     xml_schema_obj_collection_t *items;
 };
 
@@ -92,7 +90,6 @@
     group_base_impl->particle = NULL;
     group_base_impl->obj_type = XML_SCHEMA_GROUP_BASE;
     group_base_impl->ht_super = NULL;
-    group_base_impl->methods = NULL;
     group_base_impl->items = NULL;
     group_base_impl->group_base.ops = NULL;
     group_base_impl->group_base.base.ops = NULL;
@@ -124,33 +121,6 @@
     group_base_impl->group_base.ops->to_string =
         xml_schema_group_base_to_string;        
         
-    group_base_impl->methods = axis2_hash_make(env);
-    if(!group_base_impl->methods)
-    {
-        xml_schema_group_base_free(&(group_base_impl->group_base), env);
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        return NULL;
-    }
-    axis2_hash_set(group_base_impl->methods, "free", 
-            AXIS2_HASH_KEY_STRING, 
-            xml_schema_group_base_free);
-            
-    axis2_hash_set(group_base_impl->methods, "get_type", 
-            AXIS2_HASH_KEY_STRING, 
-            xml_schema_group_base_get_type);
-            
-    axis2_hash_set(group_base_impl->methods, "super_objs", 
-            AXIS2_HASH_KEY_STRING, 
-            xml_schema_group_base_super_objs);
-            
-    axis2_hash_set(group_base_impl->methods, "get_items", 
-            AXIS2_HASH_KEY_STRING, 
-            xml_schema_group_base_get_items);
-            
-    axis2_hash_set(group_base_impl->methods, "to_string", 
-            AXIS2_HASH_KEY_STRING,
-            xml_schema_group_base_to_string);            
-    
     group_base_impl->particle = xml_schema_particle_create(env);
     if(!group_base_impl->particle)
     {
@@ -166,18 +136,18 @@
         AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
     }
-    axis2_hash_set(group_base_impl->ht_super, "XML_SCHEMA_GROUP_BASE", 
+    axis2_hash_set(group_base_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_GROUP_BASE", env), 
             AXIS2_HASH_KEY_STRING, &(group_base_impl->group_base) );
     
-    axis2_hash_set(group_base_impl->ht_super, "XML_SCHEMA_PARTICLE", 
+    axis2_hash_set(group_base_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_PARTICLE", env), 
             AXIS2_HASH_KEY_STRING, group_base_impl->particle );
             
     annotated = XML_SCHEMA_PARTICLE_GET_BASE_IMPL(group_base_impl->particle, env);
     if(NULL != annotated)
     {
-        axis2_hash_set(group_base_impl->ht_super, "XML_SCHEMA_ANNOTATED",
+        axis2_hash_set(group_base_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_ANNOTATED", env),
             AXIS2_HASH_KEY_STRING, annotated);
-        axis2_hash_set(group_base_impl->ht_super, "XML_SCHEMA_OBJ",
+        axis2_hash_set(group_base_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_OBJ", env),
             AXIS2_HASH_KEY_STRING, XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(annotated, env));    
     }        
     
@@ -185,7 +155,9 @@
  
     status = xml_schema_particle_resolve_methods(
             &(group_base_impl->group_base.base), env, group_base_impl->particle, 
-            group_base_impl->methods); 
+            xml_schema_group_base_super_objs,
+            xml_schema_group_base_get_type,
+            xml_schema_group_base_free); 
     return &(group_base_impl->group_base);
 }
 
@@ -239,12 +211,6 @@
         group_base_impl->ht_super = NULL;
     }
  
-    if(NULL != group_base_impl->methods)
-    {
-        axis2_hash_free(group_base_impl->methods, env);
-        group_base_impl->methods = NULL;
-    }
-   
     if(NULL != group_base_impl->particle)
     {
         XML_SCHEMA_PARTICLE_FREE(group_base_impl->particle, env);

Modified: webservices/axis2/trunk/c/xml_schema/src/xml_schema_group_ref.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/src/xml_schema_group_ref.c?rev=429593&r1=429592&r2=429593&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/src/xml_schema_group_ref.c (original)
+++ webservices/axis2/trunk/c/xml_schema/src/xml_schema_group_ref.c Mon Aug  7 22:57:49 2006
@@ -35,8 +35,6 @@
     
     axis2_hash_t *ht_super;
     
-    axis2_hash_t *methods;
-    
     axis2_qname_t *ref_qname;
     
     void *particle;
@@ -107,7 +105,6 @@
     group_ref_impl->base = NULL;
     group_ref_impl->obj_type = XML_SCHEMA_GROUP_REF;
     group_ref_impl->ht_super = NULL;
-    group_ref_impl->methods = NULL;
     group_ref_impl->ref_qname = NULL;
     group_ref_impl->particle = NULL;
     group_ref_impl->group_ref.ops = NULL;
@@ -144,26 +141,6 @@
     group_ref_impl->group_ref.ops->set_particle =
             xml_schema_group_ref_set_particle;            
    
-    group_ref_impl->methods = axis2_hash_make(env);
-    if(!group_ref_impl->methods)
-    {
-        xml_schema_group_ref_free(&(group_ref_impl->group_ref), env);
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        return NULL;
-    }
-    axis2_hash_set(group_ref_impl->methods, "free", AXIS2_HASH_KEY_STRING, 
-            xml_schema_group_ref_free);
-    axis2_hash_set(group_ref_impl->methods, "super_objs", AXIS2_HASH_KEY_STRING, 
-            xml_schema_group_ref_super_objs);
-    axis2_hash_set(group_ref_impl->methods, "get_type", AXIS2_HASH_KEY_STRING, 
-            xml_schema_group_ref_get_type);
-    axis2_hash_set(group_ref_impl->methods, "get_ref_qname", 
-            AXIS2_HASH_KEY_STRING, xml_schema_group_ref_get_ref_qname);
-    axis2_hash_set(group_ref_impl->methods, "set_ref_qname", 
-            AXIS2_HASH_KEY_STRING, xml_schema_group_ref_set_ref_qname);
-    axis2_hash_set(group_ref_impl->methods, "get_particle", 
-            AXIS2_HASH_KEY_STRING, xml_schema_group_ref_get_particle);
-    
     group_ref_impl->base = xml_schema_particle_create(env);
      if(!group_ref_impl->base)
     {
@@ -178,23 +155,27 @@
         return NULL;
     }
 
-    axis2_hash_set(group_ref_impl->ht_super, "XML_SCHEMA_GROUP_REF", 
+    axis2_hash_set(group_ref_impl->ht_super, 
+            AXIS2_STRDUP("XML_SCHEMA_GROUP_REF", env), 
             AXIS2_HASH_KEY_STRING, &(group_ref_impl->group_ref) );
-    axis2_hash_set(group_ref_impl->ht_super, "XML_SCHEMA_PARTICLE", 
+    
+    axis2_hash_set(group_ref_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_PARTICLE", env), 
             AXIS2_HASH_KEY_STRING, group_ref_impl->particle );
     
     annotated = XML_SCHEMA_PARTICLE_GET_BASE_IMPL(group_ref_impl->particle, env);
     if(NULL != annotated)
     {
-        axis2_hash_set(group_ref_impl->ht_super, "XML_SCHEMA_ANNOTATED",
+        axis2_hash_set(group_ref_impl->ht_super, AXIS2_STRDUP ("XML_SCHEMA_ANNOTATED", env),
             AXIS2_HASH_KEY_STRING, annotated);
-        axis2_hash_set(group_ref_impl->ht_super, "XML_SCHEMA_OBJ",
+        axis2_hash_set(group_ref_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_OBJ", env),
             AXIS2_HASH_KEY_STRING, XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(annotated, env));            
     }
  
     status = xml_schema_particle_resolve_methods(
             &(group_ref_impl->group_ref.base), env, group_ref_impl->base, 
-            group_ref_impl->methods);
+            xml_schema_group_ref_super_objs,
+            xml_schema_group_ref_get_type,
+            xml_schema_group_ref_free);
     
     return &(group_ref_impl->group_ref);
 }
@@ -226,12 +207,6 @@
         group_ref_impl->ht_super = NULL;
     }
     
-    if(NULL != group_ref_impl->methods)
-    {
-        axis2_hash_free(group_ref_impl->methods, env);
-        group_ref_impl->methods = NULL;
-    }
-
     if(NULL != group_ref_impl->base)
     {
         XML_SCHEMA_PARTICLE_FREE(group_ref_impl->base, env);

Modified: webservices/axis2/trunk/c/xml_schema/src/xml_schema_identity_constraint.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/src/xml_schema_identity_constraint.c?rev=429593&r1=429592&r2=429593&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/src/xml_schema_identity_constraint.c (original)
+++ webservices/axis2/trunk/c/xml_schema/src/xml_schema_identity_constraint.c Mon Aug  7 22:57:49 2006
@@ -36,7 +36,6 @@
     /** keyref field */
     axis2_qname_t *refer;
     
-    axis2_hash_t *methods;
     axis2_hash_t *ht_super;
     xml_schema_types_t obj_type;
 };
@@ -107,7 +106,6 @@
     }                    
 
     id_cns_impl->annotated = NULL;
-    id_cns_impl->methods = NULL;
     id_cns_impl->fields = NULL;
     id_cns_impl->name = NULL;
     id_cns_impl->selector = NULL;
@@ -149,35 +147,14 @@
     id_cns_impl->id_constr.ops->set_selector = 
             xml_schema_identity_constraint_set_selector;
    
-    id_cns_impl->methods = axis2_hash_make(env);
     id_cns_impl->ht_super = axis2_hash_make(env);
     
-    if(!id_cns_impl->methods || !id_cns_impl->ht_super)
+    if(!id_cns_impl->ht_super)
     {
         xml_schema_identity_constraint_free(&(id_cns_impl->id_constr), env);
         AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
     }
-    axis2_hash_set(id_cns_impl->methods, "free", AXIS2_HASH_KEY_STRING, 
-            xml_schema_identity_constraint_free);
-    axis2_hash_set(id_cns_impl->methods, "get_fields", 
-            AXIS2_HASH_KEY_STRING, xml_schema_identity_constraint_get_fields);
-    axis2_hash_set(id_cns_impl->methods, "get_type", 
-            AXIS2_HASH_KEY_STRING, xml_schema_identity_constraint_get_type);
-    axis2_hash_set(id_cns_impl->methods, "super_objs", 
-            AXIS2_HASH_KEY_STRING, xml_schema_identity_constraint_super_objs);
-    axis2_hash_set(id_cns_impl->methods, "get_refer", 
-            AXIS2_HASH_KEY_STRING, xml_schema_identity_constraint_get_refer);
-    axis2_hash_set(id_cns_impl->methods, "set_refer", 
-            AXIS2_HASH_KEY_STRING, xml_schema_identity_constraint_set_refer);
-    axis2_hash_set(id_cns_impl->methods, "get_name", 
-            AXIS2_HASH_KEY_STRING, xml_schema_identity_constraint_get_name);
-    axis2_hash_set(id_cns_impl->methods, "set_name", 
-            AXIS2_HASH_KEY_STRING, xml_schema_identity_constraint_set_name);
-    axis2_hash_set(id_cns_impl->methods, "get_selector", 
-            AXIS2_HASH_KEY_STRING, xml_schema_identity_constraint_get_selector);
-    axis2_hash_set(id_cns_impl->methods, "set_selector", 
-            AXIS2_HASH_KEY_STRING, xml_schema_identity_constraint_set_selector);
     
     id_cns_impl->annotated = xml_schema_annotated_create(env);
     if(!id_cns_impl->annotated)
@@ -186,17 +163,19 @@
         return NULL;
     }
     
-    axis2_hash_set(id_cns_impl->ht_super, "XML_SCHEMA_IDENTITY_CONSTRAINT", 
+    axis2_hash_set(id_cns_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_IDENTITY_CONSTRAINT", env), 
             AXIS2_HASH_KEY_STRING, &(id_cns_impl->id_constr));
-    axis2_hash_set(id_cns_impl->ht_super, "XML_SCHEMA_ANNOTATED", 
+    axis2_hash_set(id_cns_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_ANNOTATED", env), 
             AXIS2_HASH_KEY_STRING, id_cns_impl->annotated);
-    axis2_hash_set(id_cns_impl->ht_super, "XML_SCHEMA_OBJ", 
+    axis2_hash_set(id_cns_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_OBJ", env), 
             AXIS2_HASH_KEY_STRING, 
             XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(id_cns_impl->annotated, env));                 
     status = xml_schema_annotated_resolve_methods(
             &(id_cns_impl->id_constr.base), 
             env, id_cns_impl->annotated, 
-            id_cns_impl->methods);
+            xml_schema_identity_constraint_super_objs,
+            xml_schema_identity_constraint_get_type,
+            xml_schema_identity_constraint_free);
     return &(id_cns_impl->id_constr);
 }
 
@@ -258,11 +237,6 @@
         id_cns_impl->selector = NULL;
     }
     
-    if(NULL != id_cns_impl->methods)
-    {
-        axis2_hash_free(id_cns_impl->methods, env);
-        id_cns_impl->methods = NULL;
-    }
     if(NULL != id_cns_impl->ht_super)
     {
         axis2_hash_free(id_cns_impl->ht_super, env);

Modified: webservices/axis2/trunk/c/xml_schema/src/xml_schema_import.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/src/xml_schema_import.c?rev=429593&r1=429592&r2=429593&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/src/xml_schema_import.c (original)
+++ webservices/axis2/trunk/c/xml_schema/src/xml_schema_import.c Mon Aug  7 22:57:49 2006
@@ -32,8 +32,6 @@
     
     xml_schema_types_t obj_type;
         
-    axis2_hash_t *methods;
-
 }xml_schema_import_impl_t;
 
 #define AXIS2_INTF_TO_IMPL(import) \
@@ -83,7 +81,6 @@
     }
     import_impl->ns = NULL;
     import_impl->external = NULL;
-    import_impl->methods = NULL;
     import_impl->import.ops = NULL;
     import_impl->import.base.ops = NULL;
     import_impl->ht_super = NULL;
@@ -112,25 +109,14 @@
     import_impl->import.ops->set_namespace = 
             xml_schema_import_set_namespace;
 
-    import_impl->methods = axis2_hash_make(env);
     import_impl->ht_super = axis2_hash_make(env);
-    if(!import_impl->methods || !import_impl->ht_super)
+    if(!import_impl->ht_super)
     {
         xml_schema_import_free(&(import_impl->import), env);
         AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
     }
 
-    axis2_hash_set(import_impl->methods, "free", AXIS2_HASH_KEY_STRING, 
-            xml_schema_import_free);
-    axis2_hash_set(import_impl->methods, "get_type", 
-            AXIS2_HASH_KEY_STRING, xml_schema_import_get_type);
-    axis2_hash_set(import_impl->methods, "super_objs", 
-            AXIS2_HASH_KEY_STRING, xml_schema_import_super_objs);
-    axis2_hash_set(import_impl->methods, "get_namespace", 
-            AXIS2_HASH_KEY_STRING, xml_schema_import_get_namespace);
-    axis2_hash_set(import_impl->methods, "set_namespace", 
-            AXIS2_HASH_KEY_STRING, xml_schema_import_set_namespace);
 
     import_impl->external = xml_schema_external_create(env);
      if(!import_impl->external)
@@ -139,25 +125,27 @@
         return NULL;
     }
     
-    axis2_hash_set(import_impl->ht_super, "XML_SCHEMA_IMPORT", 
+    axis2_hash_set(import_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_IMPORT", env), 
             AXIS2_HASH_KEY_STRING, &(import_impl->import));
-    axis2_hash_set(import_impl->ht_super, "XML_SCHEMA_EXTERNAL", 
+    axis2_hash_set(import_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_EXTERNAL", env), 
             AXIS2_HASH_KEY_STRING, import_impl->external);
 
     annotated = XML_SCHEMA_EXTERNAL_GET_BASE_IMPL(import_impl->external, env);
     if(NULL != annotated)
     { 
         
-        axis2_hash_set(import_impl->ht_super, "XML_SCHEMA_ANNOTATED", 
+        axis2_hash_set(import_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_ANNOTATED", env), 
             AXIS2_HASH_KEY_STRING, annotated);
-        axis2_hash_set(import_impl->ht_super, "XML_SCHEMA_OBJ", 
+        axis2_hash_set(import_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_OBJ", env), 
             AXIS2_HASH_KEY_STRING, 
             XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(annotated, env));
     }
     
     status = xml_schema_external_resolve_methods(
             &(import_impl->import.base), env, import_impl->external, 
-            import_impl->methods);
+            xml_schema_import_super_objs,
+            xml_schema_import_get_type,
+            xml_schema_import_free);
     return &(import_impl->import);
 }
 
@@ -170,11 +158,6 @@
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     import_impl = AXIS2_INTF_TO_IMPL(import);
 
-    if(NULL != import_impl->methods)
-    {
-        axis2_hash_free(import_impl->methods, env);
-        import_impl->methods = NULL;
-    }
     if(NULL != import_impl->ht_super)
     {
         axis2_hash_free(import_impl->ht_super, env);

Modified: webservices/axis2/trunk/c/xml_schema/src/xml_schema_obj.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/src/xml_schema_obj.c?rev=429593&r1=429592&r2=429593&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/src/xml_schema_obj.c (original)
+++ webservices/axis2/trunk/c/xml_schema/src/xml_schema_obj.c Mon Aug  7 22:57:49 2006
@@ -225,13 +225,14 @@
         xml_schema_obj_t *obj,
         const axis2_env_t *env,
         xml_schema_obj_t *obj_impl,
-        axis2_hash_t *methods)
+        XML_SCHEMA_SUPER_OBJS_FN super_objs,
+        XML_SCHEMA_GET_TYPE_FN get_type,
+        XML_SCHEMA_FREE_FN free_fn)
 {    
     xml_schema_obj_impl_t *obj_impl_l = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, obj_impl, AXIS2_FAILURE);
-    AXIS2_PARAM_CHECK(env->error, methods, AXIS2_FAILURE);
     
     obj_impl_l = (xml_schema_obj_impl_t *) obj_impl;
     
@@ -243,14 +244,11 @@
         return AXIS2_FAILURE;
     }            
             
-    obj->ops->free = axis2_hash_get(methods, "free", 
-            AXIS2_HASH_KEY_STRING);
+    obj->ops->free = free_fn;
             
-    obj->ops->super_objs = axis2_hash_get(methods, "super_objs", 
-            AXIS2_HASH_KEY_STRING);
+    obj->ops->super_objs = super_objs;
             
-    obj->ops->get_type = axis2_hash_get(methods, "get_type", 
-            AXIS2_HASH_KEY_STRING);
+    obj->ops->get_type = get_type;
 
     obj->ops->get_line_num = 
             obj_impl_l->obj.ops->get_line_num;

Modified: webservices/axis2/trunk/c/xml_schema/src/xml_schema_obj_table.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/src/xml_schema_obj_table.c?rev=429593&r1=429592&r2=429593&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/src/xml_schema_obj_table.c (original)
+++ webservices/axis2/trunk/c/xml_schema/src/xml_schema_obj_table.c Mon Aug  7 22:57:49 2006
@@ -21,8 +21,7 @@
                 xml_schema_obj_table_impl_t;
 
 /** 
- * @brief Xml Schema Obj Struct Impl
- *   Axis2 Xml Schema Obj  
+ * @brief xml_schema_obj_table_impl
  */ 
 struct xml_schema_obj_table_impl
 {
@@ -140,6 +139,8 @@
             xml_schema_obj_table_contains;
     obj_table_impl->obj_table.ops->add = 
             xml_schema_obj_table_add;
+    obj_table_impl->obj_table.ops->get_hash_table =
+            xml_schema_obj_table_get_hash_table;            
 
     return &(obj_table_impl->obj_table);
 }

Modified: webservices/axis2/trunk/c/xml_schema/src/xml_schema_particle.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/src/xml_schema_particle.c?rev=429593&r1=429592&r2=429593&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/src/xml_schema_particle.c (original)
+++ webservices/axis2/trunk/c/xml_schema/src/xml_schema_particle.c Mon Aug  7 22:57:49 2006
@@ -34,8 +34,6 @@
     
     axis2_hash_t *ht_super;
     
-    axis2_hash_t *methods;
-    
     long max_occurs;
     
     axis2_char_t *max_occurs_string;
@@ -110,7 +108,6 @@
     particle_impl->ht_super = NULL;
     particle_impl->particle.ops = NULL;
     particle_impl->particle.base.ops = NULL;
-    particle_impl->methods = NULL;
     particle_impl->max_occurs_string = NULL;
     particle_impl->min_occurs_string = NULL;
     
@@ -149,28 +146,6 @@
     particle_impl->particle.ops->set_min_occurs = 
             xml_schema_particle_set_min_occurs;
    
-    particle_impl->methods = axis2_hash_make(env);
-    if(!particle_impl->methods)
-    {
-        xml_schema_particle_free(&(particle_impl->particle), env);
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        return NULL;
-    }
-    axis2_hash_set(particle_impl->methods, "free", AXIS2_HASH_KEY_STRING, 
-            xml_schema_particle_free);
-    axis2_hash_set(particle_impl->methods, "super_objs", AXIS2_HASH_KEY_STRING, 
-            xml_schema_particle_super_objs);
-    axis2_hash_set(particle_impl->methods, "get_type", AXIS2_HASH_KEY_STRING, 
-            xml_schema_particle_get_type);
-    axis2_hash_set(particle_impl->methods, "get_max_occurs", 
-            AXIS2_HASH_KEY_STRING, xml_schema_particle_get_max_occurs);
-    axis2_hash_set(particle_impl->methods, "set_max_occurs", 
-            AXIS2_HASH_KEY_STRING, xml_schema_particle_set_max_occurs);
-    axis2_hash_set(particle_impl->methods, "get_min_occurs", 
-            AXIS2_HASH_KEY_STRING, xml_schema_particle_get_min_occurs);
-    axis2_hash_set(particle_impl->methods, "set_min_occurs", 
-            AXIS2_HASH_KEY_STRING, xml_schema_particle_set_min_occurs);
-    
     particle_impl->annotated = xml_schema_annotated_create(env);
     if(!particle_impl->annotated)
     {
@@ -185,17 +160,19 @@
         AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
     }
-    axis2_hash_set(particle_impl->ht_super, "XML_SCHEMA_PARTICLE", AXIS2_HASH_KEY_STRING, 
+    axis2_hash_set(particle_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_PARTICLE", env), AXIS2_HASH_KEY_STRING, 
             &(particle_impl->particle));
-    axis2_hash_set(particle_impl->ht_super, "XML_SCHEMA_ANNOTATED", AXIS2_HASH_KEY_STRING, 
+    axis2_hash_set(particle_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_ANNOTATED", env), AXIS2_HASH_KEY_STRING, 
             particle_impl->annotated);
             
-    axis2_hash_set(particle_impl->ht_super, "XML_SCHEMA_OBJ", AXIS2_HASH_KEY_STRING,
+    axis2_hash_set(particle_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_OBJ", env), AXIS2_HASH_KEY_STRING,
             XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(particle_impl->annotated, env));           
             
     status = xml_schema_annotated_resolve_methods(
             &(particle_impl->particle.base), env, particle_impl->annotated, 
-            particle_impl->methods);
+            xml_schema_particle_super_objs,
+            xml_schema_particle_get_type,
+            xml_schema_particle_free);
     
     return &(particle_impl->particle);
 }
@@ -215,11 +192,7 @@
         particle_impl->ht_super = NULL;
     }
     
-    if(NULL != particle_impl->methods)
-    {
-        axis2_hash_free(particle_impl->methods, env);
-        particle_impl->methods = NULL;
-    }
+   
 
     if(NULL != particle_impl->annotated)
     {
@@ -281,13 +254,14 @@
                                 xml_schema_particle_t *particle,
                                 const axis2_env_t *env,
                                 xml_schema_particle_t *particle_impl,
-                                axis2_hash_t *methods)
+                                XML_SCHEMA_SUPER_OBJS_FN super_objs,
+                                XML_SCHEMA_GET_TYPE_FN get_type,
+                                XML_SCHEMA_FREE_FN free_fn)
 {
     xml_schema_particle_impl_t *sch_particle_impl = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, particle_impl, AXIS2_FAILURE);
-    AXIS2_PARAM_CHECK(env->error, methods, AXIS2_FAILURE);
     
     sch_particle_impl = (xml_schema_particle_impl_t *) particle_impl;
     
@@ -299,39 +273,25 @@
         return AXIS2_FAILURE;
     }            
     
-    particle->ops->free = axis2_hash_get(methods, "free", 
-            AXIS2_HASH_KEY_STRING);
-    particle->ops->super_objs = axis2_hash_get(methods, "super_objs", 
-            AXIS2_HASH_KEY_STRING);
-    particle->ops->get_type = axis2_hash_get(methods, "get_type", 
-            AXIS2_HASH_KEY_STRING);
-
-    particle->ops->get_max_occurs = axis2_hash_get(methods, "get_max_occurs", 
-            AXIS2_HASH_KEY_STRING);
-    if(!particle->ops->get_max_occurs)
-            particle->ops->get_max_occurs = 
-            sch_particle_impl->particle.ops->get_max_occurs;
-    
-    particle->ops->set_max_occurs = axis2_hash_get(methods, "set_max_occurs", 
-            AXIS2_HASH_KEY_STRING);
-    if(!particle->ops->set_max_occurs)
-            particle->ops->set_max_occurs = 
-            sch_particle_impl->particle.ops->set_max_occurs;
-    
-    particle->ops->get_min_occurs = axis2_hash_get(methods, "get_min_occurs", 
-            AXIS2_HASH_KEY_STRING);
-    if(!particle->ops->get_min_occurs)
-            particle->ops->get_min_occurs = 
-            sch_particle_impl->particle.ops->get_min_occurs;
-    
-    particle->ops->set_min_occurs = axis2_hash_get(methods, "set_min_occurs", 
-            AXIS2_HASH_KEY_STRING);
-    if(!particle->ops->set_min_occurs)
-            particle->ops->set_min_occurs = 
-            sch_particle_impl->particle.ops->set_min_occurs;
+    particle->ops->free = free_fn;
+    particle->ops->super_objs = super_objs;
+    
+    particle->ops->get_type = get_type;
+
+    particle->ops->get_max_occurs = 
+        sch_particle_impl->particle.ops->get_max_occurs;
+    
+    particle->ops->set_max_occurs = 
+        sch_particle_impl->particle.ops->set_max_occurs;
+    
+    particle->ops->get_min_occurs = 
+        sch_particle_impl->particle.ops->get_min_occurs;
+    
+    particle->ops->set_min_occurs = 
+        sch_particle_impl->particle.ops->set_min_occurs;
     
     return xml_schema_annotated_resolve_methods(&(particle->base), 
-            env, sch_particle_impl->annotated, methods);
+            env, sch_particle_impl->annotated, super_objs, get_type, free_fn);
 }
 
 long AXIS2_CALL

Modified: webservices/axis2/trunk/c/xml_schema/src/xml_schema_redefine.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/src/xml_schema_redefine.c?rev=429593&r1=429592&r2=429593&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/src/xml_schema_redefine.c (original)
+++ webservices/axis2/trunk/c/xml_schema/src/xml_schema_redefine.c Mon Aug  7 22:57:49 2006
@@ -34,8 +34,6 @@
     
     xml_schema_obj_table_t *schema_types;
         
-    axis2_hash_t *methods;
-    
     axis2_hash_t *ht_super;
     
     xml_schema_types_t obj_type;
@@ -104,7 +102,6 @@
         return NULL;
     }
     redefine_impl->external = NULL;
-    redefine_impl->methods = NULL;
     redefine_impl->redefine.ops = NULL;
     redefine_impl->redefine.base.ops = NULL;
     redefine_impl->attr_groups = NULL;
@@ -143,26 +140,14 @@
     redefine_impl->redefine.ops->get_schema_types =
         xml_schema_redefine_get_schema_types;                            
 
-    redefine_impl->methods = axis2_hash_make(env);
     redefine_impl->ht_super = axis2_hash_make(env);
-    if(!redefine_impl->methods || !redefine_impl->ht_super)
+    if(!redefine_impl->ht_super)
     {
         xml_schema_redefine_free(&(redefine_impl->redefine), env);
         AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
     }
 
-    axis2_hash_set(redefine_impl->methods, "free", AXIS2_HASH_KEY_STRING, 
-            xml_schema_redefine_free);
-    axis2_hash_set(redefine_impl->methods, "get_type", AXIS2_HASH_KEY_STRING, 
-            xml_schema_redefine_get_type);
-    axis2_hash_set(redefine_impl->methods, "super_objs", AXIS2_HASH_KEY_STRING, 
-            xml_schema_redefine_super_objs);
-    axis2_hash_set(redefine_impl->methods, "get_items", 
-            AXIS2_HASH_KEY_STRING, xml_schema_redefine_get_items);
-    axis2_hash_set(redefine_impl->methods, "get_group", 
-            AXIS2_HASH_KEY_STRING, xml_schema_redefine_get_group);
-
     redefine_impl->external = xml_schema_external_create(env);
      if(!redefine_impl->external)
     {
@@ -171,9 +156,9 @@
     }
     
     
-    axis2_hash_set(redefine_impl->ht_super, "XML_SCHEMA_REDEFINE", 
+    axis2_hash_set(redefine_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_REDEFINE", env), 
             AXIS2_HASH_KEY_STRING, &(redefine_impl->redefine));
-    axis2_hash_set(redefine_impl->ht_super, "XML_SCHEMA_EXTERNAL", 
+    axis2_hash_set(redefine_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_EXTERNAL", env), 
             AXIS2_HASH_KEY_STRING, redefine_impl->external);
             
     annotated = XML_SCHEMA_EXTERNAL_GET_BASE_IMPL(redefine_impl->external, env);
@@ -189,7 +174,9 @@
 
     status = xml_schema_external_resolve_methods(
             &(redefine_impl->redefine.base), env, redefine_impl->external, 
-            redefine_impl->methods);
+            xml_schema_redefine_super_objs,
+            xml_schema_redefine_get_type,
+            xml_schema_redefine_free);
 
     return &(redefine_impl->redefine);
 }
@@ -203,11 +190,7 @@
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     redefine_impl = AXIS2_INTF_TO_IMPL(redefine);
 
-    if(NULL != redefine_impl->methods)
-    {
-        axis2_hash_free(redefine_impl->methods, env);
-        redefine_impl->methods = NULL;
-    }
+   
     if(NULL != redefine_impl->ht_super)
     {
         axis2_hash_free(redefine_impl->ht_super, env);

Modified: webservices/axis2/trunk/c/xml_schema/src/xml_schema_simple_content.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/src/xml_schema_simple_content.c?rev=429593&r1=429592&r2=429593&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/src/xml_schema_simple_content.c (original)
+++ webservices/axis2/trunk/c/xml_schema/src/xml_schema_simple_content.c Mon Aug  7 22:57:49 2006
@@ -29,8 +29,7 @@
     xml_schema_simple_content_t sim_content;
     
     xml_schema_annotated_t *annotated;
-    
-    axis2_hash_t *methods;
+   
     
     void *content;
     
@@ -89,7 +88,6 @@
     }
     
     sim_cnt_impl->annotated = NULL;
-    sim_cnt_impl->methods = NULL;
     sim_cnt_impl->content = NULL;
     sim_cnt_impl->sim_content.base.ops = NULL;
     sim_cnt_impl->sim_content.ops = NULL;
@@ -121,27 +119,6 @@
     sim_cnt_impl->sim_content.ops->to_string = 
             xml_schema_simple_content_to_string;
    
-    sim_cnt_impl->methods = axis2_hash_make(env);
-   
-    if(!sim_cnt_impl->methods)
-    {
-        xml_schema_simple_content_free(&(sim_cnt_impl->sim_content), env);
-        AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
-        return NULL;
-    }
-    axis2_hash_set(sim_cnt_impl->methods, "free", AXIS2_HASH_KEY_STRING, 
-            xml_schema_simple_content_free);
-    axis2_hash_set(sim_cnt_impl->methods, "get_type", AXIS2_HASH_KEY_STRING, 
-            xml_schema_simple_content_get_type);            
-    axis2_hash_set(sim_cnt_impl->methods, "super_objs", AXIS2_HASH_KEY_STRING, 
-            xml_schema_simple_content_super_objs);            
-    axis2_hash_set(sim_cnt_impl->methods, "get_content", 
-            AXIS2_HASH_KEY_STRING, xml_schema_simple_content_get_content);
-    axis2_hash_set(sim_cnt_impl->methods, "set_content", 
-            AXIS2_HASH_KEY_STRING, xml_schema_simple_content_set_content);
-    axis2_hash_set(sim_cnt_impl->methods, "to_string", 
-            AXIS2_HASH_KEY_STRING, xml_schema_simple_content_to_string);
-    
     sim_cnt_impl->ht_super = axis2_hash_make(env);
     if(!sim_cnt_impl->ht_super)
     {
@@ -154,19 +131,21 @@
         xml_schema_simple_content_free(&(sim_cnt_impl->sim_content), env);
         return NULL;
     }
-    axis2_hash_set(sim_cnt_impl->ht_super, "XML_SCHEMA_SIMPLE_CONTENT",
+    axis2_hash_set(sim_cnt_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_SIMPLE_CONTENT", env),
         AXIS2_HASH_KEY_STRING, &(sim_cnt_impl->sim_content));
         
-    axis2_hash_set(sim_cnt_impl->ht_super, "XML_SCHEMA_ANNOTATED",
+    axis2_hash_set(sim_cnt_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_ANNOTATED", env),
         AXIS2_HASH_KEY_STRING, sim_cnt_impl->annotated);
     
-    axis2_hash_set(sim_cnt_impl->ht_super, "XML_SCHEMA_OBJ",
+    axis2_hash_set(sim_cnt_impl->ht_super, AXIS2_STRDUP("XML_SCHEMA_OBJ", env),
         AXIS2_HASH_KEY_STRING, 
         XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(sim_cnt_impl->annotated, env));
     
     status = xml_schema_annotated_resolve_methods(
             &(sim_cnt_impl->sim_content.base), env, sim_cnt_impl->annotated, 
-            sim_cnt_impl->methods);
+            xml_schema_simple_content_super_objs,
+            xml_schema_simple_content_get_type,
+            xml_schema_simple_content_free);
     
     return &(sim_cnt_impl->sim_content);
 }
@@ -185,11 +164,7 @@
         /** TODO */
     }
 
-    if(NULL != sim_cnt_impl->methods)
-    {
-        axis2_hash_free(sim_cnt_impl->methods, env);
-        sim_cnt_impl->methods = NULL;
-    }
+  
     if(NULL != sim_cnt_impl->annotated)
     {
         XML_SCHEMA_ANNOTATED_FREE(sim_cnt_impl->annotated, env);

Modified: webservices/axis2/trunk/c/xml_schema/src/xml_schema_simple_content_extension.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/src/xml_schema_simple_content_extension.c?rev=429593&r1=429592&r2=429593&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/src/xml_schema_simple_content_extension.c (original)
+++ webservices/axis2/trunk/c/xml_schema/src/xml_schema_simple_content_extension.c Mon Aug  7 22:57:49 2006
@@ -39,8 +39,6 @@
     
     axis2_hash_t *ht_super;
     
-    axis2_hash_t *methods;
-    
 };
 
 #define AXIS2_INTF_TO_IMPL(sim_content_ext) \
@@ -152,34 +150,13 @@
             xml_schema_simple_content_extension_set_base_type_name; 
     
     sim_content_ext_impl->ht_super = axis2_hash_make(env);
-    sim_content_ext_impl->methods = axis2_hash_make(env);  
-    if(!sim_content_ext_impl->methods || !sim_content_ext_impl->ht_super)
+    if(!sim_content_ext_impl->ht_super)
     {
         xml_schema_simple_content_extension_free(
                 &(sim_content_ext_impl->sim_content_ext), env);
         return NULL;
     }  
     
-    axis2_hash_set(sim_content_ext_impl->methods, "free", AXIS2_HASH_KEY_STRING,
-            xml_schema_simple_content_extension_free);
-     axis2_hash_set(sim_content_ext_impl->methods, "get_type", AXIS2_HASH_KEY_STRING,
-            xml_schema_simple_content_extension_get_type);            
-      axis2_hash_set(sim_content_ext_impl->methods, "super_objs", AXIS2_HASH_KEY_STRING,
-            xml_schema_simple_content_extension_super_objs);            
-            
-    axis2_hash_set(sim_content_ext_impl->methods, "get_any_attribute", AXIS2_HASH_KEY_STRING,
-            xml_schema_simple_content_extension_get_any_attribute);
-            
-    axis2_hash_set(sim_content_ext_impl->methods, "set_any_attribute", AXIS2_HASH_KEY_STRING,
-            xml_schema_simple_content_extension_set_any_attribute);
-    
-    axis2_hash_set(sim_content_ext_impl->methods, "get_attributes", AXIS2_HASH_KEY_STRING,
-            xml_schema_simple_content_extension_get_attributes);
-    axis2_hash_set(sim_content_ext_impl->methods, "get_base_type_name", AXIS2_HASH_KEY_STRING,
-            xml_schema_simple_content_extension_get_base_type_name);
-    axis2_hash_set(sim_content_ext_impl->methods, "set_base_type_name", AXIS2_HASH_KEY_STRING,
-            xml_schema_simple_content_extension_set_base_type_name);
-    
     sim_content_ext_impl->annotated = xml_schema_annotated_create(env);
     if(!sim_content_ext_impl->annotated)
     {
@@ -194,16 +171,24 @@
              env);
         return NULL;
     }
-     axis2_hash_set(sim_content_ext_impl->ht_super, "XML_SCHEMA_SIMPLE_CONTENT_EXTENSION",
+     axis2_hash_set(sim_content_ext_impl->ht_super, 
+        AXIS2_STRDUP("XML_SCHEMA_SIMPLE_CONTENT_EXTENSION", env),
         AXIS2_HASH_KEY_STRING,&(sim_content_ext_impl->sim_content_ext));
-    axis2_hash_set(sim_content_ext_impl->ht_super, "XML_SCHEMA_ANNOTATED",
+    
+    axis2_hash_set(sim_content_ext_impl->ht_super, 
+        AXIS2_STRDUP("XML_SCHEMA_ANNOTATED", env),
         AXIS2_HASH_KEY_STRING,(sim_content_ext_impl->annotated));
-    axis2_hash_set(sim_content_ext_impl->ht_super, "XML_SCHEMA_OBJ",
+        
+    axis2_hash_set(sim_content_ext_impl->ht_super, 
+        AXIS2_STRDUP("XML_SCHEMA_OBJ", env),
         AXIS2_HASH_KEY_STRING,
         XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(sim_content_ext_impl->annotated, env));
     
     xml_schema_annotated_resolve_methods(&(sim_content_ext_impl->sim_content_ext.base),
-        env, sim_content_ext_impl->annotated, sim_content_ext_impl->methods);
+        env, sim_content_ext_impl->annotated, 
+        xml_schema_simple_content_extension_super_objs,
+        xml_schema_simple_content_extension_get_type,
+        xml_schema_simple_content_extension_free);
     
     return &(sim_content_ext_impl->sim_content_ext);
 }

Modified: webservices/axis2/trunk/c/xml_schema/src/xml_schema_simple_content_restriction.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/src/xml_schema_simple_content_restriction.c?rev=429593&r1=429592&r2=429593&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/src/xml_schema_simple_content_restriction.c (original)
+++ webservices/axis2/trunk/c/xml_schema/src/xml_schema_simple_content_restriction.c Mon Aug  7 22:57:49 2006
@@ -41,8 +41,7 @@
     xml_schema_simple_type_t *base_type;
     
     xml_schema_types_t obj_type;
-    
-    axis2_hash_t *methods;
+
     
     axis2_hash_t *ht_super;
 };
@@ -155,7 +154,6 @@
     sim_content_res_impl->base_type = NULL;
     sim_content_res_impl->ht_super = NULL;
     sim_content_res_impl->obj_type = XML_SCHEMA_SIMPLE_CONTENT_RESTRICTION;
-    sim_content_res_impl->methods = NULL;
     sim_content_res_impl->sim_content_res.base.ops = NULL;
     
     sim_content_res_impl->sim_content_res.ops = AXIS2_MALLOC(env->allocator, 
@@ -206,50 +204,6 @@
     sim_content_res_impl->sim_content_res.ops->get_facets =
             xml_schema_simple_content_restriction_get_facets;
             
-    sim_content_res_impl->methods = axis2_hash_make(env);
-    if(!sim_content_res_impl->methods)
-    {
-        xml_schema_simple_content_restriction_free(
-                &(sim_content_res_impl->sim_content_res), env);
-        return NULL;
-    } 
-    
-    axis2_hash_set(sim_content_res_impl->methods, "free", AXIS2_HASH_KEY_STRING,
-            xml_schema_simple_content_restriction_free);;
-            
-    axis2_hash_set(sim_content_res_impl->methods, "get_type", 
-            AXIS2_HASH_KEY_STRING,                                                                  xml_schema_simple_content_restriction_get_type);
-    
-    axis2_hash_set(sim_content_res_impl->methods, "super_objs", 
-            AXIS2_HASH_KEY_STRING,
-            xml_schema_simple_content_restriction_super_objs);
-                                
-    axis2_hash_set(sim_content_res_impl->methods, "get_any_attribute",                              AXIS2_HASH_KEY_STRING,
-            xml_schema_simple_content_restriction_get_any_attribute);
-            
-    axis2_hash_set(sim_content_res_impl->methods, "set_any_attribute",
-            AXIS2_HASH_KEY_STRING,
-            xml_schema_simple_content_restriction_set_any_attribute);
-            
-    axis2_hash_set(sim_content_res_impl->methods, "get_attribute", 
-            AXIS2_HASH_KEY_STRING,
-            xml_schema_simple_content_restriction_get_attributes);
-            
-    axis2_hash_set(sim_content_res_impl->methods, "get_base_type_name", AXIS2_HASH_KEY_STRING,
-            xml_schema_simple_content_restriction_get_base_type_name);
-            
-    axis2_hash_set(sim_content_res_impl->methods, "set_base_type_name", AXIS2_HASH_KEY_STRING,
-            xml_schema_simple_content_restriction_set_base_type_name);  
-            
-    axis2_hash_set(sim_content_res_impl->methods, "set_base_type", AXIS2_HASH_KEY_STRING,
-            xml_schema_simple_content_restriction_set_base_type);
-            
-    axis2_hash_set(sim_content_res_impl->methods, "get_base_type", AXIS2_HASH_KEY_STRING,
-            xml_schema_simple_content_restriction_get_base_type);  
-            
-    axis2_hash_set(sim_content_res_impl->methods, "get_facets", AXIS2_HASH_KEY_STRING,
-            xml_schema_simple_content_restriction_get_facets);                                     
-                          
     sim_content_res_impl->annotated = xml_schema_annotated_create(env);
     if(!sim_content_res_impl->annotated)
     {
@@ -280,7 +234,10 @@
         XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(sim_content_res_impl->annotated, env));
         
     xml_schema_annotated_resolve_methods(&(sim_content_res_impl->sim_content_res.base),
-        env, sim_content_res_impl->annotated, sim_content_res_impl->methods);        
+        env, sim_content_res_impl->annotated, 
+        xml_schema_simple_content_restriction_super_objs,
+        xml_schema_simple_content_restriction_get_type,
+        xml_schema_simple_content_restriction_free);        
     
     return &(sim_content_res_impl->sim_content_res);
 }

Modified: webservices/axis2/trunk/c/xml_schema/src/xml_schema_simple_type.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/src/xml_schema_simple_type.c?rev=429593&r1=429592&r2=429593&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/src/xml_schema_simple_type.c (original)
+++ webservices/axis2/trunk/c/xml_schema/src/xml_schema_simple_type.c Mon Aug  7 22:57:49 2006
@@ -34,8 +34,6 @@
     /** parent type */
     xml_schema_type_t *schema_type;
 
-    axis2_hash_t *methods;
-    
     axis2_hash_t *ht_super;
     
     xml_schema_types_t obj_type;
@@ -98,7 +96,6 @@
         return NULL;
     }
 
-    simple_type->methods = NULL;
     simple_type->content = NULL;
     simple_type->schema_type = NULL;
     simple_type->simple_type.ops = NULL;
@@ -142,43 +139,39 @@
     simple_type->simple_type.ops->super_objs = 
             xml_schema_simple_type_super_objs;            
    
-    simple_type->methods = axis2_hash_make(env);
     simple_type->ht_super = axis2_hash_make(env);
-    if(!simple_type->methods || !simple_type->ht_super)
+    if(!simple_type->ht_super)
     {
         xml_schema_simple_type_free(&(simple_type->simple_type), env);
         AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
     }
 
-    axis2_hash_set(simple_type->methods, "free", AXIS2_HASH_KEY_STRING, 
-            xml_schema_simple_type_free);
-    axis2_hash_set(simple_type->methods, "get_content", 
-            AXIS2_HASH_KEY_STRING, xml_schema_simple_type_get_content);
-    axis2_hash_set(simple_type->methods, "set_content", 
-            AXIS2_HASH_KEY_STRING, xml_schema_simple_type_set_content);
-    axis2_hash_set(simple_type->methods, "get_type", 
-            AXIS2_HASH_KEY_STRING, xml_schema_simple_type_get_type);
-    axis2_hash_set(simple_type->methods, "super_objs", 
-            AXIS2_HASH_KEY_STRING, xml_schema_simple_type_super_objs);
-                    
-    axis2_hash_set(simple_type->ht_super, "XML_SCHEMA_SIMPLE_TYPE",
+    axis2_hash_set(simple_type->ht_super, 
+            AXIS2_STRDUP("XML_SCHEMA_SIMPLE_TYPE", env),
             AXIS2_HASH_KEY_STRING, &(simple_type->simple_type));
-    axis2_hash_set(simple_type->ht_super, "XML_SCHEMA_TYPE", 
+            
+    axis2_hash_set(simple_type->ht_super, 
+            AXIS2_STRDUP("XML_SCHEMA_TYPE", env), 
             AXIS2_HASH_KEY_STRING, simple_type->schema_type);            
     
     annotated = XML_SCHEMA_TYPE_GET_BASE_IMPL(simple_type->schema_type, env);
     if(NULL != annotated)
     {
-        axis2_hash_set(simple_type->ht_super, "XML_SCHEMA_ANNOTATED", 
+        axis2_hash_set(simple_type->ht_super, 
+            AXIS2_STRDUP("XML_SCHEMA_ANNOTATED", env), 
             AXIS2_HASH_KEY_STRING, annotated); 
-        axis2_hash_set(simple_type->ht_super, "XML_SCHEMA_OBJ", 
+        axis2_hash_set(simple_type->ht_super, 
+            AXIS2_STRDUP("XML_SCHEMA_OBJ", env), 
             AXIS2_HASH_KEY_STRING, 
             XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(annotated, env)); 
     }            
 
     status = xml_schema_type_resolve_methods(&(simple_type->simple_type.base),
-            env, simple_type->schema_type, simple_type->methods);
+            env, simple_type->schema_type, 
+            xml_schema_simple_type_super_objs,
+            xml_schema_simple_type_get_type,
+            xml_schema_simple_type_free);
     
     return &(simple_type->simple_type);
 }
@@ -192,11 +185,6 @@
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     simple_type_impl = AXIS2_INTF_TO_IMPL(simple_type);
 
-    if(NULL != simple_type_impl->methods)
-    {
-        axis2_hash_free(simple_type_impl->methods, env);
-        simple_type_impl->methods = NULL;
-    }
     if(NULL != simple_type_impl->ht_super)
     {
         axis2_hash_free(simple_type_impl->ht_super, env);
@@ -268,7 +256,10 @@
             type_impl_l->simple_type.ops->set_content;
     
     return xml_schema_type_resolve_methods(&(simple_type->base), 
-            env, type_impl_l->schema_type , methods);
+            env, type_impl_l->schema_type , 
+            xml_schema_simple_type_super_objs,
+            xml_schema_simple_type_get_type,
+            xml_schema_simple_type_free);
 }
 
 xml_schema_simple_type_content_t* AXIS2_CALL

Modified: webservices/axis2/trunk/c/xml_schema/src/xml_schema_simple_type_content.c
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/c/xml_schema/src/xml_schema_simple_type_content.c?rev=429593&r1=429592&r2=429593&view=diff
==============================================================================
--- webservices/axis2/trunk/c/xml_schema/src/xml_schema_simple_type_content.c (original)
+++ webservices/axis2/trunk/c/xml_schema/src/xml_schema_simple_type_content.c Mon Aug  7 22:57:49 2006
@@ -30,8 +30,6 @@
     
     xml_schema_annotated_t *annotated;
 
-    axis2_hash_t *methods;
-
     axis2_hash_t *ht_super; 
     
     xml_schema_types_t obj_type;   
@@ -78,7 +76,6 @@
     sim_type_cont_impl->annotated = NULL;
     sim_type_cont_impl->sim_type_cont.ops = NULL;
     sim_type_cont_impl->sim_type_cont.base.ops = NULL;
-    sim_type_cont_impl->methods = NULL;
     sim_type_cont_impl->ht_super = NULL;
     sim_type_cont_impl->obj_type = XML_SCHEMA_SIMPLE_TYPE_CONTENT;
     
@@ -101,21 +98,14 @@
     sim_type_cont_impl->sim_type_cont.ops->super_objs = 
             xml_schema_simple_type_content_super_objs;
    
-    sim_type_cont_impl->methods = axis2_hash_make(env);
     sim_type_cont_impl->ht_super = axis2_hash_make(env);
-    if(!sim_type_cont_impl->methods || !sim_type_cont_impl->ht_super)
+    if(!sim_type_cont_impl->ht_super)
     {
         xml_schema_simple_type_content_free(&(sim_type_cont_impl->sim_type_cont), env);
         AXIS2_ERROR_SET(env->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
     }
-    axis2_hash_set(sim_type_cont_impl->methods, "free", AXIS2_HASH_KEY_STRING, 
-            xml_schema_simple_type_content_free);
-    axis2_hash_set(sim_type_cont_impl->methods, "get_type", 
-            AXIS2_HASH_KEY_STRING, xml_schema_simple_type_content_get_type);
-    axis2_hash_set(sim_type_cont_impl->methods, "super_objs", 
-            AXIS2_HASH_KEY_STRING, xml_schema_simple_type_content_super_objs);
-
+    
     sim_type_cont_impl->annotated = xml_schema_annotated_create(env);
     if(!sim_type_cont_impl->annotated)
     {
@@ -123,19 +113,25 @@
         return NULL;        
     }
     
-    axis2_hash_set(sim_type_cont_impl->ht_super, "XML_SCHEMA_SIMPLE_TYPE_CONTENT",
+    axis2_hash_set(sim_type_cont_impl->ht_super, 
+        AXIS2_STRDUP("XML_SCHEMA_SIMPLE_TYPE_CONTENT", env),
         AXIS2_HASH_KEY_STRING, &(sim_type_cont_impl->sim_type_cont));
         
-    axis2_hash_set(sim_type_cont_impl->ht_super, "XML_SCHEMA_ANNOTATED",
+    axis2_hash_set(sim_type_cont_impl->ht_super, 
+        AXIS2_STRDUP("XML_SCHEMA_ANNOTATED", env),
         AXIS2_HASH_KEY_STRING, sim_type_cont_impl->annotated);
     
-    axis2_hash_set(sim_type_cont_impl->ht_super, "XML_SCHEMA_OBJ",
+    axis2_hash_set(sim_type_cont_impl->ht_super, 
+        AXIS2_STRDUP("XML_SCHEMA_OBJ", env),
         AXIS2_HASH_KEY_STRING, 
         XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(sim_type_cont_impl->annotated, env));
     
     status = xml_schema_annotated_resolve_methods(
-            &(sim_type_cont_impl->sim_type_cont.base), env, sim_type_cont_impl->annotated, 
-            sim_type_cont_impl->methods);
+            &(sim_type_cont_impl->sim_type_cont.base), env, 
+            sim_type_cont_impl->annotated, 
+            xml_schema_simple_type_content_super_objs,
+            xml_schema_simple_type_content_get_type,
+            xml_schema_simple_type_content_free);
     
     return &(sim_type_cont_impl->sim_type_cont);
 }
@@ -149,11 +145,7 @@
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     sim_type_cont_impl = AXIS2_INTF_TO_IMPL(sim_type_cont);
 
-    if(NULL != sim_type_cont_impl->methods)
-    {
-        axis2_hash_free(sim_type_cont_impl->methods, env);
-        sim_type_cont_impl->methods = NULL;
-    }
+  
      if(NULL != sim_type_cont_impl->ht_super)
     {
         axis2_hash_free(sim_type_cont_impl->ht_super, env);
@@ -200,13 +192,14 @@
                                 xml_schema_simple_type_content_t *sim_type_cont,
                                 const axis2_env_t *env,
                                 xml_schema_simple_type_content_t *sim_type_cont_impl,
-                                axis2_hash_t *methods)
+                                XML_SCHEMA_SUPER_OBJS_FN super_objs,
+                                XML_SCHEMA_GET_TYPE_FN get_type,
+                                XML_SCHEMA_FREE_FN free_fn)
 {
     xml_schema_simple_type_content_impl_t *sim_type_cont_impl_l = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK(env->error, sim_type_cont_impl, AXIS2_FAILURE);
-    AXIS2_PARAM_CHECK(env->error, methods, AXIS2_FAILURE);
     
     sim_type_cont_impl_l = 
         (xml_schema_simple_type_content_impl_t *) sim_type_cont_impl;
@@ -219,15 +212,12 @@
         return AXIS2_FAILURE;
     }            
     
-    sim_type_cont->ops->free = axis2_hash_get(methods, "free", 
-            AXIS2_HASH_KEY_STRING);
-    sim_type_cont->ops->get_type = axis2_hash_get(methods, "get_type", 
-            AXIS2_HASH_KEY_STRING);
-    sim_type_cont->ops->super_objs = axis2_hash_get(methods, "super_objs", 
-            AXIS2_HASH_KEY_STRING);
+    sim_type_cont->ops->free = free_fn;
+    sim_type_cont->ops->get_type = get_type;
+    sim_type_cont->ops->super_objs = super_objs;
 
     return xml_schema_annotated_resolve_methods(&(sim_type_cont->base), 
-            env, sim_type_cont_impl_l->annotated, methods);
+            env, sim_type_cont_impl_l->annotated, super_objs, get_type, free_fn);
 }
 
 



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