You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by na...@apache.org on 2006/05/15 11:31:15 UTC

svn commit: r406594 [6/8] - in /webservices/axis2/trunk/c/modules/xml/xml_schema: ./ include/xml_schema/

Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_external.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_external.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_external.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_external.c Mon May 15 02:31:10 2006
@@ -30,6 +30,12 @@
     axis2_xml_schema_t *schema;
     
     axis2_hash_t *methods;
+    
+    axis2_xml_schema_types_t obj_type;
+    
+    axis2_hash_t *ht_super;
+    
+    axis2_char_t *schema_location;
 
 }axis2_xml_schema_external_impl_t;
 
@@ -46,6 +52,15 @@
 axis2_xml_schema_external_get_base_impl(void *external,
                                         axis2_env_t **env);
 
+axis2_hash_t* AXIS2_CALL
+axis2_xml_schema_external_super_objs(void *external,
+                                        axis2_env_t **env);
+
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_schema_external_type(void *external,
+                                axis2_env_t **env);
+
+
 axis2_xml_schema_t* AXIS2_CALL
 axis2_xml_schema_external_get_schema(void *external,
                                      axis2_env_t **env);
@@ -55,6 +70,16 @@
                                      axis2_env_t **env,
                                      axis2_xml_schema_t *schema);
 
+axis2_char_t* AXIS2_CALL
+axis2_xml_schema_external_get_schema_location(void *external,
+                                            axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_external_set_schema_location(void *external,
+                                     axis2_env_t **env,
+                                     axis2_char_t* location);
+
+
 /********************* end function prototypes ********************************/
 
 AXIS2_DECLARE(axis2_xml_schema_external_t *)
@@ -75,6 +100,8 @@
     external_impl->methods = NULL;
     external_impl->external.ops = NULL;
     external_impl->external.base.ops = NULL;
+    external_impl->ht_super = NULL;
+    external_impl->obj_type = AXIS2_XML_SCHEMA_EXTERNAL;
     
     external_impl->external.ops = AXIS2_MALLOC((*env)->allocator, 
                     sizeof(axis2_xml_schema_external_ops_t));
@@ -90,15 +117,23 @@
         axis2_xml_schema_external_free;
     external_impl->external.ops->get_base_impl = 
         axis2_xml_schema_external_get_base_impl;
-        
+    external_impl->external.ops->type =    
+        axis2_xml_schema_external_type;
+    external_impl->external.ops->super_objs =
+        axis2_xml_schema_external_super_objs;        
     external_impl->external.ops->get_schema = 
-            axis2_xml_schema_external_get_schema;
-            
+        axis2_xml_schema_external_get_schema;
     external_impl->external.ops->set_schema = 
-            axis2_xml_schema_external_set_schema;
+        axis2_xml_schema_external_set_schema;
+    external_impl->external.ops->get_schema_location =
+        axis2_xml_schema_external_get_schema_location;
+    external_impl->external.ops->set_schema_location =
+        axis2_xml_schema_external_set_schema_location;
 
     external_impl->methods = axis2_hash_make(env);
-    if(!external_impl->methods)
+    external_impl->ht_super = axis2_hash_make(env);
+
+    if(!external_impl->methods || !external_impl->ht_super)
     {
         axis2_xml_schema_external_free(&(external_impl->external), env);
         AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
@@ -107,18 +142,35 @@
 
     axis2_hash_set(external_impl->methods, "free", AXIS2_HASH_KEY_STRING, 
             axis2_xml_schema_external_free);
-
+    axis2_hash_set(external_impl->methods, "type", AXIS2_HASH_KEY_STRING, 
+            axis2_xml_schema_external_type);
+    axis2_hash_set(external_impl->methods, "super_objs", AXIS2_HASH_KEY_STRING, 
+            axis2_xml_schema_external_super_objs);
+    axis2_hash_set(external_impl->methods, "get_schema_location", AXIS2_HASH_KEY_STRING, 
+            axis2_xml_schema_external_get_schema_location);
+    axis2_hash_set(external_impl->methods, "set_schema_location", AXIS2_HASH_KEY_STRING, 
+            axis2_xml_schema_external_set_schema_location);
     axis2_hash_set(external_impl->methods, "get_schema", 
             AXIS2_HASH_KEY_STRING, axis2_xml_schema_external_get_schema);
     axis2_hash_set(external_impl->methods, "set_schema", 
             AXIS2_HASH_KEY_STRING, axis2_xml_schema_external_set_schema);
 
+
     external_impl->annotated = axis2_xml_schema_annotated_create(env);
      if(!external_impl->annotated)
     {
         axis2_xml_schema_external_free(&(external_impl->external), env);
         return NULL;
     }
+    
+    axis2_hash_set(external_impl->ht_super, "AXIS2_XML_SCHEMA_EXTERNAL", 
+            AXIS2_HASH_KEY_STRING, &(external_impl->external));
+    axis2_hash_set(external_impl->ht_super, "AXIS2_XML_SCHEMA_ANNOTATED", 
+            AXIS2_HASH_KEY_STRING, external_impl->annotated);
+    axis2_hash_set(external_impl->ht_super, "AXIS2_XML_SCHEMA_OBJ", 
+            AXIS2_HASH_KEY_STRING, 
+            AXIS2_XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(external_impl->annotated, env));
+
     status = axis2_xml_schema_annotated_resolve_methods(
             &(external_impl->external.base), env, external_impl->annotated, 
             external_impl->methods);
@@ -126,6 +178,15 @@
     return &(external_impl->external);
 }
 
+AXIS2_DECLARE(axis2_xml_schema_external_t *)
+axis2_xml_schema_include_create(axis2_env_t **env)
+{
+    axis2_xml_schema_external_t *include = NULL;
+    include = axis2_xml_schema_external_create(env);
+    AXIS2_INTF_TO_IMPL(include)->obj_type = AXIS2_XML_SCHEMA_INCLUDE;
+    return include;
+}
+
 axis2_status_t AXIS2_CALL
 axis2_xml_schema_external_free(void *external,
                                     axis2_env_t **env)
@@ -141,6 +202,11 @@
         external_impl->methods = NULL;
     }
 
+    if(NULL != external_impl->ht_super)
+    {
+        axis2_hash_free(external_impl->ht_super, env);
+        external_impl->ht_super = NULL;
+    }
     if(NULL != external_impl->annotated)
     {
         AXIS2_XML_SCHEMA_ANNOTATED_FREE(external_impl->annotated, env);
@@ -181,37 +247,53 @@
                                 axis2_xml_schema_external_t *external_impl,
                                 axis2_hash_t *methods)
 {
-    axis2_xml_schema_external_impl_t *external_impl_l = NULL;
+    axis2_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);
     
-    external_impl_l = (axis2_xml_schema_external_impl_t *) external_impl;
+    sch_ext_impl = (axis2_xml_schema_external_impl_t *) external_impl;
     
     external->ops = AXIS2_MALLOC((*env)->allocator, 
             sizeof(axis2_xml_schema_external_ops_t));
             
     external->ops->free = axis2_hash_get(methods, "free", 
             AXIS2_HASH_KEY_STRING);
-            
-    external->ops->get_base_impl = 
-        external_impl_l->external.ops->get_base_impl;
+    external->ops->super_objs = axis2_hash_get(methods, "super_objs",
+            AXIS2_HASH_KEY_STRING);
+    external->ops->type = axis2_hash_get(methods, "type",
+            AXIS2_HASH_KEY_STRING);
+                                   
     external->ops->set_schema = 
-        external_impl_l->external.ops->set_schema;
+        sch_ext_impl->external.ops->set_schema;
     external->ops->get_schema = 
-        external_impl_l->external.ops->get_schema;
-        
+        sch_ext_impl->external.ops->get_schema;
+    external->ops->set_schema_location = 
+        sch_ext_impl->external.ops->set_schema_location;
+    external->ops->get_schema_location =
+        sch_ext_impl->external.ops->get_schema_location;        
     return axis2_xml_schema_annotated_resolve_methods(&(external->base), 
-            env, external_impl_l->annotated, methods);
+            env, sch_ext_impl->annotated, methods);
 }
 
 axis2_xml_schema_t * AXIS2_CALL
 axis2_xml_schema_external_get_schema(void *external,
                                             axis2_env_t **env)
 {
+    axis2_xml_schema_external_impl_t *ext_impl = NULL;
+    axis2_hash_t *ht_super = NULL;
     AXIS2_ENV_CHECK(env, NULL);
-    return AXIS2_INTF_TO_IMPL(external)->schema;
+    ht_super = AXIS2_XML_SCHEMA_EXTERNAL_SUPER_OBJS(external, env);
+    if(NULL != ht_super)
+    {
+        
+        ext_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(ht_super,
+            "AXIS2_XML_SCHEMA_EXTERNAL", AXIS2_HASH_KEY_STRING));    
+        if(!ext_impl)
+            return NULL;
+    }
+    return ext_impl->schema;
 }
 
 axis2_status_t AXIS2_CALL
@@ -220,13 +302,85 @@
                                      axis2_xml_schema_t *schema)
 {
     axis2_xml_schema_external_impl_t *ext_impl = NULL;
+    axis2_hash_t *ht_super = NULL;
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    ext_impl = AXIS2_INTF_TO_IMPL(external);
+    ht_super = AXIS2_XML_SCHEMA_EXTERNAL_SUPER_OBJS(external, env);
+    if(NULL != ht_super)
+    {
+        
+        ext_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(ht_super,
+            "AXIS2_XML_SCHEMA_EXTERNAL", AXIS2_HASH_KEY_STRING));    
+        if(!ext_impl)
+            return AXIS2_FAILURE;
+    }
     if(NULL != ext_impl->schema)
     {
+        /*
         AXIS2_XML_SCHEMA_FREE(ext_impl->schema, env);
         ext_impl->schema = NULL;
+        */
     }
     ext_impl->schema = schema;
     return AXIS2_SUCCESS;
 }
+
+axis2_hash_t* AXIS2_CALL
+axis2_xml_schema_external_super_objs(void *external,
+                                        axis2_env_t **env)
+{
+    return AXIS2_INTF_TO_IMPL(external)->ht_super;
+}                                        
+
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_schema_external_type(void *external,
+                                axis2_env_t **env)
+{
+    return AXIS2_INTF_TO_IMPL(external)->obj_type;
+}                                
+                                
+axis2_char_t* AXIS2_CALL
+axis2_xml_schema_external_get_schema_location(void *external,
+                                            axis2_env_t **env)
+{
+    axis2_xml_schema_external_impl_t *ext_impl = NULL;
+    axis2_hash_t *ht_super = NULL;
+    AXIS2_ENV_CHECK(env, NULL);
+    ht_super = AXIS2_XML_SCHEMA_EXTERNAL_SUPER_OBJS(external, env);
+    if(NULL != ht_super)
+    {
+        
+        ext_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(ht_super,
+            "AXIS2_XML_SCHEMA_EXTERNAL", AXIS2_HASH_KEY_STRING));    
+        if(!ext_impl)
+            return NULL;
+    }
+    return ext_impl->schema_location;
+}                                            
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_external_set_schema_location(void *external,
+                                     axis2_env_t **env,
+                                     axis2_char_t* location)
+{
+    axis2_xml_schema_external_impl_t *ext_impl = NULL;
+    axis2_hash_t *ht_super = NULL;
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, location, AXIS2_FAILURE);
+    ht_super = AXIS2_XML_SCHEMA_EXTERNAL_SUPER_OBJS(external, env);
+    if(NULL != ht_super)
+    {
+        
+        ext_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(ht_super,
+            "AXIS2_XML_SCHEMA_EXTERNAL", AXIS2_HASH_KEY_STRING));    
+        if(!ext_impl)
+            return AXIS2_FAILURE;
+    }
+    if(NULL != ext_impl->schema_location)
+    {
+        AXIS2_FREE((*env)->allocator, ext_impl->schema_location);
+        ext_impl->schema_location = NULL;
+    }
+    ext_impl->schema_location = AXIS2_STRDUP(location, env);
+    return AXIS2_SUCCESS;
+}                                        
+                                
\ No newline at end of file

Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_facet.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_facet.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_facet.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_facet.c Mon May 15 02:31:10 2006
@@ -37,7 +37,9 @@
     
     axis2_bool_t fixed;
     
