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/05/05 08:12:39 UTC

svn commit: r399982 [2/2] - in /webservices/axis2/trunk/c: include/xml_schema/ modules/xml/xml_schema/

Added: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_simple_content.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_simple_content.c?rev=399982&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_simple_content.c (added)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_simple_content.c Thu May  4 23:12:38 2006
@@ -0,0 +1,295 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <axis2_xml_schema_simple_content.h>
+
+typedef struct axis2_xml_schema_simple_content_impl 
+                    axis2_xml_schema_simple_content_impl_t;
+
+/** 
+ * @brief Other Extension Struct Impl
+ *	Axis2 Other Extension  
+ */ 
+struct axis2_xml_schema_simple_content_impl
+{
+    axis2_xml_schema_simple_content_t sim_content;
+    
+    axis2_xml_schema_annotated_t *annotated;
+    
+    axis2_hash_t *methods;
+    
+    void *content;
+    
+    int content_type;
+};
+
+#define AXIS2_INTF_TO_IMPL(sim_content) \
+        ((axis2_xml_schema_simple_content_impl_t *) sim_content)
+
+axis2_status_t AXIS2_CALL 
+axis2_xml_schema_simple_content_free(void *sim_content,
+                        axis2_env_t **env);
+
+axis2_xml_schema_annotated_t *AXIS2_CALL
+axis2_xml_schema_simple_content_get_base_impl(void *sim_content,
+                                        axis2_env_t **env);
+
+void* AXIS2_CALL
+axis2_xml_schema_simple_content_get_content(void *sim_content,
+                                            axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_simple_content_set_content(void *sim_content,
+                                            axis2_env_t **env,
+                                            void* content,
+                                            int content_type);
+
+int AXIS2_CALL
+axis2_xml_schema_simple_content_get_content_type(void *sim_content,
+                                                 axis2_env_t **env);
+
+axis2_char_t* AXIS2_CALL
+axis2_xml_schema_simple_content_to_string(void *sim_content,
+                                          axis2_env_t **env,
+                                          axis2_char_t *prefix, 
+                                          int tab);
+                                          
+
+AXIS2_DECLARE(axis2_xml_schema_simple_content_t *)
+axis2_xml_schema_simple_content_create(axis2_env_t **env)
+{
+    axis2_xml_schema_simple_content_impl_t *group_impl = NULL;
+    axis2_status_t status = AXIS2_FAILURE;
+
+    group_impl = (axis2_xml_schema_simple_content_impl_t*)AXIS2_MALLOC((*env)->allocator, 
+        sizeof(axis2_xml_schema_simple_content_impl_t));
+    if(!group_impl)
+    {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+    
+    group_impl->annotated = NULL;
+    group_impl->methods = NULL;
+    group_impl->content = NULL;
+    group_impl->content_type = -1;
+    group_impl->sim_content.base.ops = NULL;
+    group_impl->sim_content.ops = NULL;
+    
+    group_impl->sim_content.ops = AXIS2_MALLOC((*env)->allocator, 
+                    sizeof(axis2_xml_schema_simple_content_ops_t));
+    if(!group_impl->sim_content.ops)
+    {
+        axis2_xml_schema_simple_content_free(&(group_impl->sim_content), env);
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+
+
+    group_impl->sim_content.ops->free = 
+            axis2_xml_schema_simple_content_free;
+    group_impl->sim_content.ops->get_base_impl = 
+            axis2_xml_schema_simple_content_get_base_impl;
+    group_impl->sim_content.ops->get_content_type = 
+            axis2_xml_schema_simple_content_get_content_type;
+    group_impl->sim_content.ops->set_content = 
+            axis2_xml_schema_simple_content_set_content;
+    group_impl->sim_content.ops->get_content = 
+            axis2_xml_schema_simple_content_get_content;
+    group_impl->sim_content.ops->to_string = 
+            axis2_xml_schema_simple_content_to_string;
+   
+    group_impl->methods = axis2_hash_make(env);
+   
+    if(!group_impl->methods)
+    {
+        axis2_xml_schema_simple_content_free(&(group_impl->sim_content), 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, 
+            axis2_xml_schema_simple_content_free);
+    axis2_hash_set(group_impl->methods, "get_content", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_simple_content_get_content);
+    axis2_hash_set(group_impl->methods, "set_content", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_simple_content_set_content);
+    axis2_hash_set(group_impl->methods, "get_content_type", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_simple_content_get_content_type);
+    axis2_hash_set(group_impl->methods, "to_string", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_simple_content_to_string);
+    
+    group_impl->annotated = axis2_xml_schema_annotated_create(env);
+    if(!group_impl->annotated)
+    {
+        axis2_xml_schema_simple_content_free(&(group_impl->sim_content), env);
+        return NULL;
+    }
+    status = axis2_xml_schema_annotated_resolve_methods(
+            &(group_impl->sim_content.base), env, group_impl->annotated, 
+            group_impl->methods);
+    
+    return &(group_impl->sim_content);
+}
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_simple_content_free(void *sim_content,
+                                    axis2_env_t **env)
+{
+    axis2_xml_schema_simple_content_impl_t *group_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    group_impl = AXIS2_INTF_TO_IMPL(sim_content);
+
+    if(NULL != group_impl->content)
+    {
+        /** TODO */
+    }
+
+    if(NULL != group_impl->methods)
+    {
+        axis2_hash_free(group_impl->methods, env);
+        group_impl->methods = NULL;
+    }
+    if(NULL != group_impl->annotated)
+    {
+        AXIS2_XML_SCHEMA_ANNOTATED_FREE(group_impl->annotated, env);
+        group_impl->annotated = NULL;
+    }
+    if(NULL != group_impl->sim_content.base.ops)
+    {
+        AXIS2_FREE((*env)->allocator, group_impl->sim_content.base.ops);
+        group_impl->sim_content.base.ops = NULL;  
+    }
+    if(NULL != group_impl->sim_content.ops)
+    {
+        AXIS2_FREE((*env)->allocator, group_impl->sim_content.ops);
+        group_impl->sim_content.ops = NULL;
+    }
+ 
+    AXIS2_FREE((*env)->allocator, group_impl);
+    group_impl = NULL;
+    return AXIS2_SUCCESS;
+}
+
+axis2_xml_schema_annotated_t *AXIS2_CALL
+axis2_xml_schema_simple_content_get_base_impl(void *sim_content,
+                                axis2_env_t **env)
+{
+    axis2_xml_schema_simple_content_impl_t *group_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+    group_impl = AXIS2_INTF_TO_IMPL(sim_content);
+    return group_impl->annotated;
+}
+
+AXIS2_DECLARE(axis2_status_t)
+axis2_xml_schema_simple_content_resolve_methods(
+                                axis2_xml_schema_simple_content_t *sim_content,
+                                axis2_env_t **env,
+                                axis2_xml_schema_simple_content_t *group_impl,
+                                axis2_hash_t *methods)
+{
+    axis2_xml_schema_simple_content_impl_t *group_impl_l = NULL;
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, group_impl, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, methods, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, sim_content, AXIS2_FAILURE);
+    
+    group_impl_l = (axis2_xml_schema_simple_content_impl_t *) group_impl;
+    
+    sim_content->ops = AXIS2_MALLOC((*env)->allocator, 
+            sizeof(axis2_xml_schema_simple_content_ops_t));
+    if(!sim_content->ops)
+    {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return AXIS2_FAILURE;
+    }
+    sim_content->ops->free = axis2_hash_get(methods, "free", 
+            AXIS2_HASH_KEY_STRING);
+    sim_content->ops->get_base_impl = 
+            group_impl_l->sim_content.ops->get_base_impl;
+    sim_content->ops->get_content_type = 
+            group_impl_l->sim_content.ops->get_content_type;
+    sim_content->ops->get_content = 
+            group_impl_l->sim_content.ops->get_content;
+    sim_content->ops->set_content = 
+            group_impl_l->sim_content.ops->set_content;
+    sim_content->ops->to_string = 
+            group_impl_l->sim_content.ops->to_string;
+    
+    return axis2_xml_schema_annotated_resolve_methods(&(sim_content->base), 
+            env, group_impl_l->annotated, methods);
+}
+
+void* AXIS2_CALL
+axis2_xml_schema_simple_content_get_content(void *sim_content,
+                                axis2_env_t **env)
+{
+    AXIS2_ENV_CHECK(env, NULL);
+    return AXIS2_INTF_TO_IMPL(sim_content)->content;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_simple_content_set_content(void *sim_content,
+                                axis2_env_t **env,
+                                void *content,
+                                int content_type)
+{
+    axis2_xml_schema_simple_content_impl_t *group_impl = NULL;
+    
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, content, AXIS2_FAILURE);
+    
+    group_impl = AXIS2_INTF_TO_IMPL(sim_content);
+
+    if(NULL != group_impl->content)
+    {
+        /** TODO */
+        
+    }
+    group_impl->content = content;
+    group_impl->content_type = content_type;
+    
+    return AXIS2_SUCCESS;
+}
+
+int AXIS2_CALL
+axis2_xml_schema_simple_content_get_content_type(void *sim_content,
+                                        axis2_env_t **env)
+{
+    AXIS2_ENV_CHECK(env, -1);
+    return AXIS2_INTF_TO_IMPL(sim_content)->content_type;
+}
+
+axis2_char_t* AXIS2_CALL
+axis2_xml_schema_simple_content_to_string(void *sim_content,
+                                          axis2_env_t **env,
+                                          axis2_char_t *prefix, 
+                                          int tab)
+{
+    axis2_xml_schema_simple_content_impl_t *group_impl = NULL;
+    axis2_char_t *xml = NULL;
+    AXIS2_ENV_CHECK(env, NULL);
+
+    group_impl = AXIS2_INTF_TO_IMPL(sim_content);
+    if(NULL != prefix && AXIS2_STRCMP(prefix, "") != 0 && strchr(prefix, ':') == NULL)
+    {
+        xml = AXIS2_STRACAT(prefix, ":", env);
+    }
+    return xml;
+}
+

Added: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_simple_content_extension.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_simple_content_extension.c?rev=399982&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_simple_content_extension.c (added)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_simple_content_extension.c Thu May  4 23:12:38 2006
@@ -0,0 +1,304 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <axis2_xml_schema_complex_content_extension.h>
+
+typedef struct axis2_xml_schema_complex_content_extension_impl 
+                    axis2_xml_schema_complex_content_extension_impl_t;
+
+/** 
+ * @brief Other Extension Struct Impl
+ *	Axis2 Other Extension  
+ */ 
+struct axis2_xml_schema_complex_content_extension_impl
+{
+    axis2_xml_schema_complex_content_extension_t cmp_content_ext;
+    
+    axis2_xml_schema_annotated_t *annotated;
+    
+    axis2_hash_t *methods;
+    
+    axis2_xml_schema_obj_collection_t *attributes;
+    
+    axis2_xml_schema_any_attribute_t *any_attribute;
+    
+    axis2_qname_t *base_type_name;
+    
+    int type;
+};
+
+#define AXIS2_INTF_TO_IMPL(cmp_content_ext) \
+        ((axis2_xml_schema_complex_content_extension_impl_t *) cmp_content_ext)
+
+axis2_status_t AXIS2_CALL 
+axis2_xml_schema_complex_content_extension_free(void *cmp_content_ext,
+                        axis2_env_t **env);
+
+axis2_xml_schema_annotated_t *AXIS2_CALL
+axis2_xml_schema_complex_content_extension_get_base_impl(void *cmp_content_ext,
+                                        axis2_env_t **env);
+
+axis2_xml_schema_any_attribute_t* AXIS2_CALL
+axis2_xml_schema_complex_content_extension_get_any_attribute(
+                                            void *cmp_content_ext,
+                                            axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_complex_content_extension_set_any_attribute(void *cmp_content_ext,
+                                            axis2_env_t **env,
+                                            axis2_xml_schema_any_attribute_t *any_attr);
+
+axis2_xml_schema_obj_collection_t* AXIS2_CALL
+axis2_xml_schema_complex_content_extension_get_attributes(void *cmp_content_ext,
+                                                         axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_complex_content_extension_set_base_type_name(
+                                          void *cmp_content_ext,
+                                          axis2_env_t **env,
+                                          axis2_qname_t *base_type_name);
+                                          
+axis2_qname_t* AXIS2_CALL
+axis2_xml_schema_complex_content_extension_get_base_type_name(
+                                          void *cmp_content_ext,
+                                          axis2_env_t **env);
+                                          
+int AXIS2_CALL 
+axis2_xml_schema_complex_content_extension_get_type(
+                                        void *cmp_content_ext,
+                                        axis2_env_t **env);                                          
+                                          
+/*************************** end function protos **********************************/                                          
+AXIS2_DECLARE(axis2_xml_schema_complex_content_extension_t *)
+axis2_xml_schema_complex_content_extension_create(axis2_env_t **env)
+{
+    axis2_xml_schema_complex_content_extension_impl_t *cmp_content_ext_impl = NULL;
+    axis2_status_t status = AXIS2_FAILURE;
+
+    cmp_content_ext_impl = (axis2_xml_schema_complex_content_extension_impl_t*)
+        AXIS2_MALLOC((*env)->allocator, sizeof(axis2_xml_schema_complex_content_extension_impl_t));
+        
+    if(!cmp_content_ext_impl)
+    {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+    
+    cmp_content_ext_impl->annotated = NULL;
+    cmp_content_ext_impl->methods = NULL;
+    cmp_content_ext_impl->cmp_content_ext.base.ops = NULL;
+    cmp_content_ext_impl->cmp_content_ext.ops = NULL;
+    cmp_content_ext_impl->attributes = NULL;
+    cmp_content_ext_impl->base_type_name = NULL;
+    cmp_content_ext_impl->any_attribute = NULL;
+    
+    cmp_content_ext_impl->cmp_content_ext.ops = AXIS2_MALLOC((*env)->allocator, 
+                    sizeof(axis2_xml_schema_complex_content_extension_ops_t));
+    if(!cmp_content_ext_impl->cmp_content_ext.ops)
+    {
+        axis2_xml_schema_complex_content_extension_free(
+            &(cmp_content_ext_impl->cmp_content_ext), env);
+        AXIS2_ERROR_SET((*env)->error, 
+            AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+
+
+    cmp_content_ext_impl->cmp_content_ext.ops->free = 
+            axis2_xml_schema_complex_content_extension_free;
+    cmp_content_ext_impl->cmp_content_ext.ops->get_base_impl = 
+            axis2_xml_schema_complex_content_extension_get_base_impl;
+    cmp_content_ext_impl->cmp_content_ext.ops->get_any_attribute = 
+            axis2_xml_schema_complex_content_extension_get_any_attribute;
+    cmp_content_ext_impl->cmp_content_ext.ops->set_any_attribute = 
+            axis2_xml_schema_complex_content_extension_set_any_attribute;
+    cmp_content_ext_impl->cmp_content_ext.ops->get_attributes = 
+            axis2_xml_schema_complex_content_extension_get_attributes;
+    cmp_content_ext_impl->cmp_content_ext.ops->get_base_type_name = 
+            axis2_xml_schema_complex_content_extension_get_base_type_name;
+    cmp_content_ext_impl->cmp_content_ext.ops->set_base_type_name =
+            axis2_xml_schema_complex_content_extension_set_base_type_name; 
+
+    cmp_content_ext_impl->methods = axis2_hash_make(env);
+   
+    if(!cmp_content_ext_impl->methods)
+    {
+        axis2_xml_schema_complex_content_extension_free(
+            &(cmp_content_ext_impl->cmp_content_ext), env);
+        AXIS2_ERROR_SET((*env)->error, 
+            AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+    axis2_hash_set(cmp_content_ext_impl->methods, "free", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_complex_content_extension_free);
+    axis2_hash_set(cmp_content_ext_impl->methods, "get_any_attribute", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_complex_content_extension_get_any_attribute);
+    axis2_hash_set(cmp_content_ext_impl->methods, "set_any_attribute", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_complex_content_extension_set_any_attribute);
+    axis2_hash_set(cmp_content_ext_impl->methods, "get_attributes", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_complex_content_extension_get_attributes);
+    axis2_hash_set(cmp_content_ext_impl->methods, "get_base_type_name", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_complex_content_extension_get_base_type_name);
+    axis2_hash_set(cmp_content_ext_impl->methods, "set_base_type_name",
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_complex_content_extension_set_base_type_name);
+    cmp_content_ext_impl->annotated = axis2_xml_schema_annotated_create(env);
+    if(!cmp_content_ext_impl->annotated)
+    {
+        axis2_xml_schema_complex_content_extension_free(
+                &(cmp_content_ext_impl->cmp_content_ext), env);
+        return NULL;
+    }
+    cmp_content_ext_impl->attributes = axis2_xml_schema_obj_collection_create(env);
+    if(!cmp_content_ext_impl->attributes)
+    {
+        axis2_xml_schema_complex_content_extension_free(&(cmp_content_ext_impl->cmp_content_ext), env);
+        return NULL;
+    }
+    status = axis2_xml_schema_annotated_resolve_methods(
+            &(cmp_content_ext_impl->cmp_content_ext.base), env, cmp_content_ext_impl->annotated, 
+            cmp_content_ext_impl->methods);
+    
+    return &(cmp_content_ext_impl->cmp_content_ext);
+}
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_complex_content_extension_free(void *cmp_content_ext_ext,
+                                    axis2_env_t **env)
+{
+    axis2_xml_schema_complex_content_extension_impl_t *content_ext_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    content_ext_impl = AXIS2_INTF_TO_IMPL(cmp_content_ext_ext);
+    if(NULL != content_ext_impl->any_attribute)
+    {
+        AXIS2_XML_SCHEMA_ANY_ATTRIBUTE_FREE(content_ext_impl->any_attribute, env);
+        content_ext_impl->any_attribute = NULL;
+    }
+    if(NULL != content_ext_impl->attributes)
+    {
+        /** TODO free attributes */
+    }    
+    if(NULL != content_ext_impl->base_type_name)
+    {
+        AXIS2_QNAME_FREE(content_ext_impl->base_type_name, env);
+        content_ext_impl->base_type_name = NULL;
+    }    
+    if(NULL != content_ext_impl->methods)
+    {
+        axis2_hash_free(content_ext_impl->methods, env);
+        content_ext_impl->methods = NULL;
+    }
+    if(NULL != content_ext_impl->annotated)
+    {
+        AXIS2_XML_SCHEMA_ANNOTATED_FREE(content_ext_impl->annotated, env);
+        content_ext_impl->annotated = NULL;
+    }
+    if(NULL != content_ext_impl->cmp_content_ext.base.ops)
+    {
+        AXIS2_FREE((*env)->allocator, content_ext_impl->cmp_content_ext.base.ops);
+        content_ext_impl->cmp_content_ext.base.ops = NULL;  
+    }
+    if(NULL != content_ext_impl->cmp_content_ext.ops)
+    {
+        AXIS2_FREE((*env)->allocator, content_ext_impl->cmp_content_ext.ops);
+        content_ext_impl->cmp_content_ext.ops = NULL;
+    }
+ 
+    AXIS2_FREE((*env)->allocator, content_ext_impl);
+    content_ext_impl = NULL;
+    return AXIS2_SUCCESS;
+}
+
+axis2_xml_schema_annotated_t *AXIS2_CALL
+axis2_xml_schema_complex_content_extension_get_base_impl(void *cmp_content_ext,
+                                axis2_env_t **env)
+{
+    axis2_xml_schema_complex_content_extension_impl_t *content_ext_impl = NULL;
+    AXIS2_ENV_CHECK(env, NULL);
+    content_ext_impl = AXIS2_INTF_TO_IMPL(cmp_content_ext);
+    return content_ext_impl->annotated;
+}
+
+
+
+axis2_xml_schema_any_attribute_t* AXIS2_CALL
+axis2_xml_schema_complex_content_extension_get_any_attribute(void *cmp_content_ext,
+                                                            axis2_env_t **env)
+{
+    axis2_xml_schema_complex_content_extension_impl_t *cnt_ext_impl = NULL;
+    AXIS2_ENV_CHECK(env, NULL);
+    cnt_ext_impl = AXIS2_INTF_TO_IMPL(cmp_content_ext);
+    return cnt_ext_impl->any_attribute;    
+}
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_complex_content_extension_set_any_attribute(void *cmp_content_ext,
+                                axis2_env_t **env,
+                                axis2_xml_schema_any_attribute_t *any_attr)
+{
+    axis2_xml_schema_complex_content_extension_impl_t *content_ext_impl = NULL;
+    
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, any_attr, AXIS2_FAILURE);
+    if(NULL != content_ext_impl->any_attribute)
+    {
+        AXIS2_XML_SCHEMA_ANY_ATTRIBUTE_FREE(content_ext_impl->any_attribute, env);
+        content_ext_impl->any_attribute = NULL;
+    }
+        content_ext_impl->any_attribute = any_attr;
+    return AXIS2_SUCCESS;
+}
+
+axis2_xml_schema_obj_collection_t* AXIS2_CALL
+axis2_xml_schema_complex_content_extension_get_attributes(void *cmp_content,
+                                                        axis2_env_t **env)
+{
+    axis2_xml_schema_complex_content_extension_impl_t *cnt_ext_impl = NULL;
+    AXIS2_ENV_CHECK(env, NULL);
+    cnt_ext_impl = AXIS2_INTF_TO_IMPL(cmp_content);
+    return cnt_ext_impl->attributes;
+}
+
+axis2_qname_t* AXIS2_CALL
+axis2_xml_schema_complex_content_extension_get_base_type_name(
+                                          void *cmp_content,
+                                          axis2_env_t **env)
+{
+    axis2_xml_schema_complex_content_extension_impl_t *content_ext_impl = NULL;
+    AXIS2_ENV_CHECK(env, NULL);
+    content_ext_impl = AXIS2_INTF_TO_IMPL(cmp_content);
+    return content_ext_impl->base_type_name;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_complex_content_extension_set_base_type_name(
+                                          void *cmp_content,
+                                          axis2_env_t **env,
+                                          axis2_qname_t *base_type_name)
+{
+    axis2_xml_schema_complex_content_extension_impl_t *content_ext_impl = NULL;
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    content_ext_impl = AXIS2_INTF_TO_IMPL(cmp_content);
+    if(NULL != content_ext_impl->base_type_name)
+    {
+        AXIS2_QNAME_FREE(content_ext_impl->base_type_name, env);
+        content_ext_impl->base_type_name = NULL;
+    }
+    content_ext_impl->base_type_name = base_type_name;
+    return AXIS2_SUCCESS;
+}
+
+                                       
\ No newline at end of file

Added: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_simple_content_restriction.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_simple_content_restriction.c?rev=399982&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_simple_content_restriction.c (added)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_simple_content_restriction.c Thu May  4 23:12:38 2006
@@ -0,0 +1,373 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <axis2_xml_schema_complex_content_restriction.h>
+
+typedef struct axis2_xml_schema_complex_content_restriction_impl 
+                    axis2_xml_schema_complex_content_restriction_impl_t;
+
+/** 
+ * @brief Other Extension Struct Impl
+ *	Axis2 Other Extension  
+ */ 
+struct axis2_xml_schema_complex_content_restriction_impl
+{
+    axis2_xml_schema_complex_content_restriction_t sim_content_res;
+    
+    axis2_xml_schema_annotated_t *annotated;
+    
+    axis2_hash_t *methods;
+    
+    axis2_xml_schema_obj_collection_t *attributes;
+    
+    axis2_xml_schema_obj_collection_t *facets;
+    
+    axis2_xml_schema_any_attribute_t *any_attribute;
+    
+    axis2_qname_t *base_type_name;
+    
+    axis2_xml_schema_simple_type_t *base_type;
+};
+
+#define AXIS2_INTF_TO_IMPL(sim_content_res) \
+        ((axis2_xml_schema_complex_content_restriction_impl_t *) sim_content_res)
+
+axis2_status_t AXIS2_CALL 
+axis2_xml_schema_complex_content_restriction_free(void *sim_content_res,
+                        axis2_env_t **env);
+
+axis2_xml_schema_annotated_t *AXIS2_CALL
+axis2_xml_schema_complex_content_restriction_get_base_impl(void *sim_content_res,
+                                        axis2_env_t **env);
+
+axis2_xml_schema_any_attribute_t* AXIS2_CALL
+axis2_xml_schema_complex_content_restriction_get_any_attribute(
+                                            void *sim_content_res,
+                                            axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_complex_content_restriction_set_any_attribute(void *sim_content_res,
+                                            axis2_env_t **env,
+                                            axis2_xml_schema_any_attribute_t *any_attr);
+
+axis2_xml_schema_obj_collection_t* AXIS2_CALL
+axis2_xml_schema_complex_content_restriction_get_attributes(void *sim_content_res,
+                                                         axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_complex_content_restriction_set_base_type_name(
+                                          void *sim_content_res,
+                                          axis2_env_t **env,
+                                          axis2_qname_t *base_type_name);
+                                          
+axis2_qname_t* AXIS2_CALL
+axis2_xml_schema_complex_content_restriction_get_base_type_name(
+                                          void *sim_content_res,
+                                          axis2_env_t **env);
+                                          
+axis2_status_t AXIS2_CALL 
+axis2_xml_schema_complex_content_restriction_set_base_type(void *sim_content_res,
+                                              axis2_env_t **env,
+                                              axis2_xml_schema_simple_type_t *base_type);
+                                              
+axis2_xml_schema_simple_type_t* AXIS2_CALL
+axis2_xml_schema_complex_content_restriction_get_base_type(void *sim_content_res,
+                                              axis2_env_t **env);
+                                                 
+axis2_xml_schema_obj_collection_t* AXIS2_CALL
+axis2_xml_schema_complex_content_restriction_get_facets(void *sim_content_res,
+                                                       axis2_env_t **env);                                          
+                                          
+                                          
+/*****************************************************************************/                                          
+AXIS2_DECLARE(axis2_xml_schema_complex_content_restriction_t *)
+axis2_xml_schema_complex_content_restriction_create(axis2_env_t **env)
+{
+    axis2_xml_schema_complex_content_restriction_impl_t *sim_content_res_impl = NULL;
+    axis2_status_t status = AXIS2_FAILURE;
+
+    sim_content_res_impl = (axis2_xml_schema_complex_content_restriction_impl_t*)
+        AXIS2_MALLOC((*env)->allocator, sizeof(axis2_xml_schema_complex_content_restriction_impl_t));
+        
+    if(!sim_content_res_impl)
+    {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+    
+    sim_content_res_impl->annotated = NULL;
+    sim_content_res_impl->methods = NULL;
+    sim_content_res_impl->sim_content_res.base.ops = NULL;
+    sim_content_res_impl->sim_content_res.ops = NULL;
+    sim_content_res_impl->attributes = NULL;
+    sim_content_res_impl->base_type_name = NULL;
+    sim_content_res_impl->any_attribute = NULL;
+    sim_content_res_impl->facets = NULL;
+    sim_content_res_impl->base_type = NULL;
+    
+    sim_content_res_impl->sim_content_res.ops = AXIS2_MALLOC((*env)->allocator, 
+                    sizeof(axis2_xml_schema_complex_content_restriction_ops_t));
+    if(!sim_content_res_impl->sim_content_res.ops)
+    {
+        axis2_xml_schema_complex_content_restriction_free(
+            &(sim_content_res_impl->sim_content_res), env);
+        AXIS2_ERROR_SET((*env)->error, 
+            AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+
+
+    sim_content_res_impl->sim_content_res.ops->free = 
+            axis2_xml_schema_complex_content_restriction_free;
+            
+    sim_content_res_impl->sim_content_res.ops->get_base_impl = 
+            axis2_xml_schema_complex_content_restriction_get_base_impl;
+            
+    sim_content_res_impl->sim_content_res.ops->get_any_attribute = 
+            axis2_xml_schema_complex_content_restriction_get_any_attribute;
+            
+    sim_content_res_impl->sim_content_res.ops->set_any_attribute = 
+            axis2_xml_schema_complex_content_restriction_set_any_attribute;
+            
+    sim_content_res_impl->sim_content_res.ops->get_attributes = 
+            axis2_xml_schema_complex_content_restriction_get_attributes;
+            
+    sim_content_res_impl->sim_content_res.ops->get_base_type_name = 
+            axis2_xml_schema_complex_content_restriction_get_base_type_name;
+            
+    sim_content_res_impl->sim_content_res.ops->set_base_type_name =
+            axis2_xml_schema_complex_content_restriction_set_base_type_name;  
+            
+    sim_content_res_impl->sim_content_res.ops->set_base_type = 
+            axis2_xml_schema_complex_content_restriction_set_base_type;
+            
+    sim_content_res_impl->sim_content_res.ops->get_base_type =
+            axis2_xml_schema_complex_content_restriction_get_base_type;  
+            
+    sim_content_res_impl->sim_content_res.ops->get_facets =
+            axis2_xml_schema_complex_content_restriction_get_facets;                      
+                          
+   
+    sim_content_res_impl->methods = axis2_hash_make(env);
+   
+    if(!sim_content_res_impl->methods)
+    {
+        axis2_xml_schema_complex_content_restriction_free(
+            &(sim_content_res_impl->sim_content_res), env);
+        AXIS2_ERROR_SET((*env)->error, 
+            AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+    axis2_hash_set(sim_content_res_impl->methods, "free", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_complex_content_restriction_free);
+    axis2_hash_set(sim_content_res_impl->methods, "get_any_attribute", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_complex_content_restriction_get_any_attribute);
+    axis2_hash_set(sim_content_res_impl->methods, "set_any_attribute", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_complex_content_restriction_set_any_attribute);
+    axis2_hash_set(sim_content_res_impl->methods, "get_attributes", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_complex_content_restriction_get_attributes);
+    axis2_hash_set(sim_content_res_impl->methods, "get_base_type_name", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_complex_content_restriction_get_base_type_name);
+    axis2_hash_set(sim_content_res_impl->methods, "set_base_type_name",
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_complex_content_restriction_set_base_type_name);
+    
+    sim_content_res_impl->annotated = axis2_xml_schema_annotated_create(env);
+    if(!sim_content_res_impl->annotated)
+    {
+        axis2_xml_schema_complex_content_restriction_free(
+                &(sim_content_res_impl->sim_content_res), env);
+        return NULL;
+    }
+    sim_content_res_impl->attributes = axis2_xml_schema_obj_collection_create(env);
+    sim_content_res_impl->facets = axis2_xml_schema_obj_collection_create(env);
+    if(!sim_content_res_impl->attributes || !sim_content_res_impl->facets)
+    {
+        axis2_xml_schema_complex_content_restriction_free(
+            &(sim_content_res_impl->sim_content_res), env);
+        return NULL;            
+    }
+    
+    status = axis2_xml_schema_annotated_resolve_methods(
+            &(sim_content_res_impl->sim_content_res.base), env, sim_content_res_impl->annotated, 
+            sim_content_res_impl->methods);
+    
+    return &(sim_content_res_impl->sim_content_res);
+}
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_complex_content_restriction_free(void *sim_content_res,
+                                    axis2_env_t **env)
+{
+    axis2_xml_schema_complex_content_restriction_impl_t *content_res_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    content_res_impl = AXIS2_INTF_TO_IMPL(sim_content_res);
+    if(NULL != content_res_impl->any_attribute)
+    {
+        AXIS2_XML_SCHEMA_ANY_ATTRIBUTE_FREE(content_res_impl->any_attribute, env);
+        content_res_impl->any_attribute = NULL;
+    }
+    if(NULL != content_res_impl->attributes)
+    {
+        /** TODO free attributes */
+    } 
+    if(NULL != content_res_impl->facets)
+    {
+        /** TODO free facets */
+    }
+    if(NULL != content_res_impl->base_type_name)
+    {
+        AXIS2_QNAME_FREE(content_res_impl->base_type_name, env);
+        content_res_impl->base_type_name = NULL;
+    }    
+    if(NULL != content_res_impl->methods)
+    {
+        axis2_hash_free(content_res_impl->methods, env);
+        content_res_impl->methods = NULL;
+    }
+    if(NULL != content_res_impl->annotated)
+    {
+        AXIS2_XML_SCHEMA_ANNOTATED_FREE(content_res_impl->annotated, env);
+        content_res_impl->annotated = NULL;
+    }
+    if(NULL != content_res_impl->sim_content_res.base.ops)
+    {
+        AXIS2_FREE((*env)->allocator, content_res_impl->sim_content_res.base.ops);
+        content_res_impl->sim_content_res.base.ops = NULL;  
+    }
+    if(NULL != content_res_impl->sim_content_res.ops)
+    {
+        AXIS2_FREE((*env)->allocator, content_res_impl->sim_content_res.ops);
+        content_res_impl->sim_content_res.ops = NULL;
+    }
+ 
+    AXIS2_FREE((*env)->allocator, content_res_impl);
+    content_res_impl = NULL;
+    return AXIS2_SUCCESS;
+}
+
+axis2_xml_schema_annotated_t *AXIS2_CALL
+axis2_xml_schema_complex_content_restriction_get_base_impl(void *sim_content_res,
+                                axis2_env_t **env)
+{
+    axis2_xml_schema_complex_content_restriction_impl_t *content_res_impl = NULL;
+    AXIS2_ENV_CHECK(env, NULL);
+    content_res_impl = AXIS2_INTF_TO_IMPL(sim_content_res);
+    return content_res_impl->annotated;
+}
+
+
+
+axis2_xml_schema_any_attribute_t* AXIS2_CALL
+axis2_xml_schema_complex_content_restriction_get_any_attribute(void *sim_content_res,
+                                                            axis2_env_t **env)
+{
+    axis2_xml_schema_complex_content_restriction_impl_t *cnt_res_impl = NULL;
+    AXIS2_ENV_CHECK(env, NULL);
+    cnt_res_impl = AXIS2_INTF_TO_IMPL(sim_content_res);
+    return cnt_res_impl->any_attribute;    
+}
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_complex_content_restriction_set_any_attribute(void *sim_content_res,
+                                axis2_env_t **env,
+                                axis2_xml_schema_any_attribute_t *any_attr)
+{
+    axis2_xml_schema_complex_content_restriction_impl_t *content_res_impl = NULL;
+    
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, any_attr, AXIS2_FAILURE);
+    if(NULL != content_res_impl->any_attribute)
+    {
+        AXIS2_XML_SCHEMA_ANY_ATTRIBUTE_FREE(content_res_impl->any_attribute, env);
+        content_res_impl->any_attribute = NULL;
+    }
+        content_res_impl->any_attribute = any_attr;
+    return AXIS2_SUCCESS;
+}
+
+axis2_xml_schema_obj_collection_t* AXIS2_CALL
+axis2_xml_schema_complex_content_restriction_get_attributes(void *sim_content,
+                                                        axis2_env_t **env)
+{
+    axis2_xml_schema_complex_content_restriction_impl_t *cnt_res_impl = NULL;
+    AXIS2_ENV_CHECK(env, NULL);
+    cnt_res_impl = AXIS2_INTF_TO_IMPL(sim_content);
+    return cnt_res_impl->attributes;
+}
+
+axis2_qname_t* AXIS2_CALL
+axis2_xml_schema_complex_content_restriction_get_base_type_name(
+                                          void *sim_content,
+                                          axis2_env_t **env)
+{
+    axis2_xml_schema_complex_content_restriction_impl_t *content_res_impl = NULL;
+    AXIS2_ENV_CHECK(env, NULL);
+    content_res_impl = AXIS2_INTF_TO_IMPL(sim_content);
+    return content_res_impl->base_type_name;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_complex_content_restriction_set_base_type_name(
+                                          void *sim_content,
+                                          axis2_env_t **env,
+                                          axis2_qname_t *base_type_name)
+{
+    axis2_xml_schema_complex_content_restriction_impl_t *content_res_impl = NULL;
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    content_res_impl = AXIS2_INTF_TO_IMPL(sim_content);
+    if(NULL != content_res_impl->base_type_name)
+    {
+        AXIS2_QNAME_FREE(content_res_impl->base_type_name, env);
+        content_res_impl->base_type_name = NULL;
+    }
+    content_res_impl->base_type_name = base_type_name;
+    return AXIS2_SUCCESS;
+}
+
+axis2_status_t AXIS2_CALL 
+axis2_xml_schema_complex_content_restriction_set_base_type(void *sim_content_res,
+                                              axis2_env_t **env,
+                                              axis2_xml_schema_simple_type_t *base_type)
+{
+    axis2_xml_schema_complex_content_restriction_impl_t *sim_cnt_res_impl = NULL;
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, base_type, AXIS2_FAILURE);
+    sim_cnt_res_impl = AXIS2_INTF_TO_IMPL(sim_content_res);
+    if(NULL != sim_cnt_res_impl->base_type)
+    {
+        AXIS2_XML_SCHEMA_SIMPLE_TYPE_FREE(sim_cnt_res_impl->base_type, env);
+        sim_cnt_res_impl->base_type = NULL;
+    }
+    sim_cnt_res_impl->base_type = base_type;
+    return AXIS2_SUCCESS;
+}                                              
+                                              
+                                              
+axis2_xml_schema_simple_type_t* AXIS2_CALL
+axis2_xml_schema_complex_content_restriction_get_base_type(void *sim_content_res,
+                                              axis2_env_t **env)
+{
+    return AXIS2_INTF_TO_IMPL(sim_content_res)->base_type;
+}                                              
+
+                                                 
+axis2_xml_schema_obj_collection_t* AXIS2_CALL
+axis2_xml_schema_complex_content_restriction_get_facets(void *sim_content_res,
+                                                       axis2_env_t **env)
+{
+    return AXIS2_INTF_TO_IMPL(sim_content_res)->facets;
+}                                                       
\ No newline at end of file