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 [1/2] - in /webservices/axis2/trunk/c: include/xml_schema/ modules/xml/xml_schema/

Author: nandika
Date: Thu May  4 23:12:38 2006
New Revision: 399982

URL: http://svn.apache.org/viewcvs?rev=399982&view=rev
Log:
more files added

Added:
    webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_complex_content.h
    webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_complex_content_extension.h
    webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_complex_content_restriction.h
    webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_simple_content.h
    webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_simple_content_extension.h
    webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_simple_content_restriction.h
    webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_complex_content.c
    webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_complex_content_extension.c
    webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_complex_content_restriction.c
    webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_simple_content.c
    webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_simple_content_extension.c
    webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_simple_content_restriction.c
Modified:
    webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_annotated.h
    webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_constants.h

Modified: webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_annotated.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_annotated.h?rev=399982&r1=399981&r2=399982&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_annotated.h (original)
+++ webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_annotated.h Thu May  4 23:12:38 2006
@@ -29,15 +29,33 @@
   * @{
   */
 
+
+                    
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
 typedef struct axis2_xml_schema_annotated 
                     axis2_xml_schema_annotated_t;
 typedef struct axis2_xml_schema_annotated_ops 
                     axis2_xml_schema_annotated_ops_t;
                     
-#ifdef __cplusplus
-extern "C"
+typedef enum axis2_xml_schema_content_model_types_t
 {
-#endif
+    AXIS2_XML_SCHEMA_SIMPLE_CONTENT = 0,
+    AXIS2_XML_SCHEMA_COMPLEX_CONTENT
+}axis2_xml_schema_content_model_types_t; 
+
+
+typedef enum axis2_xml_schema_content_types_t
+{
+    AXIS2_XML_SCHEMA_COMPLEX_CONTENT_EXTENSION = 0,
+    AXIS2_XML_SCHEMA_COMPLEX_CONTENT_RESTRICTION,
+    AXIS2_XML_SCHEMA_SIMPLE_CONTENT_EXTENSION,
+    AXIS2_XML_SCHEMA_SIMPLE_CONTENT_RESTRICTION 
+
+}axis2_xml_schema_content_types_t;
 
 struct axis2_xml_schema_annotated_ops
 {

Added: webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_complex_content.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_complex_content.h?rev=399982&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_complex_content.h (added)
+++ webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_complex_content.h Thu May  4 23:12:38 2006
@@ -0,0 +1,149 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_XML_SCHEMA_COMPLEX_CONTENT_H
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_H
+
+/**
+ * @file axis2_xml_schema_complex_content.h
+ * @brief Axis2 Xml Schema Group Interface
+ *          Class that defines groups at the schema level that are referenced
+ *          from the complex types. Groups a set of element declarations so that
+ *          they can be incorporated as a complex_content into complex type definitions.
+ *          Represents the World Wide Web Consortium (W3C) complex_content element.
+ */
+
+#include <axis2_xml_schema_annotated.h>
+#include <axis2_hash.h>
+
+/** @defgroup axis2_xml_schema_complex_content Xml Schema Group
+  * @ingroup axis2_xml_schema
+  * @{
+  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct axis2_xml_schema_complex_content 
+                axis2_xml_schema_complex_content_t;
+                
+typedef struct axis2_xml_schema_complex_content_ops 
+                axis2_xml_schema_complex_content_ops_t;
+
+struct axis2_xml_schema_complex_content_ops
+{
+    axis2_status_t (AXIS2_CALL *
+    free) (void *complex_content,
+            axis2_env_t **env);
+
+    axis2_xml_schema_annotated_t *(AXIS2_CALL *
+    get_base_impl) (void *complex_content,
+                    axis2_env_t **env);
+
+    void* (AXIS2_CALL *
+    get_content)(
+            void *complex_content,
+            axis2_env_t **env);
+    
+    axis2_status_t (AXIS2_CALL *
+    set_content)(
+            void *complex_content,
+            axis2_env_t **env,
+            void *content,
+            int content_type);
+    
+    int (AXIS2_CALL *
+    get_content_type)(
+            void *complex_content,
+            axis2_env_t **env);
+            
+    axis2_char_t* (AXIS2_CALL*
+    to_string)(void *complex_content,
+               axis2_env_t **env,
+               axis2_char_t *prefix,
+               int tab);
+               
+    axis2_bool_t (AXIS2_CALL *
+    is_mixed)(void *complex_content,
+              axis2_env_t **env);
+              
+    axis2_status_t (AXIS2_CALL *
+    set_mixed)(void *complex_content,
+               axis2_env_t **env,
+               axis2_bool_t mixed);
+};
+
+struct axis2_xml_schema_complex_content
+{
+    axis2_xml_schema_annotated_t base;
+    axis2_xml_schema_complex_content_ops_t *ops;
+};
+
+/**
+ * Creates new Xml Schema Group
+ */
+AXIS2_DECLARE(axis2_xml_schema_complex_content_t *)
+axis2_xml_schema_complex_content_create(axis2_env_t **env);
+
+/**
+ * This method is internal to Axis2 C. It is called from Child Constructor
+ */
+AXIS2_DECLARE(axis2_status_t)
+axis2_xml_schema_complex_content_resolve_methods(
+                                axis2_xml_schema_complex_content_t *complex_content,
+                                axis2_env_t **env,
+                                axis2_xml_schema_complex_content_t *group_impl,
+                                axis2_hash_t *methods);
+
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_FREE(complex_content, env) \
+		(((axis2_xml_schema_complex_content_t *) complex_content)->ops->\
+            free(complex_content, env))
+
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_GET_BASE_IMPL(complex_content, env) \
+		(((axis2_xml_schema_complex_content_t *) complex_content)->ops->\
+            get_base_impl(complex_content, env))
+
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_GET_CONTENT(complex_content, env) \
+		(((axis2_xml_schema_complex_content_t *) complex_content)->ops->\
+            get_content(complex_content, env))
+
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_SET_CONTENT(complex_content, env, content, content_type) \
+		(((axis2_xml_schema_complex_content_t *) complex_content)->ops->\
+            set_content(complex_content, env, content, content_type ))
+
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_GET_CONTENT_TYPE(complex_content, env) \
+		(((axis2_xml_schema_complex_content_t *) complex_content)->ops->\
+            get_content_type(complex_content, env))
+            
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_TO_STRING(complex_content, env, prefix, tab) \
+        (((axis2_xml_schema_complex_content_t *) complex_content)->ops->\
+            to_string(complex_content, env, prefix, tab))            
+
+
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_IS_MIXED(complex_content, env) \
+        (((axis2_xml_schema_complex_content_t *) complex_content)->ops->\
+            is_mixed(complex_content, env))
+            
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_SET_MIXED(complex_content, env, mixed) \
+        (((axis2_xml_schema_complex_content_t *) complex_content)->ops->\
+            set_mixed(complex_content, env, mixed))            
+            
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_XML_SCHEMA_COMPLEX_CONTENT_H */

Added: webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_complex_content_extension.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_complex_content_extension.h?rev=399982&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_complex_content_extension.h (added)
+++ webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_complex_content_extension.h Thu May  4 23:12:38 2006
@@ -0,0 +1,148 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_H
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_H
+
+/**
+ * @file axis2_xml_schema_complex_content_extension.h
+ */
+
+#include <axis2_xml_schema_annotated.h>
+#include <axis2_xml_schema_obj_collection.h>
+#include <axis2_xml_schema_any_attribute.h>
+#include <axis2_xml_schema_particle.h>
+#include <axis2_hash.h>
+#include <axis2_qname.h>
+/** @defgroup axis2_xml_schema_complex_content_extension 
+  * @ingroup axis2_xml_schema
+  * @{
+  */
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct axis2_xml_schema_complex_content_extension 
+                axis2_xml_schema_complex_content_extension_t;
+                
+typedef struct axis2_xml_schema_complex_content_extension_ops 
+                axis2_xml_schema_complex_content_extension_ops_t;
+
+struct axis2_xml_schema_complex_content_extension_ops
+{
+    axis2_status_t (AXIS2_CALL *
+    free) (void *cmp_content_ext,
+            axis2_env_t **env);
+
+    axis2_xml_schema_annotated_t *(AXIS2_CALL *
+    get_base_impl) (void *cmp_content_ext,
+                    axis2_env_t **env);
+
+    axis2_xml_schema_any_attribute_t* (AXIS2_CALL *
+    get_any_attribute)(
+            void *cmp_content_ext,
+            axis2_env_t **env);
+    
+    axis2_status_t (AXIS2_CALL *
+    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 *
+    get_attributes)(
+            void *cmp_content_ext,
+            axis2_env_t **env);
+            
+    axis2_qname_t* (AXIS2_CALL*
+    get_base_type_name)(
+            void *cmp_content_ext,
+            axis2_env_t **env);
+            
+    axis2_status_t (AXIS2_CALL *
+    set_base_type_name)(
+            void *cmp_content_ext,
+            axis2_env_t **env,
+            axis2_qname_t *qname);
+            
+    axis2_xml_schema_particle_t* (AXIS2_CALL *
+    get_particle)(void *cmp_content_ext,
+                  axis2_env_t **env);
+                  
+    axis2_status_t (AXIS2_CALL *
+    set_particle)(void *cmp_content_ext,
+                  axis2_env_t **env,
+                  axis2_xml_schema_particle_t *particle);
+                  
+    axis2_char_t* (AXIS2_CALL *
+    to_string)(void *cmp_content_ext,
+                axis2_env_t **env);
+    
+};
+
+struct axis2_xml_schema_complex_content_extension
+{
+    axis2_xml_schema_annotated_t base;
+    axis2_xml_schema_complex_content_extension_ops_t *ops;
+};
+
+/**
+ * Creates new Xml Schema Group
+ */
+AXIS2_DECLARE(axis2_xml_schema_complex_content_extension_t *)
+axis2_xml_schema_complex_content_extension_create(axis2_env_t **env);
+
+
+
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_FREE(cmp_content_ext, env) \
+		(((axis2_xml_schema_complex_content_extension_t *) cmp_content_ext)->ops->\
+            free(cmp_content_ext, env))
+
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_GET_BASE_IMPL(cmp_content_ext, env) \
+		(((axis2_xml_schema_complex_content_extension_t *) cmp_content_ext)->ops->\
+            get_base_impl(cmp_content_ext, env))
+
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_GET_ANY_ATTRIBUTE(cmp_content_ext, env) \
+		(((axis2_xml_schema_complex_content_extension_t *) cmp_content_ext)->ops->\
+            get_any_attribute(cmp_content_ext, env))
+
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_SET__ANY_ATTRIBUTE(cmp_content_ext, env, any_attr)\
+		(((axis2_xml_schema_complex_content_extension_t *) cmp_content_ext)->ops->\
+            set_content(cmp_content_ext, env, any_attr ))
+
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_GET_ATTRIBUTES(cmp_content_ext, env) \
+		(((axis2_xml_schema_complex_content_extension_t *) cmp_content_ext)->ops->\
+            get_attributes(cmp_content_ext, env))
+            
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_GET_BASE_TYPE_NAME(cmp_content_ext, env)\
+        (((axis2_xml_schema_complex_content_extension_t *) cmp_content_ext)->ops->\
+            get_base_type_name(cmp_content_ext, env))            
+
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_SET_BASE_TYPE_NAME(cmp_content_ext, env, base_type_name) \
+        (((axis2_xml_schema_complex_content_extension_t *) cmp_content_ext)->ops->\
+            set_base_type_name(cmp_content_ext, env, base_type_name))
+            
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_GET_PARTICLE(cmp_content_ext, env) \
+        (((axis2_xml_schema_complex_content_extension_t *) cmp_content_ext)->ops->\
+            get_particle(cmp_content_ext, env))       
+            
+            
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_XML_SCHEMA_COMPLEX_CONTENT_EXTENSION_H */

Added: webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_complex_content_restriction.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_complex_content_restriction.h?rev=399982&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_complex_content_restriction.h (added)
+++ webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_complex_content_restriction.h Thu May  4 23:12:38 2006
@@ -0,0 +1,159 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_XML_SCHEMA_COMPLEX_CONTENT_RESTRICTION_H
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_RESTRICTION_H
+
+/**
+ * @file axis2_xml_schema_complex_content_restriction.h
+ */
+
+#include <axis2_xml_schema_annotated.h>
+#include <axis2_xml_schema_obj_collection.h>
+#include <axis2_xml_schema_any_attribute.h>
+#include <axis2_xml_schema_simple_type.h>
+#include <axis2_hash.h>
+#include <axis2_qname.h>
+
+/** @defgroup axis2_xml_schema_complex_content_restriction Xml Schema Group
+  * @ingroup axis2_xml_schema
+  * @{
+  */
+
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct axis2_xml_schema_complex_content_restriction 
+                axis2_xml_schema_complex_content_restriction_t;
+                
+typedef struct axis2_xml_schema_complex_content_restriction_ops 
+                axis2_xml_schema_complex_content_restriction_ops_t;
+
+struct axis2_xml_schema_complex_content_restriction_ops
+{
+    axis2_status_t (AXIS2_CALL *
+    free) (void *cmp_content_res,
+            axis2_env_t **env);
+
+    axis2_xml_schema_annotated_t *(AXIS2_CALL *
+    get_base_impl) (void *cmp_content_res,
+                    axis2_env_t **env);
+
+    axis2_xml_schema_any_attribute_t* (AXIS2_CALL *
+    get_any_attribute)(
+            void *cmp_content_res,
+            axis2_env_t **env);
+    
+    axis2_status_t (AXIS2_CALL *
+    set_any_attribute)(
+            void *cmp_content_res,
+            axis2_env_t **env,
+            axis2_xml_schema_any_attribute_t *any_attr);
+    
+    axis2_xml_schema_obj_collection_t* (AXIS2_CALL *
+    get_attributes)(
+            void *cmp_content_res,
+            axis2_env_t **env);
+            
+    axis2_qname_t* (AXIS2_CALL*
+    get_base_type_name)(
+            void *cmp_content_res,
+            axis2_env_t **env);
+            
+    axis2_status_t (AXIS2_CALL *
+    set_base_type_name)(
+            void *cmp_content_res,
+            axis2_env_t **env,
+            axis2_qname_t *qname); 
+            
+    axis2_xml_schema_simple_type_t* (AXIS2_CALL*
+    get_base_type)(void *cmp_content_res,
+                   axis2_env_t **env);
+                   
+    axis2_status_t (AXIS2_CALL *
+    set_base_type)(void *cmp_content_res,
+                   axis2_env_t **env,
+                   axis2_xml_schema_simple_type_t *base_type); 
+                   
+    axis2_xml_schema_obj_collection_t* (AXIS2_CALL *
+    get_facets)(void *cmp_content_res,
+                axis2_env_t **env);                   
+};
+
+struct axis2_xml_schema_complex_content_restriction
+{
+    axis2_xml_schema_annotated_t base;
+    axis2_xml_schema_complex_content_restriction_ops_t *ops;
+};
+
+/**
+ * Creates new Xml Schema Group
+ */
+AXIS2_DECLARE(axis2_xml_schema_complex_content_restriction_t *)
+axis2_xml_schema_complex_content_restriction_create(axis2_env_t **env);
+
+
+
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_RESTRICTION_FREE(cmp_content_res, env) \
+		(((axis2_xml_schema_complex_content_restriction_t *) cmp_content_res)->ops->\
+            free(cmp_content_res, env))
+
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_RESTRICTION_GET_BASE_IMPL(cmp_content_res, env) \
+		(((axis2_xml_schema_complex_content_restriction_t *) cmp_content_res)->ops->\
+            get_base_impl(cmp_content_res, env))
+
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_RESTRICTION_GET_ANY_ATTRIBUTE(cmp_content_res, env) \
+		(((axis2_xml_schema_complex_content_restriction_t *) cmp_content_res)->ops->\
+            get_any_attribute(cmp_content_res, env))
+
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_RESTRICTION_SET__ANY_ATTRIBUTE(cmp_content_res, env, any_attr)\
+		(((axis2_xml_schema_complex_content_restriction_t *) cmp_content_res)->ops->\
+            set_content(cmp_content_res, env, any_attr ))
+
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_RESTRICTION_GET_ATTRIBUTES(cmp_content_res, env) \
+		(((axis2_xml_schema_complex_content_restriction_t *) cmp_content_res)->ops->\
+            get_attributes(cmp_content_res, env))
+            
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_RESTRICTION_GET_BASE_TYPE_NAME(cmp_content_res, env)\
+        (((axis2_xml_schema_complex_content_restriction_t *) cmp_content_res)->ops->\
+            get_base_type_name(cmp_content_res, env))            
+
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_RESTRICTION_SET_BASE_TYPE_NAME(cmp_content_res, env, base_type_name) \
+        (((axis2_xml_schema_complex_content_restriction_t *) cmp_content_res)->ops->\
+            set_base_type_name(cmp_content_res, env, base_type_name))
+            
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_RESTRICTION_SET_BASE_TYPE(cmp_content_res, env, base_type) \
+        (((axis2_xml_schema_complex_content_restriction_t *) cmp_content_res)->ops->\
+            set_base_type(cmp_content_res, env, base_type)) 
+            
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_RESTRICTION_GET_BASE_TYPE(cmp_content_res, env)\
+        (((axis2_xml_schema_complex_content_restriction_t *) cmp_content_res)->ops->\
+            get_base_type(cmp_content_res, env))
+            
+#define AXIS2_XML_SCHEMA_COMPLEX_CONTENT_RESTRICTION_GET_FACETS(cmp_content_res, env)\
+        (((axis2_xml_schema_complex_content_restriction_t *) cmp_content_res)->ops->\
+            get_facets(cmp_content_res, env))            
+            
+                                            
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_XML_SCHEMA_COMPLEX_CONTENT_RESTRICTION_H */

Modified: webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_constants.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_constants.h?rev=399982&r1=399981&r2=399982&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_constants.h (original)
+++ webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_constants.h Thu May  4 23:12:38 2006
@@ -121,6 +121,13 @@
 #define AXIS2_XML_SCHEMA_CONST_WARNING "warning"
 
 	
+typedef enum axis2_xml_schema_content_model_types_t
+{
+    AXIS2_XML_SCHEMA_SIMPLE_CONTENT = 0,
+    AXIS2_XML_SCHEMA_COMPLEX_CONTENT
+}axis2_xml_schema_content_model_types_t;	
+	
+	
 #ifdef __cplusplus
 }
 #endif

Added: webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_simple_content.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_simple_content.h?rev=399982&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_simple_content.h (added)
+++ webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_simple_content.h Thu May  4 23:12:38 2006
@@ -0,0 +1,135 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_XML_SCHEMA_SIMPLE_CONTENT_H
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_H
+
+/**
+ * @file axis2_xml_schema_simple_content.h
+ * @brief Axis2 Xml Schema Group Interface
+ *          Class that defines groups at the schema level that are referenced
+ *          from the complex types. Groups a set of element declarations so that
+ *          they can be incorporated as a sim_content into complex type definitions.
+ *          Represents the World Wide Web Consortium (W3C) sim_content element.
+ */
+
+#include <axis2_xml_schema_annotated.h>
+#include <axis2_hash.h>
+
+/** @defgroup axis2_xml_schema_simple_content Xml Schema Group
+  * @ingroup axis2_xml_schema
+  * @{
+  */
+
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct axis2_xml_schema_simple_content 
+                axis2_xml_schema_simple_content_t;
+                
+typedef struct axis2_xml_schema_simple_content_ops 
+                axis2_xml_schema_simple_content_ops_t;
+
+struct axis2_xml_schema_simple_content_ops
+{
+    axis2_status_t (AXIS2_CALL *
+    free) (void *sim_content,
+            axis2_env_t **env);
+
+    axis2_xml_schema_annotated_t *(AXIS2_CALL *
+    get_base_impl) (void *sim_content,
+                    axis2_env_t **env);
+
+    void* (AXIS2_CALL *
+    get_content)(
+            void *sim_content,
+            axis2_env_t **env);
+    
+    axis2_status_t (AXIS2_CALL *
+    set_content)(
+            void *sim_content,
+            axis2_env_t **env,
+            void *content,
+            int content_type);
+    
+    int (AXIS2_CALL *
+    get_content_type)(
+            void *sim_content,
+            axis2_env_t **env);
+            
+    axis2_char_t* (AXIS2_CALL*
+    to_string)(void *sim_content,
+               axis2_env_t **env,
+               axis2_char_t *prefix,
+               int tab);
+    
+};
+
+struct axis2_xml_schema_simple_content
+{
+    axis2_xml_schema_annotated_t base;
+    axis2_xml_schema_simple_content_ops_t *ops;
+};
+
+/**
+ * Creates new Xml Schema Group
+ */
+AXIS2_DECLARE(axis2_xml_schema_simple_content_t *)
+axis2_xml_schema_simple_content_create(axis2_env_t **env);
+
+/**
+ * This method is internal to Axis2 C. It is called from Child Constructor
+ */
+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);
+
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_FREE(sim_content, env) \
+		(((axis2_xml_schema_simple_content_t *) sim_content)->ops->\
+            free(sim_content, env))
+
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_GET_BASE_IMPL(sim_content, env) \
+		(((axis2_xml_schema_simple_content_t *) sim_content)->ops->\
+            get_base_impl(sim_content, env))
+
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_GET_CONTENT(sim_content, env) \
+		(((axis2_xml_schema_simple_content_t *) sim_content)->ops->\
+            get_content(sim_content, env))
+
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_SET_CONTENT(sim_content, env, content, content_type) \
+		(((axis2_xml_schema_simple_content_t *) sim_content)->ops->\
+            set_content(sim_content, env, content, content_type ))
+
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_GET_CONTENT_TYPE(sim_content, env) \
+		(((axis2_xml_schema_simple_content_t *) sim_content)->ops->\
+            get_content_type(sim_content, env))
+            
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_TO_STRING(sim_content, env, prefix, tab) \
+        (((axis2_xml_schema_simple_content_t *) sim_content)->ops->\
+            to_string(sim_content, env, prefix, tab))            
+
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_XML_SCHEMA_SIMPLE_CONTENT_H */