-    int facet_type;
+    int obj_type;
+    
+    axis2_hash_t* ht_super;
     
     void *value;
 };
@@ -78,16 +80,20 @@
                                       axis2_env_t **env,
                                       int facet_type);
                                       
-int AXIS2_CALL
-axis2_xml_schema_facet_get_facet_type(void *facet,
-                                      axis2_env_t **env);                                                                       
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_schema_facet_type(void *facet,
+                            axis2_env_t **env);                                                                       
+axis2_hash_t* AXIS2_CALL
+axis2_xml_schema_facet_super_objs(void *facet,
+                                  axis2_env_t **env);                                                       
 
 /********************** end function prototypes *******************************/
 
 AXIS2_DECLARE(axis2_xml_schema_facet_t *)
 axis2_xml_schema_facet_create(axis2_env_t **env,
                                 void *value,
-                                axis2_bool_t fixed)
+                                axis2_bool_t fixed,
+                                axis2_xml_schema_types_t type)
 {
     axis2_xml_schema_facet_impl_t *facet_impl = NULL;
     axis2_status_t status = AXIS2_FAILURE;
@@ -102,7 +108,7 @@
 
     facet_impl->annotated = NULL;
     facet_impl->facet.ops = NULL;
-    facet_impl->facet_type = AXIS2_XML_SCHEMA_FACET;
+    facet_impl->obj_type = type;
     facet_impl->facet.base.ops = NULL;
     facet_impl->methods = NULL;
     facet_impl->fixed = fixed;
@@ -128,6 +134,12 @@
         axis2_xml_schema_facet_get_value;
     facet_impl->facet.ops->set_value = 
         axis2_xml_schema_facet_set_value;
+    facet_impl->facet.ops->type = 
+        axis2_xml_schema_facet_type; 
+    facet_impl->facet.ops->set_facet_type =
+        axis2_xml_schema_facet_set_facet_type;
+    facet_impl->facet.ops->super_objs =
+        axis2_xml_schema_facet_super_objs;                       
    
     facet_impl->methods = axis2_hash_make(env);
     if(!facet_impl->methods)
@@ -147,13 +159,33 @@
     axis2_hash_set(facet_impl->methods, "set_value", 
             AXIS2_HASH_KEY_STRING, axis2_xml_schema_facet_set_value);
 
-    
+    axis2_hash_set(facet_impl->methods, "type", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_facet_type);
+    axis2_hash_set(facet_impl->methods, "super_objs",
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_facet_super_objs);
+            
+
     facet_impl->annotated = axis2_xml_schema_annotated_create(env);
     if(!facet_impl->annotated)
     {
         axis2_xml_schema_facet_free(&(facet_impl->facet), env);
         return NULL;
     }
+    
+    facet_impl->ht_super = axis2_hash_make(env);
+    if(!facet_impl->ht_super)
+    {
+        axis2_xml_schema_facet_free(&(facet_impl->facet), env);
+        return NULL;
+    }
+    axis2_hash_set(facet_impl->ht_super, "AXIS2_XML_SCHEMA_FACET",
+            AXIS2_HASH_KEY_STRING, &(facet_impl->facet));
+    axis2_hash_set(facet_impl->ht_super, "AXIS2_XML_SCHEMA_ANNOTATED",
+            AXIS2_HASH_KEY_STRING, facet_impl->annotated);
+    axis2_hash_set(facet_impl->ht_super, "AXIS2_XML_SCHEMA_OBJ",
+            AXIS2_HASH_KEY_STRING, 
+            AXIS2_XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(facet_impl->annotated, env));
+            
     status = axis2_xml_schema_annotated_resolve_methods(
             &(facet_impl->facet.base), env, facet_impl->annotated, 
             facet_impl->methods);
@@ -203,13 +235,11 @@
                                 axis2_env_t **env)
 {
     axis2_xml_schema_facet_impl_t *facet_impl = NULL;
-
     AXIS2_ENV_CHECK(env, NULL);
     facet_impl = AXIS2_INTF_TO_IMPL(facet);
-
     return facet_impl->annotated;
 }
-
+/*
 AXIS2_DECLARE(axis2_status_t)
 axis2_xml_schema_facet_resolve_methods(
                                 axis2_xml_schema_facet_t *facet,
@@ -217,13 +247,13 @@
                                 axis2_xml_schema_facet_t *facet_impl,
                                 axis2_hash_t *methods)
 {
-    axis2_xml_schema_facet_impl_t *facet_impl_l = NULL;
+    axis2_xml_schema_facet_impl_t *sch_facet_impl = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, facet_impl, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, methods, AXIS2_FAILURE);
     
-    facet_impl_l = (axis2_xml_schema_facet_impl_t *) facet_impl;
+    sch_facet_impl = (axis2_xml_schema_facet_impl_t *) facet_impl;
     
     facet->ops = AXIS2_MALLOC((*env)->allocator, 
             sizeof(axis2_xml_schema_facet_ops_t));
@@ -236,19 +266,19 @@
     facet->ops->free = axis2_hash_get(methods, "free", 
             AXIS2_HASH_KEY_STRING);
     facet->ops->get_base_impl = 
-            facet_impl_l->facet.ops->get_base_impl;
+            sch_facet_impl->facet.ops->get_base_impl;
     facet->ops->is_fixed = 
-            facet_impl_l->facet.ops->is_fixed;
+            sch_facet_impl->facet.ops->is_fixed;
     facet->ops->set_fixed = 
-            facet_impl_l->facet.ops->set_fixed;
+            sch_facet_impl->facet.ops->set_fixed;
     facet->ops->get_value = 
-            facet_impl_l->facet.ops->get_value;
+            sch_facet_impl->facet.ops->get_value;
     facet->ops->set_value = 
-            facet_impl_l->facet.ops->set_value;
+            sch_facet_impl->facet.ops->set_value;
     return axis2_xml_schema_annotated_resolve_methods(&(facet->base), 
-            env, facet_impl_l->annotated, methods);
+            env, sch_facet_impl->annotated, methods);
 }
-
+*/
 axis2_bool_t AXIS2_CALL
 axis2_xml_schema_facet_is_fixed(void *facet,
                                             axis2_env_t **env)
@@ -296,7 +326,7 @@
     axis2_om_element_t *om_ele = NULL;
     AXIS2_ENV_CHECK(env, NULL);
     AXIS2_PARAM_CHECK((*env)->error, node, NULL);
-    
+    /** TODO */
     
     return NULL;
 }
@@ -307,18 +337,21 @@
                                       int facet_type)
 {
     axis2_xml_schema_facet_impl_t *facet_impl = NULL;
-    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     facet_impl = AXIS2_INTF_TO_IMPL(facet);
-    facet_impl->facet_type = facet_type;
+    facet_impl->obj_type = facet_type;
     return AXIS2_SUCCESS;
 }                                      
                                       
-int AXIS2_CALL
-axis2_xml_schema_facet_get_facet_type(void *facet,
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_schema_facet_type(void *facet,
                                       axis2_env_t **env)
 {
-    axis2_xml_schema_facet_impl_t *facet_impl = NULL;
-    AXIS2_ENV_CHECK(env, -1);
-    facet_impl = AXIS2_INTF_TO_IMPL(facet);
-    return facet_impl->facet_type;
-}                                      
+    return AXIS2_INTF_TO_IMPL(facet)->obj_type;
+} 
+
+axis2_hash_t* AXIS2_CALL
+axis2_xml_schema_facet_super_objs(void *facet,
+                                  axis2_env_t **env)
+{
+    return AXIS2_INTF_TO_IMPL(facet)->ht_super;
+}                                                                       

Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_form.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_form.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_form.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_form.c Mon May 15 02:31:10 2006
@@ -28,7 +28,7 @@
     axis2_xml_schema_form_t form;
     axis2_xml_schema_enum_t *schema_enum;
     axis2_xml_schema_types_t obj_type;
-    axis2_hash_t *super;
+    axis2_hash_t *ht_super;
     axis2_hash_t *methods;
     axis2_array_list_t *members;
 };
@@ -83,7 +83,7 @@
 
     form_impl->schema_enum = NULL;
     form_impl->obj_type = AXIS2_XML_SCHEMA_FORM;
-    form_impl->super = NULL;
+    form_impl->ht_super = NULL;
     form_impl->methods = NULL;
     form_impl->members = NULL;
     form_impl->form.ops = AXIS2_MALLOC((*env)->allocator, 
@@ -110,9 +110,9 @@
         axis2_xml_schema_form_free(&(form_impl->form), env);
         return NULL;
     }       
-    AXIS2_ARRAY_LIST_ADD(form_impl->members, env, "qualified");
-    AXIS2_ARRAY_LIST_ADD(form_impl->members, env, "unqualified");
-    AXIS2_ARRAY_LIST_ADD(form_impl->members, env, "none");
+    AXIS2_ARRAY_LIST_ADD(form_impl->members, env, AXIS2_STRDUP("qualified", env));
+    AXIS2_ARRAY_LIST_ADD(form_impl->members, env, AXIS2_STRDUP("unqualified", env));
+    AXIS2_ARRAY_LIST_ADD(form_impl->members, env, AXIS2_STRDUP("none", env));
 
     form_impl->methods = axis2_hash_make(env);
     if(!form_impl->methods)
@@ -139,17 +139,17 @@
         return NULL;
     }
  
-    form_impl->super = axis2_hash_make(env);
-    if(!form_impl->super)
+    form_impl->ht_super = axis2_hash_make(env);
+    if(!form_impl->ht_super)
     {
         axis2_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->super, "AXIS2_XML_SCHEMA_FORM", AXIS2_HASH_KEY_STRING, 
+    axis2_hash_set(form_impl->ht_super, "AXIS2_XML_SCHEMA_FORM", AXIS2_HASH_KEY_STRING, 
             &(form_impl->form));
-    axis2_hash_set(form_impl->super, "AXIS2_XML_SCHEMA_ENUM", AXIS2_HASH_KEY_STRING, 
+    axis2_hash_set(form_impl->ht_super, "AXIS2_XML_SCHEMA_ENUM", AXIS2_HASH_KEY_STRING, 
             form_impl->schema_enum);
     
     status = axis2_xml_schema_enum_resolve_methods(
@@ -187,10 +187,10 @@
         form_impl->members = NULL;
     }
    
-    if(form_impl->super)
+    if(form_impl->ht_super)
     {
-        axis2_hash_free(form_impl->super, env);
-        form_impl->super = NULL;
+        axis2_hash_free(form_impl->ht_super, env);
+        form_impl->ht_super = NULL;
     }
    
     if(form_impl->methods)
@@ -227,7 +227,7 @@
 
     AXIS2_ENV_CHECK(env, NULL);
     form_impl = AXIS2_INTF_TO_IMPL(form);
-    return form_impl->super;
+    return form_impl->ht_super;
 }
 
 axis2_xml_schema_types_t AXIS2_CALL
@@ -252,39 +252,6 @@
     return form_impl->schema_enum;
 }
 
