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