Added: webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_simple_content_extension.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_simple_content_extension.h?rev=399982&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_simple_content_extension.h (added)
+++ webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_simple_content_extension.h Thu May  4 23:12:38 2006
@@ -0,0 +1,140 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_XML_SCHEMA_SIMPLE_CONTENT_EXTENSION_H
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_EXTENSION_H
+
+/**
+ * @file axis2_xml_schema_simple_content_extension.h
+ * @brief Axis2 Xml Schema Group Interface
+ *          Class that defines groups at the schema level that are referenced
+ *          from the complex types. Groups a set of element declarations so that
+ *          they can be incorporated as a sim_content_ext into complex type definitions.
+ *          Represents the World Wide Web Consortium (W3C) sim_content_ext element.
+ */
+
+#include <axis2_xml_schema_annotated.h>
+#include <axis2_xml_schema_obj_collection.h>
+#include <axis2_xml_schema_any_attribute.h>
+#include <axis2_hash.h>
+#include <axis2_qname.h>
+/** @defgroup axis2_xml_schema_simple_content_extension Xml Schema Group
+  * @ingroup axis2_xml_schema
+  * @{
+  */
+
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct axis2_xml_schema_simple_content_extension 
+                axis2_xml_schema_simple_content_extension_t;
+                
+typedef struct axis2_xml_schema_simple_content_extension_ops 
+                axis2_xml_schema_simple_content_extension_ops_t;
+
+struct axis2_xml_schema_simple_content_extension_ops
+{
+    axis2_status_t (AXIS2_CALL *
+    free) (void *sim_content_ext,
+            axis2_env_t **env);
+
+    axis2_xml_schema_annotated_t *(AXIS2_CALL *
+    get_base_impl) (void *sim_content_ext,
+                    axis2_env_t **env);
+
+    axis2_xml_schema_any_attribute_t* (AXIS2_CALL *
+    get_any_attribute)(
+            void *sim_content_ext,
+            axis2_env_t **env);
+    
+    axis2_status_t (AXIS2_CALL *
+    set_any_attribute)(
+            void *sim_content_ext,
+            axis2_env_t **env,
+            axis2_xml_schema_any_attribute_t *any_attr);
+    
+    axis2_xml_schema_obj_collection_t* (AXIS2_CALL *
+    get_attributes)(
+            void *sim_content_ext,
+            axis2_env_t **env);
+            
+    axis2_qname_t* (AXIS2_CALL*
+    get_base_type_name)(
+            void *sim_content_ext,
+            axis2_env_t **env);
+            
+    axis2_status_t (AXIS2_CALL *
+    set_base_type_name)(
+            void *sim_content_ext,
+            axis2_env_t **env,
+            axis2_qname_t *qname);
+            
+
+    
+};
+
+struct axis2_xml_schema_simple_content_extension
+{
+    axis2_xml_schema_annotated_t base;
+    axis2_xml_schema_simple_content_extension_ops_t *ops;
+};
+
+/**
+ * Creates new Xml Schema Group
+ */
+AXIS2_DECLARE(axis2_xml_schema_simple_content_extension_t *)
+axis2_xml_schema_simple_content_extension_create(axis2_env_t **env);
+
+
+
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_EXTENSION_FREE(sim_content_ext, env) \
+		(((axis2_xml_schema_simple_content_extension_t *) sim_content_ext)->ops->\
+            free(sim_content_ext, env))
+
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_EXTENSION_GET_BASE_IMPL(sim_content_ext, env) \
+		(((axis2_xml_schema_simple_content_extension_t *) sim_content_ext)->ops->\
+            get_base_impl(sim_content_ext, env))
+
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_EXTENSION_GET_ANY_ATTRIBUTE(sim_content_ext, env) \
+		(((axis2_xml_schema_simple_content_extension_t *) sim_content_ext)->ops->\
+            get_any_attribute(sim_content_ext, env))
+
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_EXTENSION_SET__ANY_ATTRIBUTE(sim_content_ext, env, any_attr)\
+		(((axis2_xml_schema_simple_content_extension_t *) sim_content_ext)->ops->\
+            set_content(sim_content_ext, env, any_attr ))
+
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_EXTENSION_GET_ATTRIBUTES(sim_content_ext, env) \
+		(((axis2_xml_schema_simple_content_extension_t *) sim_content_ext)->ops->\
+            get_attributes(sim_content_ext, env))
+            
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_EXTENSION_GET_BASE_TYPE_NAME(sim_content_ext, env)\
+        (((axis2_xml_schema_simple_content_extension_t *) sim_content_ext)->ops->\
+            get_base_type_name(sim_content_ext, env))            
+
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_EXTENSION_SET_BASE_TYPE_NAME(sim_content_ext, env, base_type_name) \
+        (((axis2_xml_schema_simple_content_extension_t *) sim_content_ext)->ops->\
+            set_base_type_name(sim_content_ext, env, base_type_name))
+            
+            
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_XML_SCHEMA_SIMPLE_CONTENT_EXTENSION_H */