-AXIS2_DECLARE(axis2_status_t)
-axis2_xml_schema_form_resolve_methods(
-                                axis2_xml_schema_form_t *form,
-                                axis2_env_t **env,
-                                axis2_xml_schema_form_t *form_impl,
-                                axis2_hash_t *methods)
-{
-    axis2_xml_schema_form_impl_t *form_impl_l = NULL;
-
-    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    AXIS2_PARAM_CHECK((*env)->error, form_impl, AXIS2_FAILURE);
-    AXIS2_PARAM_CHECK((*env)->error, methods, AXIS2_FAILURE);
-    
-    form_impl_l = (axis2_xml_schema_form_impl_t *) form_impl;
-    
-    form->ops = AXIS2_MALLOC((*env)->allocator, 
-            sizeof(axis2_xml_schema_form_ops_t));
-    form->ops->free = axis2_hash_get(methods, "free", 
-            AXIS2_HASH_KEY_STRING);
-    form->ops->super_objs = axis2_hash_get(methods, "super_objs", 
-            AXIS2_HASH_KEY_STRING);
-    form->ops->type = axis2_hash_get(methods, "type", 
-            AXIS2_HASH_KEY_STRING);
-    
-    form->ops->get_values = axis2_hash_get(methods, "get_values", 
-            AXIS2_HASH_KEY_STRING);
-    if(!form->ops->get_values)
-            form->ops->get_values = 
-            form_impl_l->form.ops->get_values;
-    
-    return axis2_xml_schema_enum_resolve_methods(&(form->base), 
-            env, form_impl_l->schema_enum, methods);
-}
 
 axis2_array_list_t* AXIS2_CALL
 axis2_xml_schema_form_get_values(void *form,
@@ -296,8 +263,6 @@
     super = AXIS2_XML_SCHEMA_FORM_SUPER_OBJS(form, env); 
     form_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, 
                 "AXIS2_XML_SCHEMA_FORM", AXIS2_HASH_KEY_STRING));
-    
-
     return form_impl->members;
 }
 

Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group.c Mon May 15 02:31:10 2006
@@ -28,7 +28,7 @@
     axis2_xml_schema_group_t group;
     axis2_xml_schema_annotated_t *annotated;
     axis2_xml_schema_types_t obj_type;
-    axis2_hash_t *super;
+    axis2_hash_t *ht_super;
     axis2_hash_t *methods;
     axis2_char_t *name;
     axis2_xml_schema_group_base_t *particle;
@@ -89,7 +89,7 @@
     
     group_impl->annotated = NULL;
     group_impl->obj_type = AXIS2_XML_SCHEMA_GROUP;
-    group_impl->super = NULL;
+    group_impl->ht_super = NULL;
     group_impl->methods = NULL;
     group_impl->name = NULL;
     group_impl->particle = NULL;
@@ -151,22 +151,24 @@
         axis2_xml_schema_group_free(&(group_impl->group), env);
         return NULL;
     }
-    group_impl->super = axis2_hash_make(env);
-    if(!group_impl->super)
+    group_impl->ht_super = axis2_hash_make(env);
+    if(!group_impl->ht_super)
     {
         axis2_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->super, "AXIS2_XML_SCHEMA_GROUP", AXIS2_HASH_KEY_STRING, 
+    axis2_hash_set(group_impl->ht_super, "AXIS2_XML_SCHEMA_GROUP", AXIS2_HASH_KEY_STRING, 
             &(group_impl->group));
-    axis2_hash_set(group_impl->super, "AXIS2_XML_SCHEMA_ANNOTATED", AXIS2_HASH_KEY_STRING, 
+    axis2_hash_set(group_impl->ht_super, "AXIS2_XML_SCHEMA_ANNOTATED", AXIS2_HASH_KEY_STRING, 
             group_impl->annotated);
+    axis2_hash_set(group_impl->ht_super, "AXIS2_XML_SCHEMA_OBJ", AXIS2_HASH_KEY_STRING, 
+            AXIS2_XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(group_impl->annotated, env));
+                
 
     status = axis2_xml_schema_annotated_resolve_methods(
             &(group_impl->group.base), env, group_impl->annotated, 
             group_impl->methods);
-    
     return &(group_impl->group);
 }
 
@@ -191,10 +193,10 @@
         group_impl->particle = NULL;
     }
     
-    if(NULL != group_impl->super)
+    if(NULL != group_impl->ht_super)
     {
-        axis2_hash_free(group_impl->super, env);
-        group_impl->super = NULL;
+        axis2_hash_free(group_impl->ht_super, env);
+        group_impl->ht_super = NULL;
     }
     
     if(NULL != group_impl->methods)
@@ -232,7 +234,7 @@
 
     AXIS2_ENV_CHECK(env, NULL);
     group_impl = AXIS2_INTF_TO_IMPL(group);
-    return group_impl->super;
+    return group_impl->ht_super;
 }
 
 axis2_xml_schema_types_t AXIS2_CALL
@@ -257,6 +259,7 @@
     return group_impl->annotated;
 }
 
+/*
 AXIS2_DECLARE(axis2_status_t)
 axis2_xml_schema_group_resolve_methods(
                                 axis2_xml_schema_group_t *group,
@@ -315,6 +318,8 @@
             env, group_impl_l->annotated, methods);
 }
 
+*/
+
 axis2_char_t *AXIS2_CALL
 axis2_xml_schema_group_get_name(void *group,
                                 axis2_env_t **env)
@@ -332,10 +337,12 @@
     axis2_hash_t *super = NULL;
     
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    super = AXIS2_XML_SCHEMA_GROUP_SUPER_OBJS(group, env); 
+/*    super = AXIS2_XML_SCHEMA_GROUP_SUPER_OBJS(group, env); 
     group_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, 
                 "AXIS2_XML_SCHEMA_GROUP", AXIS2_HASH_KEY_STRING));
+*/
 
+    group_impl = AXIS2_INTF_TO_IMPL(group);
     if(NULL != group_impl->name)
     {
         AXIS2_FREE((*env)->allocator, group_impl->name);
@@ -354,15 +361,17 @@
 axis2_xml_schema_group_get_particle(void *group,
                                         axis2_env_t **env)
 {
+    /*
     axis2_xml_schema_group_impl_t *group_impl = NULL;
+  
     axis2_hash_t *super = NULL;
 
     AXIS2_ENV_CHECK(env, NULL);
     super = AXIS2_XML_SCHEMA_GROUP_SUPER_OBJS(group, env); 
     group_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, 
                 "AXIS2_XML_SCHEMA_GROUP", AXIS2_HASH_KEY_STRING));
-
-    return group_impl->particle;
+    */
+    return AXIS2_INTF_TO_IMPL(group)->particle;
 }
 
 axis2_status_t AXIS2_CALL
@@ -371,6 +380,7 @@
                                     axis2_xml_schema_group_base_t *particle)
 {
     axis2_xml_schema_group_impl_t *group_impl = NULL;
+    /*
     axis2_hash_t *super = NULL;
     
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
@@ -379,7 +389,9 @@
     super = AXIS2_XML_SCHEMA_GROUP_SUPER_OBJS(group, env); 
     group_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, 
                 "AXIS2_XML_SCHEMA_GROUP", AXIS2_HASH_KEY_STRING));
-
+    */
+    group_impl = AXIS2_INTF_TO_IMPL(group);
+    
     if(NULL != group_impl->particle)
     {
         /** TODO Free particle */

Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_base.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_base.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_base.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_base.c Mon May 15 02:31:10 2006
@@ -30,7 +30,9 @@
     axis2_xml_schema_particle_t *particle;
     
     axis2_xml_schema_types_t obj_type;
-    axis2_hash_t *super;
+    
+    axis2_hash_t *ht_super;
+    
     axis2_hash_t *methods;
     
     axis2_xml_schema_obj_collection_t *items;
@@ -63,12 +65,19 @@
 axis2_xml_schema_group_base_get_items(void *group_base,
                                         axis2_env_t **env);
 
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_group_base_to_string(void *group_base,
+                                      axis2_env_t **env,
+                                      axis2_char_t *prefix,
+                                      int tab);
+                                      
 /***********************************************************************/
  
 AXIS2_DECLARE(axis2_xml_schema_group_base_t *)
 axis2_xml_schema_group_base_create(axis2_env_t **env)
 {
     axis2_xml_schema_group_base_impl_t *group_base_impl = NULL;
+    axis2_xml_schema_annotated_t *annotated = NULL;
     axis2_status_t status = AXIS2_FAILURE;
     
     group_base_impl = AXIS2_MALLOC((*env)->allocator, 
@@ -81,7 +90,7 @@
 
     group_base_impl->particle = NULL;
     group_base_impl->obj_type = AXIS2_XML_SCHEMA_GROUP_BASE;
-    group_base_impl->super = NULL;
+    group_base_impl->ht_super = NULL;
     group_base_impl->methods = NULL;
     group_base_impl->items = NULL;
     group_base_impl->group_base.ops = NULL;
@@ -98,15 +107,22 @@
 
     group_base_impl->group_base.ops->free = 
         axis2_xml_schema_group_base_free;
+    
     group_base_impl->group_base.ops->super_objs = 
         axis2_xml_schema_group_base_super_objs;
+    
     group_base_impl->group_base.ops->type = 
         axis2_xml_schema_group_base_type;
+    
     group_base_impl->group_base.ops->get_base_impl = 
         axis2_xml_schema_group_base_get_base_impl;
+    
     group_base_impl->group_base.ops->get_items = 
         axis2_xml_schema_group_base_get_items;
-   
+        
+    group_base_impl->group_base.ops->to_string =
+        axis2_xml_schema_group_base_to_string;        
+        
     group_base_impl->methods = axis2_hash_make(env);
     if(!group_base_impl->methods)
     {
@@ -122,6 +138,8 @@
             axis2_xml_schema_group_base_super_objs);
     axis2_hash_set(group_base_impl->methods, "get_items", AXIS2_HASH_KEY_STRING, 
             axis2_xml_schema_group_base_get_items);
+    axis2_hash_set(group_base_impl->methods, "to_string", AXIS2_HASH_KEY_STRING,
+            axis2_xml_schema_group_base_to_string);            
     
     group_base_impl->particle = axis2_xml_schema_particle_create(env);
     if(!group_base_impl->particle)
@@ -131,17 +149,29 @@
         return NULL;
     }
 
-    group_base_impl->super = axis2_hash_make(env);
-    if(!group_base_impl->super)
+    group_base_impl->ht_super = axis2_hash_make(env);
+    if(!group_base_impl->ht_super)
     {
         axis2_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->super, "AXIS2_XML_SCHEMA_GROUP_BASE", 
+    axis2_hash_set(group_base_impl->ht_super, "AXIS2_XML_SCHEMA_GROUP_BASE", 
             AXIS2_HASH_KEY_STRING, &(group_base_impl->group_base) );
-    axis2_hash_set(group_base_impl->super, "AXIS2_XML_SCHEMA_PARTICLE", 
+    
+    axis2_hash_set(group_base_impl->ht_super, "AXIS2_XML_SCHEMA_PARTICLE", 
             AXIS2_HASH_KEY_STRING, group_base_impl->particle );
+            
+    annotated = AXIS2_XML_SCHEMA_PARTICLE_GET_BASE_IMPL(group_base_impl->particle, env);
+    if(NULL != annotated)
+    {
+        axis2_hash_set(group_base_impl->ht_super, "AXIS2_XML_SCHEMA_ANNOTATED",
+            AXIS2_HASH_KEY_STRING, annotated);
+        axis2_hash_set(group_base_impl->ht_super, "AXIS2_XML_SCHEMA_OBJ",
+            AXIS2_HASH_KEY_STRING, AXIS2_XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(annotated, env));    
+    }        
+    
+    group_base_impl->items = axis2_xml_schema_obj_collection_create(env);   
  
     status = axis2_xml_schema_particle_resolve_methods(
             &(group_base_impl->group_base.base), env, group_base_impl->particle, 
@@ -149,6 +179,16 @@
     return &(group_base_impl->group_base);
 }
 
+
+AXIS2_DECLARE(axis2_xml_schema_group_base_t *)
+axis2_xml_schema_all_create(axis2_env_t **env)
+{
+    axis2_xml_schema_group_base_t *grp_base = NULL;
+    grp_base = axis2_xml_schema_group_base_create(env);
+    AXIS2_INTF_TO_IMPL(grp_base)->obj_type = AXIS2_XML_SCHEMA_ALL;
+    return grp_base;    
+}
+
 axis2_status_t AXIS2_CALL
 axis2_xml_schema_group_base_free(void *group_base,
                             axis2_env_t **env)
@@ -164,10 +204,10 @@
         group_base_impl->items = NULL;
     }
  
-    if(NULL != group_base_impl->super)
+    if(NULL != group_base_impl->ht_super)
     {
-        axis2_hash_free(group_base_impl->super, env);
-        group_base_impl->super = NULL;
+        axis2_hash_free(group_base_impl->ht_super, env);
+        group_base_impl->ht_super = NULL;
     }
  
     if(NULL != group_base_impl->methods)
@@ -206,11 +246,10 @@
         axis2_env_t **env)
 {
     axis2_xml_schema_group_base_impl_t *group_base_impl = NULL;
-
     AXIS2_ENV_CHECK(env, NULL);
     group_base_impl = AXIS2_INTF_TO_IMPL(group_base);
 
-    return group_base_impl->super;
+    return group_base_impl->ht_super;
 }
 
 axis2_xml_schema_types_t AXIS2_CALL
@@ -219,10 +258,8 @@
         axis2_env_t **env)
 {
     axis2_xml_schema_group_base_impl_t *group_base_impl = NULL;
-
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     group_base_impl = AXIS2_INTF_TO_IMPL(group_base);
-
     return group_base_impl->obj_type;
 }
 
@@ -232,13 +269,12 @@
         axis2_env_t **env)
 {
     axis2_xml_schema_group_base_impl_t *group_base_impl = NULL;
-
     AXIS2_ENV_CHECK(env, NULL);
     group_base_impl = AXIS2_INTF_TO_IMPL(group_base);
-
     return group_base_impl->particle;
 }
 
+/*
 AXIS2_DECLARE(axis2_status_t)
 axis2_xml_schema_group_base_resolve_methods(
        axis2_xml_schema_group_base_t *group_base,
@@ -278,11 +314,13 @@
     return axis2_xml_schema_particle_resolve_methods(&(group_base->base), 
             env, group_base_impl_l->particle, methods);
 }
+*/
 
 axis2_xml_schema_obj_collection_t *AXIS2_CALL
 axis2_xml_schema_group_base_get_items(void *group_base,
                                         axis2_env_t **env)
 {
+    /*
     axis2_xml_schema_group_base_impl_t *group_base_impl = NULL;
     axis2_hash_t *super = NULL;
     
@@ -290,7 +328,16 @@
     super = AXIS2_XML_SCHEMA_GROUP_BASE_SUPER_OBJS(group_base, env); 
     group_base_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, 
                 "AXIS2_XML_SCHEMA_GROUP_BASE", AXIS2_HASH_KEY_STRING));
-    
+    */
     return AXIS2_INTF_TO_IMPL(group_base)->items;
 }
 
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_group_base_to_string(void *group_base,
+                                      axis2_env_t **env,
+                                      axis2_char_t *prefix,
+                                      int tab)
+{
+    /** TODO */
+    return AXIS2_SUCCESS;
+}                                      
\ No newline at end of file

Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_ref.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_ref.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_ref.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_ref.c Mon May 15 02:31:10 2006
@@ -31,7 +31,9 @@
     axis2_xml_schema_particle_t *base;
     
     axis2_xml_schema_types_t obj_type;
-    axis2_hash_t *super;
+    
+    axis2_hash_t *ht_super;
+    
     axis2_hash_t *methods;
     
     axis2_qname_t *ref_qname;
@@ -77,11 +79,13 @@
 axis2_xml_schema_group_ref_set_particle(void *group_ref,
                                     axis2_env_t **env,
                                     axis2_xml_schema_group_base_t *particle);
+/************************** end function pointers **************************/
 
 AXIS2_DECLARE(axis2_xml_schema_group_ref_t *)
 axis2_xml_schema_group_ref_create(axis2_env_t **env)
 {
     axis2_xml_schema_group_ref_impl_t *group_ref_impl = NULL;
+    axis2_xml_schema_annotated_t *annotated = NULL;
     axis2_status_t status = AXIS2_FAILURE;
 
     group_ref_impl = AXIS2_MALLOC((*env)->allocator, 
@@ -95,7 +99,7 @@
     group_ref_impl->group_ref.base.ops = NULL;
     group_ref_impl->base = NULL;
     group_ref_impl->obj_type = AXIS2_XML_SCHEMA_GROUP_REF;
-    group_ref_impl->super = NULL;
+    group_ref_impl->ht_super = NULL;
     group_ref_impl->methods = NULL;
     group_ref_impl->ref_qname = NULL;
     group_ref_impl->particle = NULL;
@@ -117,12 +121,16 @@
             axis2_xml_schema_group_ref_super_objs;
     group_ref_impl->group_ref.ops->type = 
             axis2_xml_schema_group_ref_type;
+    
     group_ref_impl->group_ref.ops->get_base_impl = 
             axis2_xml_schema_group_ref_get_base_impl;
+    
     group_ref_impl->group_ref.ops->get_ref_qname = 
             axis2_xml_schema_group_ref_get_ref_qname;
+    
     group_ref_impl->group_ref.ops->set_ref_qname = 
             axis2_xml_schema_group_ref_set_ref_qname;
+    
     group_ref_impl->group_ref.ops->get_particle = 
             axis2_xml_schema_group_ref_get_particle;
    
@@ -142,8 +150,8 @@
     axis2_hash_set(group_ref_impl->methods, "get_ref_qname", 
             AXIS2_HASH_KEY_STRING, axis2_xml_schema_group_ref_get_ref_qname);
     axis2_hash_set(group_ref_impl->methods, "set_ref_qname", 
-            AXIS2_HASH_KEY_STRING, axis2_xml_schema_group_ref_get_ref_qname);
-    axis2_hash_set(group_ref_impl->methods, "set_particle", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_group_ref_set_ref_qname);
+    axis2_hash_set(group_ref_impl->methods, "get_particle", 
             AXIS2_HASH_KEY_STRING, axis2_xml_schema_group_ref_get_particle);
     
     group_ref_impl->base = axis2_xml_schema_particle_create(env);
@@ -152,17 +160,27 @@
         axis2_xml_schema_group_ref_free(&(group_ref_impl->group_ref), env);
         return NULL;
     }
-    group_ref_impl->super = axis2_hash_make(env);
-    if(!group_ref_impl->super)
+    group_ref_impl->ht_super = axis2_hash_make(env);
+    if(!group_ref_impl->ht_super)
     {
         axis2_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->super, "AXIS2_XML_SCHEMA_GROUP_REF", 
+
+    axis2_hash_set(group_ref_impl->ht_super, "AXIS2_XML_SCHEMA_GROUP_REF", 
             AXIS2_HASH_KEY_STRING, &(group_ref_impl->group_ref) );
-    axis2_hash_set(group_ref_impl->super, "AXIS2_XML_SCHEMA_PARTICLE", 
+    axis2_hash_set(group_ref_impl->ht_super, "AXIS2_XML_SCHEMA_PARTICLE", 
             AXIS2_HASH_KEY_STRING, group_ref_impl->particle );
+    
+    annotated = AXIS2_XML_SCHEMA_PARTICLE_GET_BASE_IMPL(group_ref_impl->particle, env);
+    if(NULL != annotated)
+    {
+        axis2_hash_set(group_ref_impl->ht_super, "AXIS2_XML_SCHEMA_ANNOTATED",
+            AXIS2_HASH_KEY_STRING, annotated);
+        axis2_hash_set(group_ref_impl->ht_super, "AXIS2_XML_SCHEMA_OBJ",
+            AXIS2_HASH_KEY_STRING, AXIS2_XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(annotated, env));            
+    }
  
     status = axis2_xml_schema_particle_resolve_methods(
             &(group_ref_impl->group_ref.base), env, group_ref_impl->base, 
@@ -192,10 +210,10 @@
         group_ref_impl->particle = NULL;
     }
  
-    if(NULL != group_ref_impl->super)
+    if(NULL != group_ref_impl->ht_super)
     {
-        axis2_hash_free(group_ref_impl->super, env);
-        group_ref_impl->super = NULL;
+        axis2_hash_free(group_ref_impl->ht_super, env);
+        group_ref_impl->ht_super = NULL;
     }
     
     if(NULL != group_ref_impl->methods)
@@ -231,11 +249,9 @@
         axis2_env_t **env)
 {
     axis2_xml_schema_group_ref_impl_t *group_ref_impl = NULL;
-
     AXIS2_ENV_CHECK(env, NULL);
     group_ref_impl = AXIS2_INTF_TO_IMPL(group_ref);
-
-    return group_ref_impl->super;
+    return group_ref_impl->ht_super;
 }
 
 axis2_xml_schema_types_t AXIS2_CALL
@@ -244,10 +260,8 @@
         axis2_env_t **env)
 {
     axis2_xml_schema_group_ref_impl_t *group_ref_impl = NULL;
-
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     group_ref_impl = AXIS2_INTF_TO_IMPL(group_ref);
-
     return group_ref_impl->obj_type;
 }
 
@@ -256,13 +270,12 @@
                                 axis2_env_t **env)
 {
     axis2_xml_schema_group_ref_impl_t *group_ref_impl = NULL;
-
     AXIS2_ENV_CHECK(env, NULL);
     group_ref_impl = AXIS2_INTF_TO_IMPL(group_ref);
-
     return group_ref_impl->base;
 }
 
+/*
 AXIS2_DECLARE(axis2_status_t)
 axis2_xml_schema_group_ref_resolve_methods(
                                 axis2_xml_schema_group_ref_t *group_ref,
@@ -308,20 +321,22 @@
     return axis2_xml_schema_particle_resolve_methods(&(group_ref->base), 
             env, group_ref_impl_l->base, methods);
 }
+*/
 
 axis2_qname_t *AXIS2_CALL
 axis2_xml_schema_group_ref_get_ref_qname(void *group_ref,
                                 axis2_env_t **env)
 {
-    axis2_xml_schema_group_ref_impl_t *group_ref_impl = NULL;
+/*    axis2_xml_schema_group_ref_impl_t *group_ref_impl = NULL;
     axis2_hash_t *super = NULL;
     
     AXIS2_ENV_CHECK(env, NULL);
     super = AXIS2_XML_SCHEMA_GROUP_REF_SUPER_OBJS(group_ref, env); 
     group_ref_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, 
                 "AXIS2_XML_SCHEMA_GROUP_REF", AXIS2_HASH_KEY_STRING));
+*/
     
-    return group_ref_impl->ref_qname;
+    return AXIS2_INTF_TO_IMPL(group_ref)->ref_qname;
 }
 
 axis2_status_t AXIS2_CALL
@@ -330,6 +345,7 @@
                                 axis2_qname_t *ref_qname)
 {
     axis2_xml_schema_group_ref_impl_t *group_ref_impl = NULL;
+    /*
     axis2_hash_t *super = NULL;
     
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
@@ -337,7 +353,8 @@
     group_ref_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, 
                 "AXIS2_XML_SCHEMA_GROUP_REF", AXIS2_HASH_KEY_STRING));
     
-
+    */
+    group_ref_impl = AXIS2_INTF_TO_IMPL(group_ref);
     if(group_ref_impl->ref_qname)
     {
         AXIS2_QNAME_FREE(group_ref_impl->ref_qname, env);
@@ -356,6 +373,7 @@
 axis2_xml_schema_group_ref_get_particle(void *group_ref,
                                         axis2_env_t **env)
 {
+/*
     axis2_xml_schema_group_ref_impl_t *group_ref_impl = NULL;
     axis2_hash_t *super = NULL;
 
@@ -363,7 +381,7 @@
     super = AXIS2_XML_SCHEMA_GROUP_REF_SUPER_OBJS(group_ref, env); 
     group_ref_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, 
                 "AXIS2_XML_SCHEMA_GROUP_REF", AXIS2_HASH_KEY_STRING));
-    
-    return group_ref_impl->particle;
+*/    
+    return AXIS2_INTF_TO_IMPL(group_ref)->particle;
 }
 

Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_identity_constraint.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_identity_constraint.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_identity_constraint.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_identity_constraint.c Mon May 15 02:31:10 2006
@@ -27,255 +27,363 @@
  */ 
 struct axis2_xml_schema_identity_constraint_impl
 {
-    axis2_xml_schema_identity_constraint_t identity_constraint;
+    axis2_xml_schema_identity_constraint_t id_constr;
     axis2_xml_schema_annotated_t *annotated;
-    axis2_hash_t *methods;
     axis2_xml_schema_obj_collection_t *fields;
     axis2_char_t *name;
     axis2_xml_schema_xpath_t *selector;
+    
+    /** keyref field */
+    axis2_qname_t *refer;
+    
+    axis2_hash_t *methods;
+    axis2_hash_t *ht_super;
+    axis2_xml_schema_types_t obj_type;
 };
 
-#define AXIS2_INTF_TO_IMPL(identity_constraint) ((axis2_xml_schema_identity_constraint_impl_t *) identity_constraint)
+#define AXIS2_INTF_TO_IMPL(id_constr) \
+        ((axis2_xml_schema_identity_constraint_impl_t *) id_constr)
 
 axis2_status_t AXIS2_CALL 
-axis2_xml_schema_identity_constraint_free(void *identity_constraint,
+axis2_xml_schema_identity_constraint_free(void *id_constr,
                         axis2_env_t **env);
 
 axis2_xml_schema_annotated_t *AXIS2_CALL
-axis2_xml_schema_identity_constraint_get_base_impl(void *identity_constraint,
+axis2_xml_schema_identity_constraint_get_base_impl(void *id_constr,
+                                        axis2_env_t **env);
+                                        
+
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_schema_identity_constraint_type(void *id_constr,
                                         axis2_env_t **env);
+                                        
 
+axis2_hash_t* AXIS2_CALL
+axis2_xml_schema_identity_constraint_super_objs(void *id_constr,
+                                        axis2_env_t **env);                                                                                
+axis2_qname_t* AXIS2_CALL
+axis2_xml_schema_identity_constraint_get_refer(void *id_constr,
+                                             axis2_env_t **env); 
+                                             
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_identity_constraint_set_refer(void *id_constr,
+                                             axis2_env_t **env,
+                                              axis2_qname_t *refer);                                                                                  
+                                        
 axis2_xml_schema_obj_collection_t *AXIS2_CALL
-axis2_xml_schema_identity_constraint_get_fields(void *identity_constraint,
+axis2_xml_schema_identity_constraint_get_fields(void *id_constr,
                                 axis2_env_t **env);
 
 axis2_char_t *AXIS2_CALL
-axis2_xml_schema_identity_constraint_get_name(void *identity_constraint,
+axis2_xml_schema_identity_constraint_get_name(void *id_constr,
                                 axis2_env_t **env);
 
 axis2_status_t AXIS2_CALL
-axis2_xml_schema_identity_constraint_set_name(void *identity_constraint,
+axis2_xml_schema_identity_constraint_set_name(void *id_constr,
                                 axis2_env_t **env,
                                 axis2_char_t *name);
 
 axis2_xml_schema_xpath_t *AXIS2_CALL
-axis2_xml_schema_identity_constraint_get_selector(void *identity_constraint,
+axis2_xml_schema_identity_constraint_get_selector(void *id_constr,
                                         axis2_env_t **env);
 
 axis2_status_t AXIS2_CALL
-axis2_xml_schema_identity_constraint_set_selector(void *identity_constraint,
+axis2_xml_schema_identity_constraint_set_selector(void *id_constr,
                                     axis2_env_t **env,
                                     axis2_xml_schema_xpath_t *selector);
 
 AXIS2_DECLARE(axis2_xml_schema_identity_constraint_t *)
 axis2_xml_schema_identity_constraint_create(axis2_env_t **env)
 {
-    axis2_xml_schema_identity_constraint_impl_t *identity_constraint_impl = NULL;
+    axis2_xml_schema_identity_constraint_impl_t *id_cns_impl = NULL;
     axis2_status_t status = AXIS2_FAILURE;
 
-    identity_constraint_impl = AXIS2_MALLOC((*env)->allocator, 
+    id_cns_impl = AXIS2_MALLOC((*env)->allocator, 
                     sizeof(axis2_xml_schema_identity_constraint_impl_t));
-    if(!identity_constraint_impl)
+    if(!id_cns_impl)
     {
         AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
     }                    
 
-    identity_constraint_impl->annotated = NULL;
-    identity_constraint_impl->methods = NULL;
-    identity_constraint_impl->fields = NULL;
-    identity_constraint_impl->name = NULL;
-    identity_constraint_impl->selector = NULL;
-    identity_constraint_impl->identity_constraint.ops = AXIS2_MALLOC((*env)->allocator, 
+    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;
+    id_cns_impl->id_constr.base.ops = NULL;
+    id_cns_impl->id_constr.ops = NULL;
+    id_cns_impl->refer = NULL;
+    id_cns_impl->ht_super = NULL;
+    id_cns_impl->obj_type = AXIS2_XML_SCHEMA_IDENTITY_CONSTRAINT;
+    
+    id_cns_impl->id_constr.ops = AXIS2_MALLOC((*env)->allocator, 
                     sizeof(axis2_xml_schema_identity_constraint_ops_t));
-    if(!(identity_constraint_impl->identity_constraint.ops))
+    if(!(id_cns_impl->id_constr.ops))
     {
         axis2_xml_schema_identity_constraint_free(
-            &(identity_constraint_impl->identity_constraint), env);
+            &(id_cns_impl->id_constr), env);
         AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
     }
-    identity_constraint_impl->identity_constraint.ops->free = 
+    id_cns_impl->id_constr.ops->free = 
             axis2_xml_schema_identity_constraint_free;
-    identity_constraint_impl->identity_constraint.ops->get_base_impl = 
+    id_cns_impl->id_constr.ops->get_base_impl = 
             axis2_xml_schema_identity_constraint_get_base_impl;
-    identity_constraint_impl->identity_constraint.ops->get_fields = 
+    id_cns_impl->id_constr.ops->get_refer = 
+            axis2_xml_schema_identity_constraint_get_refer;
+    id_cns_impl->id_constr.ops->set_refer = 
+            axis2_xml_schema_identity_constraint_set_refer;
+    id_cns_impl->id_constr.ops->type = 
+            axis2_xml_schema_identity_constraint_type;
+    id_cns_impl->id_constr.ops->super_objs = 
+            axis2_xml_schema_identity_constraint_super_objs;
+    id_cns_impl->id_constr.ops->get_fields = 
             axis2_xml_schema_identity_constraint_get_fields;
-    identity_constraint_impl->identity_constraint.ops->get_name = 
+    id_cns_impl->id_constr.ops->get_name = 
             axis2_xml_schema_identity_constraint_get_name;
-    identity_constraint_impl->identity_constraint.ops->set_name = 
+    id_cns_impl->id_constr.ops->set_name = 
             axis2_xml_schema_identity_constraint_set_name;
-    identity_constraint_impl->identity_constraint.ops->get_selector = 
+    id_cns_impl->id_constr.ops->get_selector = 
             axis2_xml_schema_identity_constraint_get_selector;
-    identity_constraint_impl->identity_constraint.ops->set_selector = 
+    id_cns_impl->id_constr.ops->set_selector = 
             axis2_xml_schema_identity_constraint_set_selector;
    
-    identity_constraint_impl->methods = axis2_hash_make(env);
-    if(!identity_constraint_impl->methods)
+    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)
     {
+        axis2_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(identity_constraint_impl->methods, "free", AXIS2_HASH_KEY_STRING, 
+    axis2_hash_set(id_cns_impl->methods, "free", AXIS2_HASH_KEY_STRING, 
             axis2_xml_schema_identity_constraint_free);
-    axis2_hash_set(identity_constraint_impl->methods, "get_fields", 
+    axis2_hash_set(id_cns_impl->methods, "get_fields", 
             AXIS2_HASH_KEY_STRING, axis2_xml_schema_identity_constraint_get_fields);
-    axis2_hash_set(identity_constraint_impl->methods, "get_name", 
+    axis2_hash_set(id_cns_impl->methods, "type", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_identity_constraint_type);
+    axis2_hash_set(id_cns_impl->methods, "super_objs", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_identity_constraint_super_objs);
+    axis2_hash_set(id_cns_impl->methods, "get_refer", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_identity_constraint_get_refer);
+    axis2_hash_set(id_cns_impl->methods, "set_refer", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_identity_constraint_set_refer);
+    axis2_hash_set(id_cns_impl->methods, "get_name", 
             AXIS2_HASH_KEY_STRING, axis2_xml_schema_identity_constraint_get_name);
-    axis2_hash_set(identity_constraint_impl->methods, "set_name", 
+    axis2_hash_set(id_cns_impl->methods, "set_name", 
             AXIS2_HASH_KEY_STRING, axis2_xml_schema_identity_constraint_set_name);
-    axis2_hash_set(identity_constraint_impl->methods, "get_selector", 
+    axis2_hash_set(id_cns_impl->methods, "get_selector", 
             AXIS2_HASH_KEY_STRING, axis2_xml_schema_identity_constraint_get_selector);
-    axis2_hash_set(identity_constraint_impl->methods, "set_selector", 
+    axis2_hash_set(id_cns_impl->methods, "set_selector", 
             AXIS2_HASH_KEY_STRING, axis2_xml_schema_identity_constraint_set_selector);
     
-    identity_constraint_impl->annotated = axis2_xml_schema_annotated_create(env);
-    if(!identity_constraint_impl->annotated)
+    id_cns_impl->annotated = axis2_xml_schema_annotated_create(env);
+    if(!id_cns_impl->annotated)
+    {
+        axis2_xml_schema_identity_constraint_free(&(id_cns_impl->id_constr), env);
         return NULL;
+    }
+    
+    axis2_hash_set(id_cns_impl->ht_super, "AXIS2_XML_SCHEMA_IDENTITY_CONSTRAINT", 
+            AXIS2_HASH_KEY_STRING, &(id_cns_impl->id_constr));
+    axis2_hash_set(id_cns_impl->ht_super, "AXIS2_XML_SCHEMA_ANNOTATED", 
+            AXIS2_HASH_KEY_STRING, id_cns_impl->annotated);
+    axis2_hash_set(id_cns_impl->ht_super, "AXIS2_XML_SCHEMA_OBJ", 
+            AXIS2_HASH_KEY_STRING, 
+            AXIS2_XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(id_cns_impl->annotated, env));                 
     status = axis2_xml_schema_annotated_resolve_methods(
-            &(identity_constraint_impl->identity_constraint.base), 
-            env, identity_constraint_impl->annotated, 
-            identity_constraint_impl->methods);
-    return &(identity_constraint_impl->identity_constraint);
+            &(id_cns_impl->id_constr.base), 
+            env, id_cns_impl->annotated, 
+            id_cns_impl->methods);
+    return &(id_cns_impl->id_constr);
+}
+
+AXIS2_DECLARE(axis2_xml_schema_identity_constraint_t *)
+axis2_xml_schema_unique_create(axis2_env_t **env)
+{
+    axis2_xml_schema_identity_constraint_t *id_cns = NULL;
+    id_cns = axis2_xml_schema_identity_constraint_create(env);
+    AXIS2_INTF_TO_IMPL(id_cns)->obj_type = AXIS2_XML_SCHEMA_UNIQUE;
+    return id_cns;        
+}
+
+AXIS2_DECLARE(axis2_xml_schema_identity_constraint_t *)
+axis2_xml_schema_keyref_create(axis2_env_t **env)
+{
+    axis2_xml_schema_identity_constraint_t *id_cns = NULL;
+    id_cns = axis2_xml_schema_identity_constraint_create(env);
+    AXIS2_INTF_TO_IMPL(id_cns)->obj_type = AXIS2_XML_SCHEMA_KEYREF;
+    return id_cns;        
+}
+
+AXIS2_DECLARE(axis2_xml_schema_identity_constraint_t *)
+axis2_xml_schema_key_create(axis2_env_t **env)
+{
+    axis2_xml_schema_identity_constraint_t *id_cns = NULL;
+    id_cns = axis2_xml_schema_identity_constraint_create(env);
+    AXIS2_INTF_TO_IMPL(id_cns)->obj_type = AXIS2_XML_SCHEMA_KEY;
+    return id_cns;        
 }
 
+AXIS2_DECLARE(axis2_xml_schema_identity_constraint_t *)
+axis2_xml_schema_keyref_create(axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_xml_schema_identity_constraint_t *)
+axis2_xml_schema_key_create(axis2_env_t **env);
+
+
+
+
+
 axis2_status_t AXIS2_CALL
-axis2_xml_schema_identity_constraint_free(void *identity_constraint,
+axis2_xml_schema_identity_constraint_free(void *id_constr,
                                     axis2_env_t **env)
 {
-    axis2_xml_schema_identity_constraint_impl_t *identity_constraint_impl = NULL;
+    axis2_xml_schema_identity_constraint_impl_t *id_cns_impl = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    identity_constraint_impl = AXIS2_INTF_TO_IMPL(identity_constraint);
+    id_cns_impl = AXIS2_INTF_TO_IMPL(id_constr);
 
-    if(NULL != identity_constraint_impl->name)
+    if(NULL != id_cns_impl->name)
     {
-        AXIS2_FREE((*env)->allocator, identity_constraint_impl->name);
-        identity_constraint_impl->name = NULL;
+        AXIS2_FREE((*env)->allocator, id_cns_impl->name);
+        id_cns_impl->name = NULL;
     }
 
-    if(NULL != identity_constraint_impl->selector)
+    if(NULL != id_cns_impl->selector)
     {
-        AXIS2_XML_SCHEMA_XPATH_FREE(identity_constraint_impl->selector, env);
-        identity_constraint_impl->selector = NULL;
+        AXIS2_XML_SCHEMA_XPATH_FREE(id_cns_impl->selector, env);
+        id_cns_impl->selector = NULL;
     }
     
-    if(NULL != identity_constraint_impl->methods)
+    if(NULL != id_cns_impl->methods)
     {
-        axis2_hash_free(identity_constraint_impl->methods, env);
-        identity_constraint_impl->methods = NULL;
+        axis2_hash_free(id_cns_impl->methods, env);
+        id_cns_impl->methods = NULL;
     }
-
-    if(NULL != identity_constraint_impl->annotated)
+    if(NULL != id_cns_impl->ht_super)
     {
-        AXIS2_XML_SCHEMA_ANNOTATED_FREE(identity_constraint_impl->annotated, env);
-        identity_constraint_impl->annotated = NULL;
+        axis2_hash_free(id_cns_impl->ht_super, env);
+        id_cns_impl->ht_super = NULL;
+    }
+    if(NULL != id_cns_impl->refer)
+    {
+        AXIS2_QNAME_FREE(id_cns_impl->refer, env);
+        id_cns_impl->refer = NULL;
+    }
+    if(NULL != id_cns_impl->annotated)
+    {
+        AXIS2_XML_SCHEMA_ANNOTATED_FREE(id_cns_impl->annotated, env);
+        id_cns_impl->annotated = NULL;
     }
     
-    if(NULL != identity_constraint_impl->identity_constraint.ops)
+    if(NULL != id_cns_impl->id_constr.ops)
     {
-        AXIS2_FREE((*env)->allocator, identity_constraint_impl->identity_constraint.ops);
-        identity_constraint_impl->identity_constraint.ops = NULL;
+        AXIS2_FREE((*env)->allocator, id_cns_impl->id_constr.ops);
+        id_cns_impl->id_constr.ops = NULL;
     }
-    if(NULL != identity_constraint_impl->identity_constraint.base.ops)
+    if(NULL != id_cns_impl->id_constr.base.ops)
     {
-        AXIS2_FREE((*env)->allocator, identity_constraint_impl->identity_constraint.base.ops);
-        identity_constraint_impl->identity_constraint.base.ops = NULL;
+        AXIS2_FREE((*env)->allocator, id_cns_impl->id_constr.base.ops);
+        id_cns_impl->id_constr.base.ops = NULL;
     }
 
-    if(NULL != identity_constraint_impl)
+    if(NULL != id_cns_impl)
     {
-        AXIS2_FREE((*env)->allocator, identity_constraint_impl);
-        identity_constraint_impl = NULL;
+        AXIS2_FREE((*env)->allocator, id_cns_impl);
+        id_cns_impl = NULL;
     }
     return AXIS2_SUCCESS;
 }
 
 axis2_xml_schema_annotated_t *AXIS2_CALL
-axis2_xml_schema_identity_constraint_get_base_impl(void *identity_constraint,
+axis2_xml_schema_identity_constraint_get_base_impl(void *id_constr,
                                 axis2_env_t **env)
 {
-    axis2_xml_schema_identity_constraint_impl_t *identity_constraint_impl = NULL;
+    axis2_xml_schema_identity_constraint_impl_t *id_cns_impl = NULL;
 
     AXIS2_ENV_CHECK(env, NULL);
-    identity_constraint_impl = AXIS2_INTF_TO_IMPL(identity_constraint);
+    id_cns_impl = AXIS2_INTF_TO_IMPL(id_constr);
 
-    return identity_constraint_impl->annotated;
+    return id_cns_impl->annotated;
 }
 
+/*
 AXIS2_DECLARE(axis2_status_t)
 axis2_xml_schema_identity_constraint_resolve_methods(
-                axis2_xml_schema_identity_constraint_t *identity_constraint,
+                axis2_xml_schema_identity_constraint_t *id_constr,
                 axis2_env_t **env,
-                axis2_xml_schema_identity_constraint_t *identity_constraint_impl,
+                axis2_xml_schema_identity_constraint_t *id_cns_impl,
                 axis2_hash_t *methods)
 {
     axis2_xml_schema_identity_constraint_impl_t *identity_constraint_impl_l = NULL;
 
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    AXIS2_PARAM_CHECK((*env)->error, identity_constraint_impl, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, id_cns_impl, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, methods, AXIS2_FAILURE);
     
-    identity_constraint_impl_l = (axis2_xml_schema_identity_constraint_impl_t *) identity_constraint_impl;
+    identity_constraint_impl_l = (axis2_xml_schema_identity_constraint_impl_t *) id_cns_impl;
     
-    identity_constraint->ops = AXIS2_MALLOC((*env)->allocator, 
+    id_constr->ops = AXIS2_MALLOC((*env)->allocator, 
             sizeof(axis2_xml_schema_identity_constraint_ops_t));
-    if(NULL == identity_constraint->ops)
+    if(NULL == id_constr->ops)
     {
         AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return AXIS2_FAILURE;
     }            
-    identity_constraint->ops->free = axis2_hash_get(methods, "free", 
+    id_constr->ops->free = axis2_hash_get(methods, "free", 
             AXIS2_HASH_KEY_STRING);
-    identity_constraint->ops->get_base_impl = 
-            identity_constraint_impl_l->identity_constraint.ops->get_base_impl;
-    identity_constraint->ops->get_fields = 
-            identity_constraint_impl_l->identity_constraint.ops->get_fields;
-    identity_constraint->ops->get_name = 
-            identity_constraint_impl_l->identity_constraint.ops->get_name;
-    identity_constraint->ops->set_name = 
-            identity_constraint_impl_l->identity_constraint.ops->set_name;
-    identity_constraint->ops->get_selector = 
-            identity_constraint_impl_l->identity_constraint.ops->get_selector;
-    identity_constraint->ops->set_selector = 
-            identity_constraint_impl_l->identity_constraint.ops->set_selector;
+    id_constr->ops->get_base_impl = 
+            identity_constraint_impl_l->id_constr.ops->get_base_impl;
+    id_constr->ops->get_fields = 
+            identity_constraint_impl_l->id_constr.ops->get_fields;
+    id_constr->ops->get_name = 
+            identity_constraint_impl_l->id_constr.ops->get_name;
+    id_constr->ops->set_name = 
+            identity_constraint_impl_l->id_constr.ops->set_name;
+    id_constr->ops->get_selector = 
+            identity_constraint_impl_l->id_constr.ops->get_selector;
+    id_constr->ops->set_selector = 
+            identity_constraint_impl_l->id_constr.ops->set_selector;
     
-    return axis2_xml_schema_annotated_resolve_methods(&(identity_constraint->base), 
+    return axis2_xml_schema_annotated_resolve_methods(&(id_constr->base), 
             env, identity_constraint_impl_l->annotated, methods);
 }
-
+*/
 axis2_xml_schema_obj_collection_t *AXIS2_CALL
-axis2_xml_schema_identity_constraint_get_fields(void *identity_constraint,
+axis2_xml_schema_identity_constraint_get_fields(void *id_constr,
                                                 axis2_env_t **env)
 {
     AXIS2_ENV_CHECK(env, NULL);
-    return AXIS2_INTF_TO_IMPL(identity_constraint)->fields;
+    return AXIS2_INTF_TO_IMPL(id_constr)->fields;
 }
 axis2_char_t *AXIS2_CALL
-axis2_xml_schema_identity_constraint_get_name(void *identity_constraint,
+axis2_xml_schema_identity_constraint_get_name(void *id_constr,
                                 axis2_env_t **env)
 {
     AXIS2_ENV_CHECK(env, NULL);
-    return AXIS2_INTF_TO_IMPL(identity_constraint)->name;
+    return AXIS2_INTF_TO_IMPL(id_constr)->name;
 }
 
 axis2_status_t AXIS2_CALL
-axis2_xml_schema_identity_constraint_set_name(void *identity_constraint,
+axis2_xml_schema_identity_constraint_set_name(void *id_constr,
                                 axis2_env_t **env,
                                 axis2_char_t *name)
 {
-    axis2_xml_schema_identity_constraint_impl_t *identity_constraint_impl = NULL;
+    axis2_xml_schema_identity_constraint_impl_t *id_cns_impl = NULL;
     
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
-    identity_constraint_impl = AXIS2_INTF_TO_IMPL(identity_constraint);
+    id_cns_impl = AXIS2_INTF_TO_IMPL(id_constr);
 
-    if(identity_constraint_impl->name)
+    if(id_cns_impl->name)
     {
-        AXIS2_FREE((*env)->allocator, identity_constraint_impl->name);
-        identity_constraint_impl->name = NULL;
+        AXIS2_FREE((*env)->allocator, id_cns_impl->name);
+        id_cns_impl->name = NULL;
     }
-    identity_constraint_impl->name = AXIS2_STRDUP(name, env);
-    if(!identity_constraint_impl->name)
+    id_cns_impl->name = AXIS2_STRDUP(name, env);
+    if(!id_cns_impl->name)
     {
         AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return AXIS2_FAILURE;
@@ -284,25 +392,66 @@
 }
 
 axis2_xml_schema_xpath_t *AXIS2_CALL
-axis2_xml_schema_identity_constraint_get_selector(void *identity_constraint,
+axis2_xml_schema_identity_constraint_get_selector(void *id_constr,
                                                     axis2_env_t **env)
 {
     AXIS2_ENV_CHECK(env, NULL);
-    return AXIS2_INTF_TO_IMPL(identity_constraint)->selector;
+    return AXIS2_INTF_TO_IMPL(id_constr)->selector;
 }
 
 axis2_status_t AXIS2_CALL
-axis2_xml_schema_identity_constraint_set_selector(void *identity_constraint,
+axis2_xml_schema_identity_constraint_set_selector(void *id_constr,
                                     axis2_env_t **env,
                                     axis2_xml_schema_xpath_t *selector)
 {
-    axis2_xml_schema_identity_constraint_impl_t *identity_constraint_impl = NULL;
+    axis2_xml_schema_identity_constraint_impl_t *id_cns_impl = NULL;
     
     AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
     AXIS2_PARAM_CHECK((*env)->error, selector, AXIS2_FAILURE);
-    identity_constraint_impl = AXIS2_INTF_TO_IMPL(identity_constraint);
+    id_cns_impl = AXIS2_INTF_TO_IMPL(id_constr);
     
-    identity_constraint_impl->selector = selector;
+    id_cns_impl->selector = selector;
     return AXIS2_SUCCESS;
 }
 
+
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_schema_identity_constraint_type(void *id_constr,
+                                        axis2_env_t **env)
+{
+    return AXIS2_INTF_TO_IMPL(id_constr)->obj_type;
+}                                        
+                                        
+
+axis2_hash_t* AXIS2_CALL
+axis2_xml_schema_identity_constraint_super_objs(void *id_constr,
+                                        axis2_env_t **env)
+{
+    return AXIS2_INTF_TO_IMPL(id_constr)->ht_super;
+}                                                                                   
+axis2_qname_t* AXIS2_CALL
+axis2_xml_schema_identity_constraint_get_refer(void *id_constr,
+                                             axis2_env_t **env)
+{
+    return AXIS2_INTF_TO_IMPL(id_constr)->refer;
+}                                             
+                                             
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_identity_constraint_set_refer(void *id_constr,
+                                             axis2_env_t **env,
+                                              axis2_qname_t *refer)
+{
+    axis2_xml_schema_identity_constraint_impl_t *id_cns_impl = NULL;
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, refer, AXIS2_FAILURE);
+    id_cns_impl = AXIS2_INTF_TO_IMPL(id_constr);
+    if(NULL != id_cns_impl->refer)
+    {   
+        /*
+        AXIS2_QNAME_FREE(id_cns_impl->reref, env);
+        id_cns_impl->reref = NULL;
+        */
+    }
+    id_cns_impl->refer = refer;
+    return AXIS2_SUCCESS;
+}                                              

Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_import.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_import.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_import.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_import.c Mon May 15 02:31:10 2006
@@ -28,6 +28,10 @@
     axis2_xml_schema_external_t *external;
         
     axis2_char_t *ns;
+    
+    axis2_hash_t *ht_super;
+    
+    axis2_xml_schema_types_t obj_type;
         
     axis2_hash_t *methods;
 
@@ -46,6 +50,13 @@
 axis2_xml_schema_import_get_base_impl(void *import,
                                         axis2_env_t **env);
 
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_schema_import_type(void *import,
+                            axis2_env_t **env);
+                            
+axis2_hash_t *AXIS2_CALL
+axis2_xml_schema_import_super_objs(void *import,
+                                    axis2_env_t **env);
 axis2_char_t* AXIS2_CALL
 axis2_xml_schema_import_get_namespace(void *import,
                                      axis2_env_t **env);
@@ -61,6 +72,7 @@
 axis2_xml_schema_import_create(axis2_env_t **env)
 {
     axis2_xml_schema_import_impl_t *import_impl = NULL;
+    axis2_xml_schema_annotated_t *annotated = NULL;
     axis2_status_t status = AXIS2_FAILURE;
 
     import_impl = AXIS2_MALLOC((*env)->allocator, 
@@ -75,6 +87,8 @@
     import_impl->methods = NULL;
     import_impl->import.ops = NULL;
     import_impl->import.base.ops = NULL;
+    import_impl->ht_super = NULL;
+    import_impl->obj_type = AXIS2_XML_SCHEMA_IMPORT;
     
     import_impl->import.ops = AXIS2_MALLOC((*env)->allocator, 
                     sizeof(axis2_xml_schema_import_ops_t));
@@ -90,15 +104,18 @@
         axis2_xml_schema_import_free;
     import_impl->import.ops->get_base_impl = 
         axis2_xml_schema_import_get_base_impl;
-        
+    import_impl->import.ops->type =
+        axis2_xml_schema_import_type;
+    import_impl->import.ops->super_objs =
+        axis2_xml_schema_import_super_objs;        
     import_impl->import.ops->get_namespace = 
             axis2_xml_schema_import_get_namespace;
-            
     import_impl->import.ops->set_namespace = 
             axis2_xml_schema_import_set_namespace;
 
     import_impl->methods = axis2_hash_make(env);
-    if(!import_impl->methods)
+    import_impl->ht_super = axis2_hash_make(env);
+    if(!import_impl->methods || !import_impl->ht_super)
     {
         axis2_xml_schema_import_free(&(import_impl->import), env);
         AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
@@ -107,7 +124,10 @@
 
     axis2_hash_set(import_impl->methods, "free", AXIS2_HASH_KEY_STRING, 
             axis2_xml_schema_import_free);
-
+    axis2_hash_set(import_impl->methods, "type", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_import_type);
+    axis2_hash_set(import_impl->methods, "super_objs", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_import_super_objs);
     axis2_hash_set(import_impl->methods, "get_namespace", 
             AXIS2_HASH_KEY_STRING, axis2_xml_schema_import_get_namespace);
     axis2_hash_set(import_impl->methods, "set_namespace", 
@@ -119,10 +139,26 @@
         axis2_xml_schema_import_free(&(import_impl->import), env);
         return NULL;
     }
+    
+    axis2_hash_set(import_impl->ht_super, "AXIS2_XML_SCHEMA_IMPORT", 
+            AXIS2_HASH_KEY_STRING, &(import_impl->import));
+    axis2_hash_set(import_impl->ht_super, "AXIS2_XML_SCHEMA_EXTERNAL", 
+            AXIS2_HASH_KEY_STRING, import_impl->external);
+
+    annotated = AXIS2_XML_SCHEMA_EXTERNAL_GET_BASE_IMPL(import_impl->external, env);
+    if(NULL != annotated)
+    { 
+        
+        axis2_hash_set(import_impl->ht_super, "AXIS2_XML_SCHEMA_ANNOTATED", 
+            AXIS2_HASH_KEY_STRING, annotated);
+        axis2_hash_set(import_impl->ht_super, "AXIS2_XML_SCHEMA_OBJ", 
+            AXIS2_HASH_KEY_STRING, 
+            AXIS2_XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(annotated, env));
+    }
+    
     status = axis2_xml_schema_external_resolve_methods(
             &(import_impl->import.base), env, import_impl->external, 
             import_impl->methods);
-
     return &(import_impl->import);
 }
 
@@ -140,7 +176,11 @@
         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);
+        import_impl->ht_super = NULL;
+    }
     if(NULL != import_impl->external)
     {
         AXIS2_XML_SCHEMA_EXTERNAL_FREE(import_impl->external, env);
@@ -174,6 +214,7 @@
     return import_impl->external;
 }
 
+/*
 AXIS2_DECLARE(axis2_status_t)
 axis2_xml_schema_import_resolve_methods(
                                 axis2_xml_schema_import_t *import,
@@ -205,7 +246,7 @@
     return axis2_xml_schema_external_resolve_methods(&(import->base), 
             env, import_impl_l->external, methods);
 }
-
+*/
 axis2_char_t * AXIS2_CALL
 axis2_xml_schema_import_get_namespace(void *import,
                                             axis2_env_t **env)
@@ -230,3 +271,17 @@
     import_impl->ns = ns;
     return AXIS2_SUCCESS;
 }
+
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_schema_import_type(void *import,
+                            axis2_env_t **env)
+{
+    return AXIS2_INTF_TO_IMPL(import)->obj_type;
+}                            
+                            
+axis2_hash_t *AXIS2_CALL
+axis2_xml_schema_import_super_objs(void *import,
+                                    axis2_env_t **env)
+{
+    return AXIS2_INTF_TO_IMPL(import)->ht_super;
+}                                    

Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_obj.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_obj.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_obj.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_obj.c Mon May 15 02:31:10 2006
@@ -17,7 +17,8 @@
 #include <xml_schema/axis2_xml_schema_obj.h>
 #include <axis2_hash.h>
 
-typedef struct axis2_xml_schema_obj_impl axis2_xml_schema_obj_impl_t;
+typedef struct axis2_xml_schema_obj_impl 
+                    axis2_xml_schema_obj_impl_t;
 
 /** 
  * @brief Xml Schema Obj Struct Impl
@@ -26,14 +27,20 @@
 struct axis2_xml_schema_obj_impl
 {
     axis2_xml_schema_obj_t obj;
+    
     axis2_xml_schema_types_t obj_type;
-    axis2_hash_t *super;
+    
+    axis2_hash_t *ht_super;
+    
     int line_num;
+    
     int line_pos;
+    
     axis2_char_t *source_uri;
 };
 
-#define AXIS2_INTF_TO_IMPL(obj) ((axis2_xml_schema_obj_impl_t *) obj)
+#define AXIS2_INTF_TO_IMPL(obj) \
+        ((axis2_xml_schema_obj_impl_t *) obj)
 
 /***************** function pointers ******************************************/
 
@@ -53,36 +60,43 @@
         axis2_env_t **env);
 
 axis2_char_t * AXIS2_CALL
-axis2_xml_schema_obj_get_source_uri(void *obj,
-                        axis2_env_t **env);
+axis2_xml_schema_obj_get_source_uri(
+        void *obj,
+        axis2_env_t **env);
 
 axis2_status_t AXIS2_CALL
-axis2_xml_schema_obj_set_source_uri(void *obj,
-                        axis2_env_t **env,
-                        axis2_char_t *source_uri);
+axis2_xml_schema_obj_set_source_uri(
+        void *obj,
+        axis2_env_t **env,
+        axis2_char_t *source_uri);
 
 axis2_bool_t AXIS2_CALL
-axis2_xml_schema_obj_equals(void *obj,
-                                axis2_env_t **env,
-                                void *obj_comp);
+axis2_xml_schema_obj_equals(
+        void *obj,
+        axis2_env_t **env,
+        void *obj_comp);
 
 int AXIS2_CALL
-axis2_xml_schema_obj_get_line_num(void *obj,
-                                    axis2_env_t **env);
+axis2_xml_schema_obj_get_line_num(
+        void *obj,
+        axis2_env_t **env);
 
 axis2_status_t AXIS2_CALL
-axis2_xml_schema_obj_set_line_num(void *obj,
-                        axis2_env_t **env,
-                        int line_num);
+axis2_xml_schema_obj_set_line_num(
+        void *obj,
+        axis2_env_t **env,
+        int line_num);
 
 int AXIS2_CALL
-axis2_xml_schema_obj_get_line_pos(void *obj,
-                                    axis2_env_t **env);
+axis2_xml_schema_obj_get_line_pos(
+        void *obj,
+        axis2_env_t **env);
 
 axis2_status_t AXIS2_CALL
-axis2_xml_schema_obj_set_line_pos(void *obj,
-                        axis2_env_t **env,
-                        int line_pos);
+axis2_xml_schema_obj_set_line_pos(
+        void *obj,
+        axis2_env_t **env,
+        int line_pos);
 
 /******************* end function pointers ************************************/
 
@@ -102,7 +116,7 @@
     }
 
     obj_impl->obj_type = AXIS2_XML_SCHEMA_OBJ;
-    obj_impl->super = NULL;
+    obj_impl->ht_super = NULL;
     obj_impl->line_num = -1;
     obj_impl->line_pos = -1;
     obj_impl->source_uri = NULL;
@@ -139,13 +153,13 @@
     obj_impl->obj.ops->equals = 
         axis2_xml_schema_obj_equals;
 
-    obj_impl->super = axis2_hash_make(env);
-    if(!obj_impl->super)
+    obj_impl->ht_super = axis2_hash_make(env);
+    if(!obj_impl->ht_super)
     {
         AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
         return NULL;
     }
-    axis2_hash_set(obj_impl->super, "AXIS2_XML_SCHEMA_OBJ", AXIS2_HASH_KEY_STRING, 
+    axis2_hash_set(obj_impl->ht_super, "AXIS2_XML_SCHEMA_OBJ", AXIS2_HASH_KEY_STRING, 
             &(obj_impl->obj));
     
     return &(obj_impl->obj);
@@ -166,10 +180,10 @@
         obj_impl->source_uri = NULL;
     }
 
-    if(obj_impl->super)
+    if(obj_impl->ht_super)
     {
-        axis2_hash_free(obj_impl->super, env);
-        obj_impl->super = NULL;
+        axis2_hash_free(obj_impl->ht_super, env);
+        obj_impl->ht_super = NULL;
     }
 
     if(NULL != obj_impl->obj.ops)
@@ -191,10 +205,8 @@
                 axis2_env_t **env)
 {
     axis2_xml_schema_obj_impl_t *obj_impl = NULL;
-
     obj_impl = AXIS2_INTF_TO_IMPL(obj);
-
-    return obj_impl->super;
+    return obj_impl->ht_super;
 }
 
 axis2_xml_schema_types_t AXIS2_CALL
@@ -203,9 +215,7 @@
         axis2_env_t **env)
 {
     axis2_xml_schema_obj_impl_t *obj_impl = NULL;
-
     obj_impl = AXIS2_INTF_TO_IMPL(obj);
-    
     return obj_impl->obj_type;
 }
 
@@ -276,11 +286,10 @@
     if(!obj->ops->set_source_uri)
             obj->ops->set_source_uri = 
             obj_impl_l->obj.ops->set_source_uri; 
-    
+
     obj->ops->equals = obj_impl_l->obj.ops->equals;
     
     return AXIS2_SUCCESS;    
-
 }
 int AXIS2_CALL
 axis2_xml_schema_obj_get_line_num(void *obj,
@@ -290,10 +299,14 @@
     axis2_hash_t *super = NULL;
 
     super = AXIS2_XML_SCHEMA_OBJ_SUPER_OBJS(obj, env);
-    obj_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_OBJ", 
-                AXIS2_HASH_KEY_STRING));
-    
-    return obj_impl->line_num;
+    if(NULL != super)
+    {
+        obj_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_OBJ", 
+                    AXIS2_HASH_KEY_STRING));
+        if(NULL != obj_impl)
+            return obj_impl->line_num;
+    }
+    return -1;
 }
 
 axis2_status_t AXIS2_CALL
@@ -305,9 +318,16 @@
     axis2_hash_t *super = NULL;
 
     super = AXIS2_XML_SCHEMA_OBJ_SUPER_OBJS(obj, env);
-    obj_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_OBJ", 
+    if(NULL != super)
+    {
+        obj_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_OBJ", 
                 AXIS2_HASH_KEY_STRING));
-
+    }
+    else
+    {
+        
+    
+    }
     obj_impl->line_num = line_num;
 
     return AXIS2_SUCCESS;
@@ -321,8 +341,11 @@
     axis2_hash_t *super = NULL;
     
     super = AXIS2_XML_SCHEMA_OBJ_SUPER_OBJS(obj, env);
-    obj_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_OBJ", 
-                AXIS2_HASH_KEY_STRING));
+    if(NULL != super)
+    {
+        obj_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_OBJ", 
+                    AXIS2_HASH_KEY_STRING));
+    }
     return obj_impl->line_pos;
 }
 
@@ -335,11 +358,13 @@
     axis2_hash_t *super = NULL;
 
     super = AXIS2_XML_SCHEMA_OBJ_SUPER_OBJS(obj, env);
-    obj_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_OBJ", 
-                AXIS2_HASH_KEY_STRING));
-
-    obj_impl->line_pos = line_pos;
-
+    if(NULL != super)
+    {
+        obj_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_OBJ", 
+                    AXIS2_HASH_KEY_STRING));
+        if(NULL != obj_impl)
+            obj_impl->line_pos = line_pos;
+    }
     return AXIS2_SUCCESS;
 }
 