Added: webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_simple_content_restriction.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_simple_content_restriction.h?rev=399982&view=auto
==============================================================================
--- webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_simple_content_restriction.h (added)
+++ webservices/axis2/trunk/c/include/xml_schema/axis2_xml_schema_simple_content_restriction.h Thu May  4 23:12:38 2006
@@ -0,0 +1,164 @@
+/*
+ * Copyright 2004,2005 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef AXIS2_XML_SCHEMA_SIMPLE_CONTENT_RESTRICTION_H
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_RESTRICTION_H
+
+/**
+ * @file axis2_xml_schema_simple_content_restriction.h
+ * @brief Axis2 Xml Schema Group Interface
+ *          Class that defines groups at the schema level that are referenced
+ *          from the complex types. Groups a set of element declarations so that
+ *          they can be incorporated as a sim_content_res into complex type definitions.
+ *          Represents the World Wide Web Consortium (W3C) sim_content_res element.
+ */
+
+#include <axis2_xml_schema_annotated.h>
+#include <axis2_xml_schema_obj_collection.h>
+#include <axis2_xml_schema_any_attribute.h>
+#include <axis2_xml_schema_simple_type.h>
+#include <axis2_hash.h>
+#include <axis2_qname.h>
+
+/** @defgroup axis2_xml_schema_simple_content_restriction Xml Schema Group
+  * @ingroup axis2_xml_schema
+  * @{
+  */
+
+
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef struct axis2_xml_schema_simple_content_restriction 
+                axis2_xml_schema_simple_content_restriction_t;
+                
+typedef struct axis2_xml_schema_simple_content_restriction_ops 
+                axis2_xml_schema_simple_content_restriction_ops_t;
+
+struct axis2_xml_schema_simple_content_restriction_ops
+{
+    axis2_status_t (AXIS2_CALL *
+    free) (void *sim_content_res,
+            axis2_env_t **env);
+
+    axis2_xml_schema_annotated_t *(AXIS2_CALL *
+    get_base_impl) (void *sim_content_res,
+                    axis2_env_t **env);
+
+    axis2_xml_schema_any_attribute_t* (AXIS2_CALL *
+    get_any_attribute)(
+            void *sim_content_res,
+            axis2_env_t **env);
+    
+    axis2_status_t (AXIS2_CALL *
+    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 *
+    get_attributes)(
+            void *sim_content_res,
+            axis2_env_t **env);
+            
+    axis2_qname_t* (AXIS2_CALL*
+    get_base_type_name)(
+            void *sim_content_res,
+            axis2_env_t **env);
+            
+    axis2_status_t (AXIS2_CALL *
+    set_base_type_name)(
+            void *sim_content_res,
+            axis2_env_t **env,
+            axis2_qname_t *qname); 
+            
+    axis2_xml_schema_simple_type_t* (AXIS2_CALL*
+    get_base_type)(void *sim_content_res,
+                   axis2_env_t **env);
+                   
+    axis2_status_t (AXIS2_CALL *
+    set_base_type)(void *sim_content_res,
+                   axis2_env_t **env,
+                   axis2_xml_schema_simple_type_t *base_type); 
+                   
+    axis2_xml_schema_obj_collection_t* (AXIS2_CALL *
+    get_facets)(void *sim_content_res,
+                axis2_env_t **env);                   
+};
+
+struct axis2_xml_schema_simple_content_restriction
+{
+    axis2_xml_schema_annotated_t base;
+    axis2_xml_schema_simple_content_restriction_ops_t *ops;
+};
+
+/**
+ * Creates new Xml Schema Group
+ */
+AXIS2_DECLARE(axis2_xml_schema_simple_content_restriction_t *)
+axis2_xml_schema_simple_content_restriction_create(axis2_env_t **env);
+
+
+
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_RESTRICTION_FREE(sim_content_res, env) \
+		(((axis2_xml_schema_simple_content_restriction_t *) sim_content_res)->ops->\
+            free(sim_content_res, env))
+
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_RESTRICTION_GET_BASE_IMPL(sim_content_res, env) \
+		(((axis2_xml_schema_simple_content_restriction_t *) sim_content_res)->ops->\
+            get_base_impl(sim_content_res, env))
+
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_RESTRICTION_GET_ANY_ATTRIBUTE(sim_content_res, env) \
+		(((axis2_xml_schema_simple_content_restriction_t *) sim_content_res)->ops->\
+            get_any_attribute(sim_content_res, env))
+
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_RESTRICTION_SET__ANY_ATTRIBUTE(sim_content_res, env, any_attr)\
+		(((axis2_xml_schema_simple_content_restriction_t *) sim_content_res)->ops->\
+            set_content(sim_content_res, env, any_attr ))
+
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_RESTRICTION_GET_ATTRIBUTES(sim_content_res, env) \
+		(((axis2_xml_schema_simple_content_restriction_t *) sim_content_res)->ops->\
+            get_attributes(sim_content_res, env))
+            
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_RESTRICTION_GET_BASE_TYPE_NAME(sim_content_res, env)\
+        (((axis2_xml_schema_simple_content_restriction_t *) sim_content_res)->ops->\
+            get_base_type_name(sim_content_res, env))            
+
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_RESTRICTION_SET_BASE_TYPE_NAME(sim_content_res, env, base_type_name) \
+        (((axis2_xml_schema_simple_content_restriction_t *) sim_content_res)->ops->\
+            set_base_type_name(sim_content_res, env, base_type_name))
+            
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_RESTRICTION_SET_BASE_TYPE(sim_content_res, env, base_type) \
+        (((axis2_xml_schema_simple_content_restriction_t *) sim_content_res)->ops->\
+            set_base_type(sim_content_res, env, base_type)) 
+            
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_RESTRICTION_GET_BASE_TYPE(sim_content_res, env)\
+        (((axis2_xml_schema_simple_content_restriction_t *) sim_content_res)->ops->\
+            get_base_type(sim_content_res, env))
+            
+#define AXIS2_XML_SCHEMA_SIMPLE_CONTENT_RESTRICTION_GET_FACETS(sim_content_res, env)\
+        (((axis2_xml_schema_simple_content_restriction_t *) sim_content_res)->ops->\
+            get_facets(sim_content_res, env))            
+            
+                                            
+/** @} */
+#ifdef __cplusplus
+}
+#endif
+#endif /* AXIS2_XML_SCHEMA_SIMPLE_CONTENT_RESTRICTION_H */