@@ -349,7 +374,9 @@
 {
     axis2_xml_schema_obj_impl_t *obj_impl = NULL;
     axis2_hash_t *super = NULL;
-    
+    super = AXIS2_XML_SCHEMA_OBJ_SUPER_OBJS(obj, env);
+    obj_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_OBJ", 
+                AXIS2_HASH_KEY_STRING));
     return obj_impl->source_uri;
 }
 
@@ -386,7 +413,10 @@
     super = AXIS2_XML_SCHEMA_OBJ_SUPER_OBJS(obj, env);
     obj_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_OBJ", 
                 AXIS2_HASH_KEY_STRING));
-
+    /****
+        TODO
+    
+    ***/
     return AXIS2_TRUE;
 }
 

Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_obj_table.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_obj_table.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_obj_table.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_obj_table.c Mon May 15 02:31:10 2006
@@ -48,7 +48,7 @@
 axis2_xml_schema_obj_table_get_count(axis2_xml_schema_obj_table_t *obj_table,
                                      axis2_env_t **env);
 
-axis2_xml_schema_obj_t *AXIS2_CALL
+void *AXIS2_CALL
 axis2_xml_schema_obj_table_get_item(axis2_xml_schema_obj_table_t *obj_table,
                                     axis2_env_t **env,
                                     axis2_qname_t *qname);
@@ -70,7 +70,7 @@
 axis2_xml_schema_obj_table_add(axis2_xml_schema_obj_table_t *obj_table,
                                     axis2_env_t **env,
                                     axis2_qname_t *qname,
-                                    axis2_xml_schema_obj_t *value);
+                                    void *value);
                                     
 /******************** end function pointers ***********************************/
 
@@ -179,10 +179,10 @@
         return -1;
 }   
 
-axis2_xml_schema_obj_t *AXIS2_CALL
+void *AXIS2_CALL
 axis2_xml_schema_obj_table_get_item(axis2_xml_schema_obj_table_t *obj_table,
-                                            axis2_env_t **env,
-                                            axis2_qname_t *qname)
+                                    axis2_env_t **env,
+                                    axis2_qname_t *qname)
 {
     axis2_xml_schema_obj_table_impl_t *obj_table_impl = NULL;
     axis2_char_t *name = NULL;
@@ -294,9 +294,9 @@
 
 axis2_status_t AXIS2_CALL
 axis2_xml_schema_obj_table_add(axis2_xml_schema_obj_table_t *obj_table,
-                                    axis2_env_t **env,
-                                    axis2_qname_t *qname,
-                                    axis2_xml_schema_obj_t *value)
+                                axis2_env_t **env,
+                                axis2_qname_t *qname,
+                                void *value)
 {
     axis2_xml_schema_obj_table_impl_t *obj_table_impl = NULL;
     axis2_char_t *name = NULL;