Added: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_complex_content.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_complex_content.c?rev=399982&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_complex_content.c (added)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_complex_content.c Thu May  4 23:12:38 2006
@@ -0,0 +1,361 @@
+/*
+ * 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.h>
+
+typedef struct axis2_xml_schema_complex_content_impl 
+                    axis2_xml_schema_complex_content_impl_t;
+
+/** 
+ * @brief Other Extension Struct Impl
+ *	Axis2 Other Extension  
+ */ 
+struct axis2_xml_schema_complex_content_impl
+{
+    axis2_xml_schema_complex_content_t complex_content;
+    
+    axis2_xml_schema_annotated_t *annotated;
+    
+    axis2_hash_t *methods;
+    
+    void *content;
+    
+    int content_type;
+    
+    axis2_bool_t mixed;
+};
+
+#define AXIS2_INTF_TO_IMPL(complex_content) \
+        ((axis2_xml_schema_complex_content_impl_t *) complex_content)
+
+axis2_status_t AXIS2_CALL 
+axis2_xml_schema_complex_content_free(void *complex_content,
+                        axis2_env_t **env);
+
+axis2_xml_schema_annotated_t *AXIS2_CALL
+axis2_xml_schema_complex_content_get_base_impl(void *complex_content,
+                                        axis2_env_t **env);
+
+void* AXIS2_CALL
+axis2_xml_schema_complex_content_get_content(void *complex_content,
+                                            axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_complex_content_set_content(void *complex_content,
+                                            axis2_env_t **env,
+                                            void* content,
+                                            int content_type);
+
+int AXIS2_CALL
+axis2_xml_schema_complex_content_get_content_type(void *complex_content,
+                                                 axis2_env_t **env);
+
+axis2_char_t* AXIS2_CALL
+axis2_xml_schema_complex_content_to_string(void *complex_content,
+                                          axis2_env_t **env,
+                                          axis2_char_t *prefix, 
+                                          int tab);
+                                          
+axis2_bool_t AXIS2_CALL
+axis2_xml_schema_complex_content_is_mixed(void *complex_content,
+                                          axis2_env_t **env);
+                                                                                    
+                                          
+
+AXIS2_DECLARE(axis2_xml_schema_complex_content_t *)
+axis2_xml_schema_complex_content_create(axis2_env_t **env)
+{
+    axis2_xml_schema_complex_content_impl_t *complex_content_impl = NULL;
+    axis2_status_t status = AXIS2_FAILURE;
+
+    complex_content_impl = (axis2_xml_schema_complex_content_impl_t*)AXIS2_MALLOC((*env)->allocator, 
+        sizeof(axis2_xml_schema_complex_content_impl_t));
+    if(!complex_content_impl)
+    {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+    
+    complex_content_impl->annotated = NULL;
+    complex_content_impl->methods = NULL;
+    complex_content_impl->content = NULL;
+    complex_content_impl->content_type = -1;
+    complex_content_impl->mixed = AXIS2_FALSE;
+    complex_content_impl->complex_content.base.ops = NULL;
+    complex_content_impl->complex_content.ops = NULL;
+    
+    complex_content_impl->complex_content.ops = AXIS2_MALLOC((*env)->allocator, 
+                    sizeof(axis2_xml_schema_complex_content_ops_t));
+    if(!complex_content_impl->complex_content.ops)
+    {
+        axis2_xml_schema_complex_content_free(&(complex_content_impl->complex_content), env);
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+
+
+    complex_content_impl->complex_content.ops->free = 
+            axis2_xml_schema_complex_content_free;
+    complex_content_impl->complex_content.ops->get_base_impl = 
+            axis2_xml_schema_complex_content_get_base_impl;
+    complex_content_impl->complex_content.ops->get_content_type = 
+            axis2_xml_schema_complex_content_get_content_type;
+    complex_content_impl->complex_content.ops->set_content = 
+            axis2_xml_schema_complex_content_set_content;
+    complex_content_impl->complex_content.ops->get_content = 
+            axis2_xml_schema_complex_content_get_content;
+    complex_content_impl->complex_content.ops->to_string = 
+            axis2_xml_schema_complex_content_to_string;
+   
+    complex_content_impl->methods = axis2_hash_make(env);
+   
+    if(!complex_content_impl->methods)
+    {
+        axis2_xml_schema_complex_content_free(&(complex_content_impl->complex_content), env);
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+    axis2_hash_set(complex_content_impl->methods, "free", AXIS2_HASH_KEY_STRING, 
+            axis2_xml_schema_complex_content_free);
+    axis2_hash_set(complex_content_impl->methods, "get_content", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_complex_content_get_content);
+    axis2_hash_set(complex_content_impl->methods, "set_content", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_complex_content_set_content);
+    axis2_hash_set(complex_content_impl->methods, "get_content_type", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_complex_content_get_content_type);
+    axis2_hash_set(complex_content_impl->methods, "to_string", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_complex_content_to_string);
+    
+    complex_content_impl->annotated = axis2_xml_schema_annotated_create(env);
+    if(!complex_content_impl->annotated)
+    {
+        axis2_xml_schema_complex_content_free(&(complex_content_impl->complex_content), env);
+        return NULL;
+    }
+    status = axis2_xml_schema_annotated_resolve_methods(
+            &(complex_content_impl->complex_content.base), env, complex_content_impl->annotated, 
+            complex_content_impl->methods);
+    
+    return &(complex_content_impl->complex_content);
+}
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_complex_content_free(void *complex_content,
+                                    axis2_env_t **env)
+{
+    axis2_xml_schema_complex_content_impl_t *complex_content_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    complex_content_impl = AXIS2_INTF_TO_IMPL(complex_content);
+
+    if(NULL != complex_content_impl->content)
+    {
+        /** TODO */
+    }
+
+    if(NULL != complex_content_impl->methods)
+    {
+        axis2_hash_free(complex_content_impl->methods, env);
+        complex_content_impl->methods = NULL;
+    }
+    if(NULL != complex_content_impl->annotated)
+    {
+        AXIS2_XML_SCHEMA_ANNOTATED_FREE(complex_content_impl->annotated, env);
+        complex_content_impl->annotated = NULL;
+    }
+    if(NULL != complex_content_impl->complex_content.base.ops)
+    {
+        AXIS2_FREE((*env)->allocator, complex_content_impl->complex_content.base.ops);
+        complex_content_impl->complex_content.base.ops = NULL;  
+    }
+    if(NULL != complex_content_impl->complex_content.ops)
+    {
+        AXIS2_FREE((*env)->allocator, complex_content_impl->complex_content.ops);
+        complex_content_impl->complex_content.ops = NULL;
+    }
+ 
+    AXIS2_FREE((*env)->allocator, complex_content_impl);
+    complex_content_impl = NULL;
+    return AXIS2_SUCCESS;
+}
+
+axis2_xml_schema_annotated_t *AXIS2_CALL
+axis2_xml_schema_complex_content_get_base_impl(void *complex_content,
+                                axis2_env_t **env)
+{
+    axis2_xml_schema_complex_content_impl_t *complex_content_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, NULL);
+    complex_content_impl = AXIS2_INTF_TO_IMPL(complex_content);
+    return complex_content_impl->annotated;
+}
+
+AXIS2_DECLARE(axis2_status_t)
+axis2_xml_schema_complex_content_resolve_methods(
+                                axis2_xml_schema_complex_content_t *complex_content,
+                                axis2_env_t **env,
+                                axis2_xml_schema_complex_content_t *complex_content_impl,
+                                axis2_hash_t *methods)
+{
+    axis2_xml_schema_complex_content_impl_t *complex_content_impl_l = NULL;
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, complex_content_impl, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, methods, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, complex_content, AXIS2_FAILURE);
+    
+    complex_content_impl_l = (axis2_xml_schema_complex_content_impl_t *) complex_content_impl;
+    
+    complex_content->ops = AXIS2_MALLOC((*env)->allocator, 
+            sizeof(axis2_xml_schema_complex_content_ops_t));
+    if(!complex_content->ops)
+    {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return AXIS2_FAILURE;
+    }
+    complex_content->ops->free = axis2_hash_get(methods, "free", 
+            AXIS2_HASH_KEY_STRING);
+    complex_content->ops->get_base_impl = 
+            complex_content_impl_l->complex_content.ops->get_base_impl;
+    complex_content->ops->get_content_type = 
+            complex_content_impl_l->complex_content.ops->get_content_type;
+    complex_content->ops->get_content = 
+            complex_content_impl_l->complex_content.ops->get_content;
+    complex_content->ops->set_content = 
+            complex_content_impl_l->complex_content.ops->set_content;
+    complex_content->ops->to_string = 
+            complex_content_impl_l->complex_content.ops->to_string;
+    complex_content->ops->is_mixed = 
+            complex_content_impl_l->complex_content.ops->is_mixed;
+                        
+    
+    return axis2_xml_schema_annotated_resolve_methods(&(complex_content->base), 
+            env, complex_content_impl_l->annotated, methods);
+}
+
+void* AXIS2_CALL
+axis2_xml_schema_complex_content_get_content(void *complex_content,
+                                axis2_env_t **env)
+{
+    AXIS2_ENV_CHECK(env, NULL);
+    return AXIS2_INTF_TO_IMPL(complex_content)->content;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_complex_content_set_content(void *complex_content,
+                                axis2_env_t **env,
+                                void *content,
+                                int content_type)
+{
+    axis2_xml_schema_complex_content_impl_t *complex_content_impl = NULL;
+    
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    AXIS2_PARAM_CHECK((*env)->error, content, AXIS2_FAILURE);
+    
+    complex_content_impl = AXIS2_INTF_TO_IMPL(complex_content);
+
+    if(NULL != complex_content_impl->content)
+    {
+        /** TODO */
+        
+    }
+    complex_content_impl->content = content;
+    complex_content_impl->content_type = content_type;
+    
+    return AXIS2_SUCCESS;
+}
+
+int AXIS2_CALL
+axis2_xml_schema_complex_content_get_content_type(void *complex_content,
+                                        axis2_env_t **env)
+{
+    AXIS2_ENV_CHECK(env, -1);
+    return AXIS2_INTF_TO_IMPL(complex_content)->content_type;
+}
+
+axis2_char_t* AXIS2_CALL
+axis2_xml_schema_complex_content_to_string(void *complex_content,
+                                          axis2_env_t **env,
+                                          axis2_char_t *prefix, 
+                                          int tab)
+{
+    axis2_xml_schema_complex_content_impl_t *complex_content_impl = NULL;
+    axis2_char_t *xml = NULL;
+    axis2_char_t *temp_xml = NULL;
+    axis2_char_t *temp_prefix = NULL;
+    int i = 0;
+    
+    AXIS2_ENV_CHECK(env, NULL);
+    for(i = 0; i < tab; i++)
+    {
+        if(xml == NULL)
+        {
+            xml = AXIS2_STRDUP("\t", env);
+        }
+        else
+        {
+            temp_xml = xml;
+            xml = AXIS2_STRACAT(xml, "\t", env);
+            if(NULL != temp_xml)
+                AXIS2_FREE((*env)->allocator, temp_xml);
+            temp_xml = NULL;
+        }
+    }
+    
+    temp_prefix = prefix;
+    
+    if(NULL != prefix && AXIS2_STRCMP(prefix, "") != 0 && strchr(prefix, ':') == NULL)
+    {
+        temp_prefix = AXIS2_STRACAT(prefix, ":", env);
+    }
+        
+    temp_xml = AXIS2_STRACAT("<", prefix, env);
+    xml = AXIS2_STRACAT(temp_xml, "complexContent>\n", env);
+    if(NULL != temp_xml)
+    {
+        AXIS2_FREE((*env)->allocator, temp_xml);
+        temp_xml = NULL;
+    }
+    
+    /** TODO implement swith to get string of content */                            
+    
+    
+    return xml;
+}
+
+axis2_bool_t AXIS2_CALL
+axis2_xml_schema_complex_content_is_mixed(void *complex_content,
+                                          axis2_env_t **env)
+{
+    axis2_xml_schema_complex_content_impl_t *complex_content_impl = NULL;
+    /** AXIS2_ENV_CHECK(env, AXIS2_FAILURE); */
+    complex_content_impl = AXIS2_INTF_TO_IMPL(complex_content);
+    return complex_content_impl->mixed;
+}                                          
+                                            
+axis2_status_t AXIS2_CALL 
+axis2_xml_scheam_complex_content_set_mixed(void *complex_content,
+                                           axis2_env_t **env,
+                                           axis2_bool_t mixed)
+{
+    axis2_xml_schema_complex_content_impl_t *complex_content_impl = NULL;
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    complex_content_impl = AXIS2_INTF_TO_IMPL(complex_content);
+    complex_content_impl->mixed = mixed;
+    return AXIS2_SUCCESS;
+}
+                                           
+                                            
\ No newline at end of file

Added: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_complex_content_extension.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_complex_content_extension.c?rev=399982&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_complex_content_extension.c (added)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_complex_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_simple_content_extension.h>
+
+typedef struct axis2_xml_schema_simple_content_extension_impl 
+                    axis2_xml_schema_simple_content_extension_impl_t;
+
+/** 
+ * @brief Other Extension Struct Impl
+ *	Axis2 Other Extension  
+ */ 
+struct axis2_xml_schema_simple_content_extension_impl
+{
+    axis2_xml_schema_simple_content_extension_t sim_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(sim_content_ext) \
+        ((axis2_xml_schema_simple_content_extension_impl_t *) sim_content_ext)
+
+axis2_status_t AXIS2_CALL 
+axis2_xml_schema_simple_content_extension_free(void *sim_content_ext,
+                        axis2_env_t **env);
+
+axis2_xml_schema_annotated_t *AXIS2_CALL
+axis2_xml_schema_simple_content_extension_get_base_impl(void *sim_content_ext,
+                                        axis2_env_t **env);
+
+axis2_xml_schema_any_attribute_t* AXIS2_CALL
+axis2_xml_schema_simple_content_extension_get_any_attribute(
+                                            void *sim_content_ext,
+                                            axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_simple_content_extension_set_any_attribute(void *sim_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_simple_content_extension_get_attributes(void *sim_content_ext,
+                                                         axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_simple_content_extension_set_base_type_name(
+                                          void *sim_content_ext,
+                                          axis2_env_t **env,
+                                          axis2_qname_t *base_type_name);
+                                          
+axis2_qname_t* AXIS2_CALL
+axis2_xml_schema_simple_content_extension_get_base_type_name(
+                                          void *sim_content_ext,
+                                          axis2_env_t **env);
+                                          
+int AXIS2_CALL 
+axis2_xml_schema_simple_content_extension_get_type(
+                                        void *sim_content_ext,
+                                        axis2_env_t **env);                                          
+                                          
+/*************************** end function protos **********************************/                                          
+AXIS2_DECLARE(axis2_xml_schema_simple_content_extension_t *)
+axis2_xml_schema_simple_content_extension_create(axis2_env_t **env)
+{
+    axis2_xml_schema_simple_content_extension_impl_t *sim_content_ext_impl = NULL;
+    axis2_status_t status = AXIS2_FAILURE;
+
+    sim_content_ext_impl = (axis2_xml_schema_simple_content_extension_impl_t*)
+        AXIS2_MALLOC((*env)->allocator, sizeof(axis2_xml_schema_simple_content_extension_impl_t));
+        
+    if(!sim_content_ext_impl)
+    {
+        AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+    
+    sim_content_ext_impl->annotated = NULL;
+    sim_content_ext_impl->methods = NULL;
+    sim_content_ext_impl->sim_content_ext.base.ops = NULL;
+    sim_content_ext_impl->sim_content_ext.ops = NULL;
+    sim_content_ext_impl->attributes = NULL;
+    sim_content_ext_impl->base_type_name = NULL;
+    sim_content_ext_impl->any_attribute = NULL;
+    
+    sim_content_ext_impl->sim_content_ext.ops = AXIS2_MALLOC((*env)->allocator, 
+                    sizeof(axis2_xml_schema_simple_content_extension_ops_t));
+    if(!sim_content_ext_impl->sim_content_ext.ops)
+    {
+        axis2_xml_schema_simple_content_extension_free(
+            &(sim_content_ext_impl->sim_content_ext), env);
+        AXIS2_ERROR_SET((*env)->error, 
+            AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+
+
+    sim_content_ext_impl->sim_content_ext.ops->free = 
+            axis2_xml_schema_simple_content_extension_free;
+    sim_content_ext_impl->sim_content_ext.ops->get_base_impl = 
+            axis2_xml_schema_simple_content_extension_get_base_impl;
+    sim_content_ext_impl->sim_content_ext.ops->get_any_attribute = 
+            axis2_xml_schema_simple_content_extension_get_any_attribute;
+    sim_content_ext_impl->sim_content_ext.ops->set_any_attribute = 
+            axis2_xml_schema_simple_content_extension_set_any_attribute;
+    sim_content_ext_impl->sim_content_ext.ops->get_attributes = 
+            axis2_xml_schema_simple_content_extension_get_attributes;
+    sim_content_ext_impl->sim_content_ext.ops->get_base_type_name = 
+            axis2_xml_schema_simple_content_extension_get_base_type_name;
+    sim_content_ext_impl->sim_content_ext.ops->set_base_type_name =
+            axis2_xml_schema_simple_content_extension_set_base_type_name; 
+
+    sim_content_ext_impl->methods = axis2_hash_make(env);
+   
+    if(!sim_content_ext_impl->methods)
+    {
+        axis2_xml_schema_simple_content_extension_free(
+            &(sim_content_ext_impl->sim_content_ext), env);
+        AXIS2_ERROR_SET((*env)->error, 
+            AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+        return NULL;
+    }
+    axis2_hash_set(sim_content_ext_impl->methods, "free", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_simple_content_extension_free);
+    axis2_hash_set(sim_content_ext_impl->methods, "get_any_attribute", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_simple_content_extension_get_any_attribute);
+    axis2_hash_set(sim_content_ext_impl->methods, "set_any_attribute", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_simple_content_extension_set_any_attribute);
+    axis2_hash_set(sim_content_ext_impl->methods, "get_attributes", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_simple_content_extension_get_attributes);
+    axis2_hash_set(sim_content_ext_impl->methods, "get_base_type_name", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_simple_content_extension_get_base_type_name);
+    axis2_hash_set(sim_content_ext_impl->methods, "set_base_type_name",
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_simple_content_extension_set_base_type_name);
+    sim_content_ext_impl->annotated = axis2_xml_schema_annotated_create(env);
+    if(!sim_content_ext_impl->annotated)
+    {
+        axis2_xml_schema_simple_content_extension_free(
+                &(sim_content_ext_impl->sim_content_ext), env);
+        return NULL;
+    }
+    sim_content_ext_impl->attributes = axis2_xml_schema_obj_collection_create(env);
+    if(!sim_content_ext_impl->attributes)
+    {
+        axis2_xml_schema_simple_content_extension_free(&(sim_content_ext_impl->sim_content_ext), env);
+        return NULL;
+    }
+    status = axis2_xml_schema_annotated_resolve_methods(
+            &(sim_content_ext_impl->sim_content_ext.base), env, sim_content_ext_impl->annotated, 
+            sim_content_ext_impl->methods);
+    
+    return &(sim_content_ext_impl->sim_content_ext);
+}
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_simple_content_extension_free(void *sim_content_ext_ext,
+                                    axis2_env_t **env)
+{
+    axis2_xml_schema_simple_content_extension_impl_t *content_ext_impl = NULL;
+
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    content_ext_impl = AXIS2_INTF_TO_IMPL(sim_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->sim_content_ext.base.ops)
+    {
+        AXIS2_FREE((*env)->allocator, content_ext_impl->sim_content_ext.base.ops);
+        content_ext_impl->sim_content_ext.base.ops = NULL;  
+    }
+    if(NULL != content_ext_impl->sim_content_ext.ops)
+    {
+        AXIS2_FREE((*env)->allocator, content_ext_impl->sim_content_ext.ops);
+        content_ext_impl->sim_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_simple_content_extension_get_base_impl(void *sim_content_ext,
+                                axis2_env_t **env)
+{
+    axis2_xml_schema_simple_content_extension_impl_t *content_ext_impl = NULL;
+    AXIS2_ENV_CHECK(env, NULL);
+    content_ext_impl = AXIS2_INTF_TO_IMPL(sim_content_ext);
+    return content_ext_impl->annotated;
+}
+
+
+
+axis2_xml_schema_any_attribute_t* AXIS2_CALL
+axis2_xml_schema_simple_content_extension_get_any_attribute(void *sim_content_ext,
+                                                            axis2_env_t **env)
+{
+    axis2_xml_schema_simple_content_extension_impl_t *cnt_ext_impl = NULL;
+    AXIS2_ENV_CHECK(env, NULL);
+    cnt_ext_impl = AXIS2_INTF_TO_IMPL(sim_content_ext);
+    return cnt_ext_impl->any_attribute;    
+}
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_simple_content_extension_set_any_attribute(void *sim_content_ext,
+                                axis2_env_t **env,
+                                axis2_xml_schema_any_attribute_t *any_attr)
+{
+    axis2_xml_schema_simple_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_simple_content_extension_get_attributes(void *sim_content,
+                                                        axis2_env_t **env)
+{
+    axis2_xml_schema_simple_content_extension_impl_t *cnt_ext_impl = NULL;
+    AXIS2_ENV_CHECK(env, NULL);
+    cnt_ext_impl = AXIS2_INTF_TO_IMPL(sim_content);
+    return cnt_ext_impl->attributes;
+}
+
+axis2_qname_t* AXIS2_CALL
+axis2_xml_schema_simple_content_extension_get_base_type_name(
+                                          void *sim_content,
+                                          axis2_env_t **env)
+{
+    axis2_xml_schema_simple_content_extension_impl_t *content_ext_impl = NULL;
+    AXIS2_ENV_CHECK(env, NULL);
+    content_ext_impl = AXIS2_INTF_TO_IMPL(sim_content);
+    return content_ext_impl->base_type_name;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_simple_content_extension_set_base_type_name(
+                                          void *sim_content,
+                                          axis2_env_t **env,
+                                          axis2_qname_t *base_type_name)
+{
+    axis2_xml_schema_simple_content_extension_impl_t *content_ext_impl = NULL;
+    AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+    content_ext_impl = AXIS2_INTF_TO_IMPL(sim_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_complex_content_restriction.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_complex_content_restriction.c?rev=399982&view=auto
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_complex_content_restriction.c (added)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_complex_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_simple_content_restriction.h>
+
+typedef struct axis2_xml_schema_simple_content_restriction_impl 
+                    axis2_xml_schema_simple_content_restriction_impl_t;
+
+/** 
+ * @brief Other Extension Struct Impl
+ *	Axis2 Other Extension  
+ */ 
+struct axis2_xml_schema_simple_content_restriction_impl
+{
+    axis2_xml_schema_simple_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_simple_content_restriction_impl_t *) sim_content_res)
+
+axis2_status_t AXIS2_CALL 
+axis2_xml_schema_simple_content_restriction_free(void *sim_content_res,
+                        axis2_env_t **env);
+
+axis2_xml_schema_annotated_t *AXIS2_CALL
+axis2_xml_schema_simple_content_restriction_get_base_impl(void *sim_content_res,
+                                        axis2_env_t **env);
+
+axis2_xml_schema_any_attribute_t* AXIS2_CALL
+axis2_xml_schema_simple_content_restriction_get_any_attribute(
+                                            void *sim_content_res,
+                                            axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_simple_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_simple_content_restriction_get_attributes(void *sim_content_res,
+                                                         axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_simple_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_simple_content_restriction_get_base_type_name(
+                                          void *sim_content_res,
+                                          axis2_env_t **env);
+                                          
+axis2_status_t AXIS2_CALL 
+axis2_xml_schema_simple_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_simple_content_restriction_get_base_type(void *sim_content_res,
+                                              axis2_env_t **env);
+                                                 
+axis2_xml_schema_obj_collection_t* AXIS2_CALL
+axis2_xml_schema_simple_content_restriction_get_facets(void *sim_content_res,
+                                                       axis2_env_t **env);                                          
+                                          
+                                          
+/*****************************************************************************/                                          
+AXIS2_DECLARE(axis2_xml_schema_simple_content_restriction_t *)
+axis2_xml_schema_simple_content_restriction_create(axis2_env_t **env)
+{
+    axis2_xml_schema_simple_content_restriction_impl_t *sim_content_res_impl = NULL;
+    axis2_status_t status = AXIS2_FAILURE;
+
+    sim_content_res_impl = (axis2_xml_schema_simple_content_restriction_impl_t*)
+        AXIS2_MALLOC((*env)->allocator, sizeof(axis2_xml_schema_simple_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_simple_content_restriction_ops_t));
+    if(!sim_content_res_impl->sim_content_res.ops)
+    {
+        axis2_xml_schema_simple_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_simple_content_restriction_free;
+            
+    sim_content_res_impl->sim_content_res.ops->get_base_impl = 
+            axis2_xml_schema_simple_content_restriction_get_base_impl;
+            
+    sim_content_res_impl->sim_content_res.ops->get_any_attribute = 
+            axis2_xml_schema_simple_content_restriction_get_any_attribute;
+            
+    sim_content_res_impl->sim_content_res.ops->set_any_attribute = 
+            axis2_xml_schema_simple_content_restriction_set_any_attribute;
+            
+    sim_content_res_impl->sim_content_res.ops->get_attributes = 
+            axis2_xml_schema_simple_content_restriction_get_attributes;
+            
+    sim_content_res_impl->sim_content_res.ops->get_base_type_name = 
+            axis2_xml_schema_simple_content_restriction_get_base_type_name;
+            
+    sim_content_res_impl->sim_content_res.ops->set_base_type_name =
+            axis2_xml_schema_simple_content_restriction_set_base_type_name;  
+            
+    sim_content_res_impl->sim_content_res.ops->set_base_type = 
+            axis2_xml_schema_simple_content_restriction_set_base_type;
+            
+    sim_content_res_impl->sim_content_res.ops->get_base_type =
+            axis2_xml_schema_simple_content_restriction_get_base_type;  
+            
+    sim_content_res_impl->sim_content_res.ops->get_facets =
+            axis2_xml_schema_simple_content_restriction_get_facets;                      
+                          
+   
+    sim_content_res_impl->methods = axis2_hash_make(env);
+   
+    if(!sim_content_res_impl->methods)
+    {
+        axis2_xml_schema_simple_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_simple_content_restriction_free);
+    axis2_hash_set(sim_content_res_impl->methods, "get_any_attribute", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_simple_content_restriction_get_any_attribute);
+    axis2_hash_set(sim_content_res_impl->methods, "set_any_attribute", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_simple_content_restriction_set_any_attribute);
+    axis2_hash_set(sim_content_res_impl->methods, "get_attributes", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_simple_content_restriction_get_attributes);
+    axis2_hash_set(sim_content_res_impl->methods, "get_base_type_name", 
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_simple_content_restriction_get_base_type_name);
+    axis2_hash_set(sim_content_res_impl->methods, "set_base_type_name",
+            AXIS2_HASH_KEY_STRING, axis2_xml_schema_simple_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_simple_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_simple_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_simple_content_restriction_free(void *sim_content_res,
+                                    axis2_env_t **env)
+{
+    axis2_xml_schema_simple_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_simple_content_restriction_get_base_impl(void *sim_content_res,
+                                axis2_env_t **env)
+{
+    axis2_xml_schema_simple_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_simple_content_restriction_get_any_attribute(void *sim_content_res,
+                                                            axis2_env_t **env)
+{
+    axis2_xml_schema_simple_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_simple_content_restriction_set_any_attribute(void *sim_content_res,
+                                axis2_env_t **env,
+                                axis2_xml_schema_any_attribute_t *any_attr)
+{
+    axis2_xml_schema_simple_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_simple_content_restriction_get_attributes(void *sim_content,
+                                                        axis2_env_t **env)
+{
+    axis2_xml_schema_simple_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_simple_content_restriction_get_base_type_name(
+                                          void *sim_content,
+                                          axis2_env_t **env)
+{
+    axis2_xml_schema_simple_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_simple_content_restriction_set_base_type_name(
+                                          void *sim_content,
+                                          axis2_env_t **env,
+                                          axis2_qname_t *base_type_name)
+{
+    axis2_xml_schema_simple_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_simple_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_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_simple_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_simple_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