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/04/21 07:01:04 UTC
svn commit: r395780 [2/4] - in /webservices/axis2/trunk/c: include/
include/xml_schema/ modules/xml/om/ modules/xml/soap/ modules/xml/xml_schema/
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/validation_event_handler.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/validation_event_handler.c?rev=395780&r1=395779&r2=395780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/validation_event_handler.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/validation_event_handler.c Thu Apr 20 22:00:55 2006
@@ -14,82 +14,90 @@
* limitations under the License.
*/
-#include <xml_schema/axis2_validation_event_handler.h>
+#include <axis2_validation_event_handler.h>
#include <axis2_hash.h>
-typedef struct axis2_xml_schema_validation_event_handler_impl axis2_xml_schema_validation_event_handler_impl_t;
+typedef struct axis2_validation_event_handler_impl
+ axis2_validation_event_handler_impl_t;
/**
* @brief Xml Schema Validation Event Handler Struct Impl
* Axis2 Xml Schema Validation Event Handler
*/
-struct axis2_xml_schema_validation_event_handler_impl
+struct axis2_validation_event_handler_impl
{
- axis2_xml_schema_validation_event_handler_t axis2_validation_event_handler;
+ axis2_validation_event_handler_t veh;
};
-#define INTF_TO_IMPL(axis2_validation_event_handler) ((axis2_xml_schema_validation_event_handler_impl_t *) axis2_validation_event_handler)
+#define AXIS2_INTF_TO_IMPL(veh) \
+ ((axis2_validation_event_handler_impl_t *) veh)
axis2_status_t AXIS2_CALL
-axis2_xml_schema_validation_event_handler_free(void *axis2_validation_event_handler,
- axis2_env_t **env);
+axis2_validation_event_handler_free(axis2_validation_event_handler_t *veh,
+ axis2_env_t **env);
-AXIS2_DECLARE(axis2_xml_schema_validation_event_handler_t *)
-axis2_xml_schema_validation_event_handler_create(axis2_env_t **env)
+AXIS2_DECLARE(axis2_validation_event_handler_t *)
+axis2_validation_event_handler_create(axis2_env_t **env)
{
- axis2_xml_schema_validation_event_handler_impl_t *axis2_validation_event_handler_impl = NULL;
+ axis2_validation_event_handler_impl_t *veh_impl = NULL;
- axis2_validation_event_handler_impl = AXIS2_MALLOC((*env)->allocator,
- sizeof(axis2_xml_schema_validation_event_handler_impl_t));
-
- axis2_validation_event_handler_impl->axis2_validation_event_handler.ops = AXIS2_MALLOC((*env)->allocator,
- sizeof(axis2_xml_schema_validation_event_handler_ops_t));
+ veh_impl = AXIS2_MALLOC((*env)->allocator,
+ sizeof(axis2_validation_event_handler_impl_t));
+ if(!veh_impl)
+ {
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+ veh_impl->veh.ops = NULL;
+
+ veh_impl->veh.ops = AXIS2_MALLOC((*env)->allocator,
+ sizeof(axis2_validation_event_handler_ops_t));
- axis2_validation_event_handler_impl->axis2_validation_event_handler.ops->free = axis2_xml_schema_validation_event_handler_free;
+ veh_impl->veh.ops->free = axis2_validation_event_handler_free;
- return &(axis2_validation_event_handler_impl->axis2_validation_event_handler);
+ return &(veh_impl->veh);
}
axis2_status_t AXIS2_CALL
-axis2_xml_schema_validation_event_handler_free(void *axis2_validation_event_handler,
+axis2_validation_event_handler_free(axis2_validation_event_handler_t *veh,
axis2_env_t **env)
{
- axis2_xml_schema_validation_event_handler_impl_t *axis2_validation_event_handler_impl = NULL;
+ axis2_validation_event_handler_impl_t *veh_impl = NULL;
- axis2_validation_event_handler_impl = INTF_TO_IMPL(axis2_validation_event_handler);
+ veh_impl = AXIS2_INTF_TO_IMPL(veh);
- if((&(axis2_validation_event_handler_impl->axis2_validation_event_handler))->ops)
+ if(NULL != veh_impl->veh.ops)
{
- AXIS2_FREE((*env)->allocator ,((&(axis2_validation_event_handler_impl->axis2_validation_event_handler))->ops));
- (&(axis2_validation_event_handler_impl->axis2_validation_event_handler))->ops = NULL;
+ AXIS2_FREE((*env)->allocator, veh_impl->veh.ops);
+ veh_impl->veh.ops = NULL;
}
- if(axis2_validation_event_handler_impl)
+ if(NULL != veh_impl)
{
- free(axis2_validation_event_handler_impl);
- axis2_validation_event_handler_impl = NULL;
+ AXIS2_FREE((*env)->allocator, veh_impl);
+ veh_impl = NULL;
}
return AXIS2_SUCCESS;
}
AXIS2_DECLARE(axis2_status_t)
-axis2_xml_schema_validation_event_handler_resolve_methods(axis2_xml_schema_validation_event_handler_t *axis2_validation_event_handler,
+axis2_validation_event_handler_resolve_methods(axis2_validation_event_handler_t *axis2_validation_event_handler,
axis2_env_t **env,
- axis2_xml_schema_validation_event_handler_t *axis2_validation_event_handler_impl,
+ axis2_validation_event_handler_t *axis2_validation_event_handler_impl,
axis2_hash_t *methods)
{
- axis2_xml_schema_validation_event_handler_impl_t *axis2_validation_event_handler_impl_l = NULL;
+ axis2_validation_event_handler_impl_t *axis2_validation_event_handler_impl_l = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, axis2_validation_event_handler_impl, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, methods, AXIS2_FAILURE);
- axis2_validation_event_handler_impl_l = (axis2_xml_schema_validation_event_handler_impl_t *) axis2_validation_event_handler_impl;
+ axis2_validation_event_handler_impl_l = (axis2_validation_event_handler_impl_t *) axis2_validation_event_handler_impl;
axis2_validation_event_handler->ops = AXIS2_MALLOC((*env)->allocator,
- sizeof(axis2_xml_schema_validation_event_handler_ops_t));
+ sizeof(axis2_validation_event_handler_ops_t));
axis2_validation_event_handler->ops->free = axis2_hash_get(methods, "free",
AXIS2_HASH_KEY_STRING);
return AXIS2_SUCCESS;
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema.c?rev=395780&r1=395779&r2=395780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema.c Thu Apr 20 22:00:55 2006
@@ -14,15 +14,15 @@
* limitations under the License.
*/
-#include <xml_schema/axis2_xml_schema.h>
-#include <xml_schema/axis2_xml_schema_collection.h>
-#include <xml_schema/axis2_xml_schema_form.h>
-#include <xml_schema/axis2_xml_schema_obj_table.h>
-#include <xml_schema/axis2_xml_schema_derivation_method.h>
-#include <xml_schema/axis2_xml_schema_type.h>
-#include <xml_schema/axis2_xml_schema_obj_collection.h>
-#include <xml_schema/axis2_validation_event_handler.h>
-#include <xml_schema/axis2_xml_schema_element.h>
+#include <axis2_xml_schema.h>
+#include <axis2_xml_schema_collection.h>
+#include <axis2_xml_schema_form.h>
+#include <axis2_xml_schema_obj_table.h>
+#include <axis2_xml_schema_derivation_method.h>
+#include <axis2_xml_schema_type.h>
+#include <axis2_xml_schema_obj_collection.h>
+#include <axis2_validation_event_handler.h>
+#include <axis2_xml_schema_element.h>
typedef struct axis2_xml_schema_impl axis2_xml_schema_impl_t;
/**
@@ -54,7 +54,7 @@
axis2_xml_schema_collection_t *parent;
};
-#define INTF_TO_IMPL(schema) ((axis2_xml_schema_impl_t *) schema)
+#define AXIS2_INTF_TO_IMPL(schema) ((axis2_xml_schema_impl_t *) schema)
axis2_status_t AXIS2_CALL
axis2_xml_schema_free(void *schema,
@@ -167,7 +167,7 @@
axis2_status_t AXIS2_CALL
axis2_xml_schema_compile(void *schema,
axis2_env_t **env,
- axis2_xml_schema_validation_event_handler_t *eh);
+ axis2_validation_event_handler_t *eh);
axis2_status_t AXIS2_CALL
axis2_xml_schema_write_a_out(void *schema,
@@ -371,7 +371,7 @@
axis2_xml_schema_impl_t *schema_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- schema_impl = INTF_TO_IMPL(schema);
+ schema_impl = AXIS2_INTF_TO_IMPL(schema);
if(schema_impl->methods)
{
@@ -406,7 +406,7 @@
axis2_xml_schema_impl_t *schema_impl = NULL;
AXIS2_ENV_CHECK(env, NULL);
- schema_impl = INTF_TO_IMPL(schema);
+ schema_impl = AXIS2_INTF_TO_IMPL(schema);
return schema_impl->annotated;
}
@@ -511,7 +511,7 @@
axis2_xml_schema_impl_t *schema_impl = NULL;
AXIS2_ENV_CHECK(env, NULL);
- schema_impl = INTF_TO_IMPL(schema);
+ schema_impl = AXIS2_INTF_TO_IMPL(schema);
return NULL;
}
@@ -524,7 +524,7 @@
axis2_xml_schema_impl_t *schema_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- schema_impl = INTF_TO_IMPL(schema);
+ schema_impl = AXIS2_INTF_TO_IMPL(schema);
return AXIS2_SUCCESS;
}
@@ -536,7 +536,7 @@
axis2_xml_schema_impl_t *schema_impl = NULL;
AXIS2_ENV_CHECK(env, NULL);
- schema_impl = INTF_TO_IMPL(schema);
+ schema_impl = AXIS2_INTF_TO_IMPL(schema);
return NULL;
}
@@ -548,7 +548,7 @@
axis2_xml_schema_impl_t *schema_impl = NULL;
AXIS2_ENV_CHECK(env, NULL);
- schema_impl = INTF_TO_IMPL(schema);
+ schema_impl = AXIS2_INTF_TO_IMPL(schema);
return NULL;
}
@@ -689,7 +689,7 @@
axis2_status_t AXIS2_CALL
axis2_xml_schema_compile(void *schema,
axis2_env_t **env,
- axis2_xml_schema_validation_event_handler_t *eh)
+ axis2_validation_event_handler_t *veh)
{
return AXIS2_SUCCESS;
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_all.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_all.c?rev=395780&r1=395779&r2=395780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_all.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_all.c Thu Apr 20 22:00:55 2006
@@ -14,8 +14,8 @@
* limitations under the License.
*/
-#include <xml_schema/axis2_xml_schema_all.h>
-#include <xml_schema/axis2_xml_schema_group_base.h>
+#include <axis2_xml_schema_all.h>
+#include <axis2_xml_schema_group_base.h>
typedef struct axis2_xml_schema_all_impl axis2_xml_schema_all_impl_t;
@@ -31,7 +31,7 @@
axis2_xml_schema_obj_collection_t *items;
};
-#define INTF_TO_IMPL(all) ((axis2_xml_schema_all_impl_t *) all)
+#define AXIS2_INTF_TO_IMPL(all) ((axis2_xml_schema_all_impl_t *) all)
axis2_status_t AXIS2_CALL
axis2_xml_schema_all_free(void *all,
@@ -93,7 +93,7 @@
axis2_xml_schema_all_impl_t *all_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- all_impl = INTF_TO_IMPL(all);
+ all_impl = AXIS2_INTF_TO_IMPL(all);
if(all_impl->items)
{
@@ -134,7 +134,7 @@
axis2_xml_schema_all_impl_t *all_impl = NULL;
AXIS2_ENV_CHECK(env, NULL);
- all_impl = INTF_TO_IMPL(all);
+ all_impl = AXIS2_INTF_TO_IMPL(all);
return all_impl->base;
}
@@ -171,7 +171,7 @@
axis2_xml_schema_all_get_items(void *all,
axis2_env_t **env)
{
- AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- return INTF_TO_IMPL(all)->items;
+ AXIS2_ENV_CHECK(env, NULL);
+ return AXIS2_INTF_TO_IMPL(all)->items;
}
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_annotated.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_annotated.c?rev=395780&r1=395779&r2=395780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_annotated.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_annotated.c Thu Apr 20 22:00:55 2006
@@ -14,10 +14,11 @@
* limitations under the License.
*/
-#include <xml_schema/axis2_xml_schema_annotated.h>
-#include <xml_schema/axis2_xml_schema_annotation.h>
+#include <axis2_xml_schema_annotated.h>
+#include <axis2_xml_schema_annotation.h>
-typedef struct axis2_xml_schema_annotated_impl axis2_xml_schema_annotated_impl_t;
+typedef struct axis2_xml_schema_annotated_impl
+ axis2_xml_schema_annotated_impl_t;
/**
* @brief Other Extension Struct Impl
@@ -26,14 +27,22 @@
struct axis2_xml_schema_annotated_impl
{
axis2_xml_schema_annotated_t annotated;
+
axis2_xml_schema_obj_t *schema_obj;
+
axis2_hash_t *methods;
+
axis2_xml_schema_annotation_t *annotation;
+
axis2_char_t *id;
+
axis2_array_list_t *unhandled_attrs;
};
-#define INTF_TO_IMPL(annotated) ((axis2_xml_schema_annotated_impl_t *) annotated)
+#define AXIS2_INTF_TO_IMPL(annotated) \
+ ((axis2_xml_schema_annotated_impl_t *) annotated)
+
+/*************** function prototypes *****************************************/
axis2_status_t AXIS2_CALL
axis2_xml_schema_annotated_free(void *annotated,
@@ -77,20 +86,35 @@
{
axis2_xml_schema_annotated_impl_t *annotated_impl = NULL;
axis2_status_t status = AXIS2_FAILURE;
+ AXIS2_ENV_CHECK(env, NULL);
annotated_impl = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_annotated_impl_t));
-
+ if(!annotated_impl)
+ {
+ AXIS2_ERROR_SET((*env)->error , AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+
annotated_impl->schema_obj = NULL;
annotated_impl->methods = NULL;
annotated_impl->id = NULL;
annotated_impl->annotation = NULL;
annotated_impl->unhandled_attrs = NULL;
-
+ annotated_impl->annotated.ops = NULL;
+ annotated_impl->annotated.base.ops = NULL;
+
annotated_impl->annotated.ops = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_annotated_ops_t));
-
- annotated_impl->annotated.ops->free = axis2_xml_schema_annotated_free;
+ if(!annotated_impl->annotated.ops)
+ {
+ axis2_xml_schema_annotated_free(&(annotated_impl->annotated), env);
+ AXIS2_ERROR_SET((*env)->error , AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+
+ annotated_impl->annotated.ops->free =
+ axis2_xml_schema_annotated_free;
annotated_impl->annotated.ops->get_base_impl =
axis2_xml_schema_annotated_get_base_impl;
annotated_impl->annotated.ops->get_id =
@@ -128,10 +152,15 @@
AXIS2_HASH_KEY_STRING, axis2_xml_schema_annotated_set_unhandled_attrs);
annotated_impl->schema_obj = axis2_xml_schema_obj_create(env);
+ if(!annotated_impl->schema_obj)
+ {
+ axis2_xml_schema_annotated_free(&(annotated_impl->annotated), env);
+ return NULL;
+ }
status = axis2_xml_schema_obj_resolve_methods(
&(annotated_impl->annotated.base), env, annotated_impl->schema_obj,
annotated_impl->methods);
-
+
return &(annotated_impl->annotated);
}
@@ -142,49 +171,52 @@
axis2_xml_schema_annotated_impl_t *annotated_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- annotated_impl = INTF_TO_IMPL(annotated);
+ annotated_impl = AXIS2_INTF_TO_IMPL(annotated);
- if(annotated_impl->id)
+ if(NULL != annotated_impl->id)
{
AXIS2_FREE((*env)->allocator, annotated_impl->id);
annotated_impl->id = NULL;
}
- if(annotated_impl->annotation)
+ if(NULL != annotated_impl->annotation)
{
AXIS2_XML_SCHEMA_ANNOTATION_FREE(annotated_impl->annotation, env);
annotated_impl->annotation = NULL;
}
- if(annotated_impl->unhandled_attrs)
+ if(NULL != annotated_impl->unhandled_attrs)
{
+ /* TODO need to iterate and free attributes */
AXIS2_ARRAY_LIST_FREE(annotated_impl->unhandled_attrs, env);
annotated_impl->unhandled_attrs = NULL;
}
- if(annotated_impl->methods)
+ if(NULL != annotated_impl->methods)
{
axis2_hash_free(annotated_impl->methods, env);
annotated_impl->methods = NULL;
}
- if(annotated_impl->schema_obj)
+ if(NULL != annotated_impl->schema_obj)
{
AXIS2_XML_SCHEMA_OBJ_FREE(annotated_impl->schema_obj, env);
annotated_impl->schema_obj = NULL;
}
- if((&(annotated_impl->annotated))->ops)
+ if(NULL != annotated_impl->annotated.ops)
{
- AXIS2_FREE((*env)->allocator, (&(annotated_impl->annotated))->ops);
- (&(annotated_impl->annotated))->ops = NULL;
+ AXIS2_FREE((*env)->allocator, annotated_impl->annotated.ops);
+ annotated_impl->annotated.ops = NULL;
}
-
- if(annotated_impl)
+ if(NULL != annotated_impl->annotated.base.ops)
{
- AXIS2_FREE((*env)->allocator, annotated_impl);
- annotated_impl = NULL;
+ AXIS2_FREE((*env)->allocator, annotated_impl->annotated.base.ops);
+ annotated_impl->annotated.base.ops = NULL;
}
+
+ AXIS2_FREE((*env)->allocator, annotated_impl);
+ annotated_impl = NULL;
return AXIS2_SUCCESS;
}
@@ -193,10 +225,7 @@
axis2_env_t **env)
{
axis2_xml_schema_annotated_impl_t *annotated_impl = NULL;
-
- AXIS2_ENV_CHECK(env, NULL);
- annotated_impl = INTF_TO_IMPL(annotated);
-
+ annotated_impl = AXIS2_INTF_TO_IMPL(annotated);
return annotated_impl->schema_obj;
}
@@ -217,6 +246,12 @@
annotated->ops = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_annotated_ops_t));
+
+ if(!annotated->ops)
+ {
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return AXIS2_FAILURE;
+ }
annotated->ops->free = axis2_hash_get(methods, "free",
AXIS2_HASH_KEY_STRING);
annotated->ops->get_base_impl =
@@ -233,7 +268,7 @@
annotated_impl_l->annotated.ops->get_unhandled_attrs;
annotated->ops->set_unhandled_attrs =
annotated_impl_l->annotated.ops->set_unhandled_attrs;
-
+
return axis2_xml_schema_obj_resolve_methods(&(annotated->base),
env, annotated_impl_l->schema_obj, methods);
}
@@ -243,7 +278,7 @@
axis2_env_t **env)
{
AXIS2_ENV_CHECK(env, NULL);
- return INTF_TO_IMPL(annotated)->id;
+ return AXIS2_INTF_TO_IMPL(annotated)->id;
}
axis2_status_t AXIS2_CALL
@@ -254,7 +289,7 @@
axis2_xml_schema_annotated_impl_t *annotated_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- annotated_impl = INTF_TO_IMPL(annotated);
+ annotated_impl = AXIS2_INTF_TO_IMPL(annotated);
if(annotated_impl->id)
{
AXIS2_FREE((*env)->allocator, annotated_impl->id);
@@ -270,7 +305,7 @@
axis2_env_t **env)
{
AXIS2_ENV_CHECK(env, NULL);
- return INTF_TO_IMPL(annotated)->annotation;
+ return AXIS2_INTF_TO_IMPL(annotated)->annotation;
}
axis2_status_t AXIS2_CALL
@@ -282,10 +317,11 @@
axis2_xml_schema_annotated_impl_t *annotated_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- annotated_impl = INTF_TO_IMPL(annotated);
- if(annotated_impl->annotation)
+ annotated_impl = AXIS2_INTF_TO_IMPL(annotated);
+ if(NULL != annotated_impl->annotation)
{
/* TODO Free annotation */
+ AXIS2_XML_SCHEMA_ANNOTATED_FREE(annotated_impl->annotation, env);
}
annotated_impl->annotation = annotation;
return AXIS2_SUCCESS;
@@ -297,7 +333,7 @@
axis2_env_t **env)
{
AXIS2_ENV_CHECK(env, NULL);
- return INTF_TO_IMPL(annotated)->unhandled_attrs;
+ return AXIS2_INTF_TO_IMPL(annotated)->unhandled_attrs;
}
axis2_status_t AXIS2_CALL
@@ -309,7 +345,7 @@
axis2_xml_schema_annotated_impl_t *annotated_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- annotated_impl = INTF_TO_IMPL(annotated);
+ annotated_impl = AXIS2_INTF_TO_IMPL(annotated);
if(annotated_impl->unhandled_attrs)
{
/* TODO Free unhandled_attrs */
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_annotation.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_annotation.c?rev=395780&r1=395779&r2=395780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_annotation.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_annotation.c Thu Apr 20 22:00:55 2006
@@ -14,9 +14,10 @@
* limitations under the License.
*/
-#include <xml_schema/axis2_xml_schema_annotation.h>
+#include <axis2_xml_schema_annotation.h>
-typedef struct axis2_xml_schema_annotation_impl axis2_xml_schema_annotation_impl_t;
+typedef struct axis2_xml_schema_annotation_impl
+ axis2_xml_schema_annotation_impl_t;
/**
* @brief Other Extension Struct Impl
@@ -25,13 +26,18 @@
struct axis2_xml_schema_annotation_impl
{
axis2_xml_schema_annotation_t annotation;
+
axis2_xml_schema_obj_t *schema_obj;
+
axis2_hash_t *items;
+
axis2_hash_t *methods;
};
-#define INTF_TO_IMPL(annotation) ((axis2_xml_schema_annotation_impl_t *) annotation)
+#define AXIS2_INTF_TO_IMPL(annotation) \
+ ((axis2_xml_schema_annotation_impl_t *) annotation)
+/*************** function prototypes *****************************************/
axis2_status_t AXIS2_CALL
axis2_xml_schema_annotation_free(void *annotation,
axis2_env_t **env);
@@ -44,6 +50,8 @@
axis2_xml_schema_annotation_get_items(void *annotation,
axis2_env_t **env);
+/********************** end **************************************************/
+
AXIS2_DECLARE(axis2_xml_schema_annotation_t *)
axis2_xml_schema_annotation_create(axis2_env_t **env)
{
@@ -52,29 +60,45 @@
annotation_impl = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_annotation_impl_t));
-
+ if(!annotation_impl)
+ {
+ AXIS2_ERROR_SET((*env)->error , AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
annotation_impl->schema_obj = NULL;
annotation_impl->methods = NULL;
annotation_impl->items = NULL;
+ annotation_impl->annotation.base.ops = NULL;
+ annotation_impl->annotation.ops = NULL;
+
annotation_impl->annotation.ops = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_annotation_ops_t));
-
- annotation_impl->annotation.ops->free = axis2_xml_schema_annotation_free;
+ if(!annotation_impl->annotation.ops)
+ {
+ axis2_xml_schema_annotation_free(&(annotation_impl->annotation), env);
+ AXIS2_ERROR_SET((*env)->error , AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+
+ annotation_impl->annotation.ops->free =
+ axis2_xml_schema_annotation_free;
annotation_impl->annotation.ops->get_base_impl =
- axis2_xml_schema_annotation_get_base_impl;
+ axis2_xml_schema_annotation_get_base_impl;
annotation_impl->annotation.ops->get_items =
- axis2_xml_schema_annotation_get_items;
+ axis2_xml_schema_annotation_get_items;
+ annotation_impl->items = axis2_hash_make(env);
if(!annotation_impl->items)
{
- annotation_impl->items = axis2_hash_make(env);
- if(!annotation_impl->items)
- return NULL;
- }
-
+ axis2_xml_schema_annotation_free(&(annotation_impl->annotation), env);
+ AXIS2_ERROR_SET((*env)->error , AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+
annotation_impl->methods = axis2_hash_make(env);
if(!annotation_impl->methods)
{
+ axis2_xml_schema_annotation_free(&(annotation_impl->annotation), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
@@ -84,45 +108,55 @@
AXIS2_HASH_KEY_STRING, axis2_xml_schema_annotation_get_items);
annotation_impl->schema_obj = axis2_xml_schema_obj_create(env);
- status =
- axis2_xml_schema_obj_resolve_methods(&(annotation_impl->annotation.base),
+
+ if(!annotation_impl->schema_obj)
+ {
+ axis2_xml_schema_annotation_free(&(annotation_impl->annotation), env);
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+ status = axis2_xml_schema_obj_resolve_methods(&(annotation_impl->annotation.base),
env, annotation_impl->schema_obj, annotation_impl->methods);
return &(annotation_impl->annotation);
}
axis2_status_t AXIS2_CALL
axis2_xml_schema_annotation_free(void *annotation,
- axis2_env_t **env)
+ axis2_env_t **env)
{
axis2_xml_schema_annotation_impl_t *annotation_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- annotation_impl = INTF_TO_IMPL(annotation);
+ annotation_impl = AXIS2_INTF_TO_IMPL(annotation);
- if(annotation_impl->items)
+ if(NULL != annotation_impl->items)
{
axis2_hash_free(annotation_impl->items, env);
annotation_impl->items = NULL;
}
- if(annotation_impl->methods)
+ if(NULL != annotation_impl->methods)
{
axis2_hash_free(annotation_impl->methods, env);
annotation_impl->methods = NULL;
}
- if(annotation_impl->schema_obj)
+ if(NULL != annotation_impl->schema_obj)
{
AXIS2_XML_SCHEMA_OBJ_FREE(annotation_impl->schema_obj, env);
annotation_impl->schema_obj = NULL;
}
- if((&(annotation_impl->annotation))->ops)
+ if(NULL != annotation_impl->annotation.ops)
{
- AXIS2_FREE((*env)->allocator, (&(annotation_impl->annotation))->ops);
- (&(annotation_impl->annotation))->ops = NULL;
+ AXIS2_FREE((*env)->allocator, annotation_impl->annotation.ops);
+ annotation_impl->annotation.ops = NULL;
+ }
+ if(NULL != annotation_impl->annotation.base.ops)
+ {
+ AXIS2_FREE((*env)->allocator, annotation_impl->annotation.base.ops);
+ annotation_impl->annotation.base.ops = NULL;
}
-
if(annotation_impl)
{
AXIS2_FREE((*env)->allocator, annotation_impl);
@@ -138,7 +172,7 @@
axis2_xml_schema_annotation_impl_t *annotation_impl = NULL;
AXIS2_ENV_CHECK(env, NULL);
- annotation_impl = INTF_TO_IMPL(annotation);
+ annotation_impl = AXIS2_INTF_TO_IMPL(annotation);
return annotation_impl->schema_obj;
}
@@ -162,6 +196,7 @@
sizeof(axis2_xml_schema_annotation_ops_t));
annotation->ops->free = axis2_hash_get(methods, "free",
AXIS2_HASH_KEY_STRING);
+
annotation->ops->get_base_impl =
annotation_impl_l->annotation.ops->get_base_impl;
annotation->ops->get_items =
@@ -175,6 +210,6 @@
axis2_xml_schema_annotation_get_items(void *annotation,
axis2_env_t **env)
{
- return INTF_TO_IMPL(annotation)->items;
+ return AXIS2_INTF_TO_IMPL(annotation)->items;
}
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_any.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_any.c?rev=395780&r1=395779&r2=395780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_any.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_any.c Thu Apr 20 22:00:55 2006
@@ -14,9 +14,10 @@
* limitations under the License.
*/
-#include <xml_schema/axis2_xml_schema_any.h>
+#include <axis2_xml_schema_any.h>
-typedef struct axis2_xml_schema_any_impl axis2_xml_schema_any_impl_t;
+typedef struct axis2_xml_schema_any_impl
+ axis2_xml_schema_any_impl_t;
/**
* @brief Other Extension Struct Impl
@@ -25,17 +26,21 @@
struct axis2_xml_schema_any_impl
{
axis2_xml_schema_any_t any;
+
axis2_xml_schema_particle_t *particle;
+
axis2_hash_t *methods;
+
axis2_xml_schema_content_processing_t *process_content;
/**
* Namespaces containing the elements that can be used.
*/
- axis2_char_t *namespc;
+ axis2_char_t *ns;
};
-#define INTF_TO_IMPL(any) ((axis2_xml_schema_any_impl_t *) any)
+#define AXIS2_INTF_TO_IMPL(any) ((axis2_xml_schema_any_impl_t *) any)
+/******************* function prototypes **********************************/
axis2_status_t AXIS2_CALL
axis2_xml_schema_any_free(void *any,
axis2_env_t **env);
@@ -62,6 +67,8 @@
axis2_env_t **env,
axis2_xml_schema_content_processing_t *
process_content);
+
+ /************************ end function prototypes ******************************/
AXIS2_DECLARE(axis2_xml_schema_any_t *)
axis2_xml_schema_any_create(axis2_env_t **env)
@@ -71,25 +78,47 @@
any_impl = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_any_impl_t));
-
+ if(!any_impl)
+ {
+ AXIS2_ERROR_SET((*env)->error , AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+ any_impl->any.base.ops = NULL;
+ any_impl->any.ops = NULL;
+ any_impl->ns = NULL;
any_impl->particle = NULL;
- any_impl->namespc = NULL;
any_impl->process_content = NULL;
any_impl->methods = NULL;
any_impl->any.ops = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_any_ops_t));
+ if(!any_impl->any.ops)
+ {
+ axis2_xml_schema_any_free(&(any_impl->any), env);
+ AXIS2_ERROR_SET((*env)->error ,
+ AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
any_impl->process_content = axis2_xml_schema_content_processing_create(env,
"None");
- any_impl->any.ops->free = axis2_xml_schema_any_free;
- any_impl->any.ops->get_base_impl = axis2_xml_schema_any_get_base_impl;
- any_impl->any.ops->get_namespace = axis2_xml_schema_any_get_namespace;
- any_impl->any.ops->set_namespace = axis2_xml_schema_any_set_namespace;
+ if(!any_impl->process_content)
+ {
+ axis2_xml_schema_any_free(&(any_impl->any), env);
+ return NULL;
+ }
+ any_impl->any.ops->free =
+ axis2_xml_schema_any_free;
+ any_impl->any.ops->get_base_impl =
+ axis2_xml_schema_any_get_base_impl;
+ any_impl->any.ops->get_namespace =
+ axis2_xml_schema_any_get_namespace;
+ any_impl->any.ops->set_namespace =
+ axis2_xml_schema_any_set_namespace;
any_impl->any.ops->get_process_content =
- axis2_xml_schema_any_get_process_content;
+ axis2_xml_schema_any_get_process_content;
any_impl->any.ops->set_process_content =
- axis2_xml_schema_any_set_process_content;
-
+ axis2_xml_schema_any_set_process_content;
+
any_impl->methods = axis2_hash_make(env);
if(!any_impl->methods)
{
@@ -108,6 +137,12 @@
AXIS2_HASH_KEY_STRING, axis2_xml_schema_any_set_process_content);
any_impl->particle = axis2_xml_schema_particle_create(env);
+ if(!any_impl->methods)
+ {
+ axis2_xml_schema_any_free(&(any_impl->any), env);
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
status = axis2_xml_schema_particle_resolve_methods(
&(any_impl->any.base), env, any_impl->particle,
any_impl->methods);
@@ -121,43 +156,45 @@
axis2_xml_schema_any_impl_t *any_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- any_impl = INTF_TO_IMPL(any);
+ any_impl = AXIS2_INTF_TO_IMPL(any);
- if(any_impl->namespc)
+ if(NULL != any_impl->ns)
{
- AXIS2_FREE((*env)->allocator, any_impl->namespc);
- any_impl->namespc = NULL;
+ AXIS2_FREE((*env)->allocator, any_impl->ns);
+ any_impl->ns = NULL;
}
- if(any_impl->process_content)
+ if(NULL != any_impl->process_content)
{
AXIS2_XML_SCHEMA_CONTENT_PROCESSING_FREE(any_impl->process_content, env);
any_impl->process_content = NULL;
}
- if(any_impl->methods)
+ if(NULL != any_impl->methods)
{
axis2_hash_free(any_impl->methods, env);
any_impl->methods = NULL;
}
- if(any_impl->particle)
+ if(NULL != any_impl->particle)
{
- AXIS2_XML_SCHEMA_OBJ_FREE(any_impl->particle, env);
+ AXIS2_XML_SCHEMA_PARTICLE_FREE(any_impl->particle, env);
any_impl->particle = NULL;
}
- if((&(any_impl->any))->ops)
+ if(NULL != any_impl->any.ops)
{
- AXIS2_FREE((*env)->allocator, (&(any_impl->any))->ops);
- (&(any_impl->any))->ops = NULL;
+ AXIS2_FREE((*env)->allocator, any_impl->any.ops);
+ any_impl->any.ops = NULL;
}
-
- if(any_impl)
+ if(NULL != any_impl->any.base.ops)
{
- AXIS2_FREE((*env)->allocator, any_impl);
- any_impl = NULL;
+ AXIS2_FREE((*env)->allocator, any_impl->any.base.ops);
+ any_impl->any.base.ops = NULL;
}
+
+ AXIS2_FREE((*env)->allocator, any_impl);
+ any_impl = NULL;
return AXIS2_SUCCESS;
}
@@ -168,8 +205,7 @@
axis2_xml_schema_any_impl_t *any_impl = NULL;
AXIS2_ENV_CHECK(env, NULL);
- any_impl = INTF_TO_IMPL(any);
-
+ any_impl = AXIS2_INTF_TO_IMPL(any);
return any_impl->particle;
}
@@ -211,7 +247,7 @@
axis2_xml_schema_any_get_namespace(void *any,
axis2_env_t **env)
{
- return INTF_TO_IMPL(any)->namespc;
+ return AXIS2_INTF_TO_IMPL(any)->ns;
}
axis2_status_t AXIS2_CALL
@@ -222,14 +258,14 @@
axis2_xml_schema_any_impl_t *any_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- any_impl = INTF_TO_IMPL(any);
+ any_impl = AXIS2_INTF_TO_IMPL(any);
- if(!any_impl->namespc)
+ if(!any_impl->ns)
{
- AXIS2_FREE((*env)->allocator, any_impl->namespc);
- any_impl->namespc = NULL;
+ AXIS2_FREE((*env)->allocator, any_impl->ns);
+ any_impl->ns = NULL;
}
- any_impl->namespc = AXIS2_STRDUP(any_impl->namespc, env);
+ any_impl->ns = AXIS2_STRDUP(any_impl->ns, env);
return AXIS2_SUCCESS;
}
@@ -237,7 +273,7 @@
axis2_xml_schema_any_get_process_content(void *any,
axis2_env_t **env)
{
- return INTF_TO_IMPL(any)->process_content;
+ return AXIS2_INTF_TO_IMPL(any)->process_content;
}
axis2_status_t AXIS2_CALL
@@ -249,7 +285,7 @@
axis2_xml_schema_any_impl_t *any_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- any_impl = INTF_TO_IMPL(any);
+ any_impl = AXIS2_INTF_TO_IMPL(any);
if(!any_impl->process_content)
{
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_app_info.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_app_info.c?rev=395780&r1=395779&r2=395780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_app_info.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_app_info.c Thu Apr 20 22:00:55 2006
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#include <xml_schema/axis2_xml_schema_app_info.h>
+#include <axis2_xml_schema_app_info.h>
typedef struct axis2_xml_schema_app_info_impl axis2_xml_schema_app_info_impl_t;
@@ -25,16 +25,20 @@
struct axis2_xml_schema_app_info_impl
{
axis2_xml_schema_app_info_t app_info;
+
axis2_xml_schema_obj_t *schema_obj;
+
axis2_hash_t *methods;
/**
* Provides the source of the application information.
*/
axis2_char_t *source;
+
void *markup; /* TODO Replace (void *) with node list */
};
-#define INTF_TO_IMPL(app_info) ((axis2_xml_schema_app_info_impl_t *) app_info)
+#define AXIS2_INTF_TO_IMPL(app_info) \
+ ((axis2_xml_schema_app_info_impl_t *) app_info)
axis2_status_t AXIS2_CALL
axis2_xml_schema_app_info_free(void *app_info,
@@ -63,6 +67,7 @@
axis2_xml_schema_app_info_set_markup(void *app_info,
axis2_env_t **env,
void *markup);
+/****************** end macros ***********************************************/
AXIS2_DECLARE(axis2_xml_schema_app_info_t *)
axis2_xml_schema_app_info_create(axis2_env_t **env)
@@ -72,29 +77,44 @@
app_info_impl = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_app_info_impl_t));
-
+ if(!app_info_impl)
+ {
+ AXIS2_ERROR_SET((*env)->error , AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
app_info_impl->schema_obj = NULL;
+ app_info_impl->app_info.base.ops = NULL;
+ app_info_impl->app_info.ops = NULL;
app_info_impl->methods = NULL;
app_info_impl->source = NULL;
app_info_impl->markup = NULL;
+
app_info_impl->app_info.ops = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_app_info_ops_t));
-
- app_info_impl->app_info.ops->free = axis2_xml_schema_app_info_free;
+
+ if(!app_info_impl->app_info.ops)
+ {
+ axis2_xml_schema_app_info_free(&(app_info_impl->app_info), env);
+ AXIS2_ERROR_SET((*env)->error , AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+ app_info_impl->app_info.ops->free =
+ axis2_xml_schema_app_info_free;
app_info_impl->app_info.ops->get_base_impl =
- axis2_xml_schema_app_info_get_base_impl;
+ axis2_xml_schema_app_info_get_base_impl;
app_info_impl->app_info.ops->get_source =
- axis2_xml_schema_app_info_get_source;
+ axis2_xml_schema_app_info_get_source;
app_info_impl->app_info.ops->set_source =
- axis2_xml_schema_app_info_set_source;
+ axis2_xml_schema_app_info_set_source;
app_info_impl->app_info.ops->get_markup =
- axis2_xml_schema_app_info_get_markup;
+ axis2_xml_schema_app_info_get_markup;
app_info_impl->app_info.ops->set_markup =
- axis2_xml_schema_app_info_set_markup;
+ axis2_xml_schema_app_info_set_markup;
app_info_impl->methods = axis2_hash_make(env);
if(!app_info_impl->methods)
{
+ axis2_xml_schema_app_info_free(&(app_info_impl->app_info), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
@@ -110,6 +130,11 @@
AXIS2_HASH_KEY_STRING, axis2_xml_schema_app_info_set_markup);
app_info_impl->schema_obj = axis2_xml_schema_obj_create(env);
+ if(!app_info_impl->schema_obj)
+ {
+ axis2_xml_schema_app_info_free(&(app_info_impl->app_info), env);
+ return NULL;
+ }
status =
axis2_xml_schema_obj_resolve_methods(&(app_info_impl->app_info.base),
env, app_info_impl->schema_obj, app_info_impl->methods);
@@ -123,9 +148,9 @@
axis2_xml_schema_app_info_impl_t *app_info_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- app_info_impl = INTF_TO_IMPL(app_info);
+ app_info_impl = AXIS2_INTF_TO_IMPL(app_info);
- if(app_info_impl->source)
+ if(NULL != app_info_impl->source)
{
AXIS2_FREE((*env)->allocator, app_info_impl->source);
app_info_impl->source = NULL;
@@ -133,25 +158,29 @@
/* TODO Free markup */
- if(app_info_impl->methods)
+ if(NULL != app_info_impl->methods)
{
axis2_hash_free(app_info_impl->methods, env);
app_info_impl->methods = NULL;
}
- if(app_info_impl->schema_obj)
+ if(NULL != app_info_impl->schema_obj)
{
AXIS2_XML_SCHEMA_OBJ_FREE(app_info_impl->schema_obj, env);
app_info_impl->schema_obj = NULL;
}
- if((&(app_info_impl->app_info))->ops)
+ if(NULL != app_info_impl->app_info.ops)
{
- AXIS2_FREE((*env)->allocator, (&(app_info_impl->app_info))->ops);
- (&(app_info_impl->app_info))->ops = NULL;
+ AXIS2_FREE((*env)->allocator, app_info_impl->app_info.ops);
+ app_info_impl->app_info.ops = NULL;
}
-
- if(app_info_impl)
+ if(NULL != app_info_impl->app_info.base.ops)
+ {
+ AXIS2_FREE((*env)->allocator, app_info_impl->app_info.base.ops);
+ app_info_impl->app_info.base.ops = NULL;
+ }
+ if(NULL != app_info_impl)
{
AXIS2_FREE((*env)->allocator, app_info_impl);
app_info_impl = NULL;
@@ -166,7 +195,7 @@
axis2_xml_schema_app_info_impl_t *app_info_impl = NULL;
AXIS2_ENV_CHECK(env, NULL);
- app_info_impl = INTF_TO_IMPL(app_info);
+ app_info_impl = AXIS2_INTF_TO_IMPL(app_info);
return app_info_impl->schema_obj;
}
@@ -188,6 +217,12 @@
app_info->ops = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_app_info_ops_t));
+
+ if(!app_info_impl)
+ {
+ AXIS2_ERROR_SET((*env)->error , AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return AXIS2_FAILURE;
+ }
app_info->ops->free = axis2_hash_get(methods, "free",
AXIS2_HASH_KEY_STRING);
app_info->ops->get_base_impl =
@@ -210,7 +245,7 @@
axis2_env_t **env)
{
AXIS2_ENV_CHECK(env, NULL);
- return INTF_TO_IMPL(app_info)->source;
+ return AXIS2_INTF_TO_IMPL(app_info)->source;
}
axis2_status_t AXIS2_CALL
@@ -221,9 +256,9 @@
axis2_xml_schema_app_info_impl_t *app_info_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, source, AXIS2_FAILURE);
- app_info_impl = INTF_TO_IMPL(app_info);
+ app_info_impl = AXIS2_INTF_TO_IMPL(app_info);
- if(app_info_impl->source)
+ if(NULL != app_info_impl->source)
{
AXIS2_FREE((*env)->allocator, app_info_impl->source);
app_info_impl->source = NULL;
@@ -243,7 +278,7 @@
axis2_env_t **env)
{
AXIS2_ENV_CHECK(env, NULL);
- return INTF_TO_IMPL(app_info)->markup;
+ return AXIS2_INTF_TO_IMPL(app_info)->markup;
}
/* TODO replace (void *) mark up with node list */
@@ -255,7 +290,7 @@
axis2_xml_schema_app_info_impl_t *app_info_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, markup, AXIS2_FAILURE);
- app_info_impl = INTF_TO_IMPL(app_info);
+ app_info_impl = AXIS2_INTF_TO_IMPL(app_info);
app_info_impl->markup = markup;
return AXIS2_SUCCESS;
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_choice.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_choice.c?rev=395780&r1=395779&r2=395780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_choice.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_choice.c Thu Apr 20 22:00:55 2006
@@ -14,10 +14,11 @@
* limitations under the License.
*/
-#include <xml_schema/axis2_xml_schema_choice.h>
-#include <xml_schema/axis2_xml_schema_group_base.h>
+#include <axis2_xml_schema_choice.h>
+#include <axis2_xml_schema_group_base.h>
-typedef struct axis2_xml_schema_choice_impl axis2_xml_schema_choice_impl_t;
+typedef struct axis2_xml_schema_choice_impl
+ axis2_xml_schema_choice_impl_t;
/**
* @brief Other Extension Struct Impl
@@ -26,12 +27,18 @@
struct axis2_xml_schema_choice_impl
{
axis2_xml_schema_choice_t choice;
+
axis2_xml_schema_group_base_t *base;
+
axis2_hash_t *methods;
+
axis2_xml_schema_obj_collection_t *items;
};
-#define INTF_TO_IMPL(choice) ((axis2_xml_schema_choice_impl_t *) choice)
+#define AXIS2_INTF_TO_IMPL(choice) \
+ ((axis2_xml_schema_choice_impl_t *) choice)
+
+/********************* function prototypes ************************************/
axis2_status_t AXIS2_CALL
axis2_xml_schema_choice_free(void *choice,
@@ -45,6 +52,7 @@
axis2_xml_schema_choice_get_items(void *choice,
axis2_env_t **env);
+/******************** end function prototypes ********************************/
AXIS2_DECLARE(axis2_xml_schema_choice_t *)
axis2_xml_schema_choice_create(axis2_env_t **env)
@@ -54,35 +62,58 @@
choice_impl = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_choice_impl_t));
-
+ if(!choice_impl)
+ {
+ AXIS2_ERROR_SET((*env)->error ,
+ AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
choice_impl->base = NULL;
choice_impl->methods = NULL;
choice_impl->items = NULL;
+ choice_impl->choice.base.ops = NULL;
+ choice_impl->choice.ops = NULL;
+
choice_impl->choice.ops = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_choice_ops_t));
-
- choice_impl->choice.ops->free = axis2_xml_schema_choice_free;
+ if(!choice_impl->choice.ops)
+ {
+ axis2_xml_schema_choice_free(&(choice_impl->choice), env);
+ AXIS2_ERROR_SET((*env)->error ,
+ AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+
+ choice_impl->choice.ops->free =
+ axis2_xml_schema_choice_free;
choice_impl->choice.ops->get_base_impl =
- axis2_xml_schema_choice_get_base_impl;
+ axis2_xml_schema_choice_get_base_impl;
choice_impl->choice.ops->get_items =
- axis2_xml_schema_choice_get_items;
+ axis2_xml_schema_choice_get_items;
choice_impl->methods = axis2_hash_make(env);
if(!choice_impl->methods)
{
- AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ axis2_xml_schema_choice_free(&(choice_impl->choice), env);
+ AXIS2_ERROR_SET((*env)->error,
+ AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
+
axis2_hash_set(choice_impl->methods, "free", AXIS2_HASH_KEY_STRING,
- axis2_xml_schema_choice_free);
+ axis2_xml_schema_choice_free);
axis2_hash_set(choice_impl->methods, "get_items",
- AXIS2_HASH_KEY_STRING, axis2_xml_schema_choice_get_items);
+ AXIS2_HASH_KEY_STRING, axis2_xml_schema_choice_get_items);
choice_impl->base = axis2_xml_schema_group_base_create(env);
+ if(!choice_impl->base)
+ {
+ axis2_xml_schema_choice_free(&(choice_impl->choice), env);
+ return NULL;
+ }
status = axis2_xml_schema_group_base_resolve_methods(
&(choice_impl->choice.base), env, choice_impl->base,
choice_impl->methods);
-
return &(choice_impl->choice);
}
@@ -93,33 +124,37 @@
axis2_xml_schema_choice_impl_t *choice_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- choice_impl = INTF_TO_IMPL(choice);
+ choice_impl = AXIS2_INTF_TO_IMPL(choice);
- if(choice_impl->items)
+ if(NULL != choice_impl->items)
{
AXIS2_XML_SCHEMA_OBJ_COLLECTION_FREE(choice_impl->items, env);
choice_impl->items = NULL;
}
- if(choice_impl->methods)
+ if(NULL != choice_impl->methods)
{
axis2_hash_free(choice_impl->methods, env);
choice_impl->methods = NULL;
}
- if(choice_impl->base)
+ if(NULL != choice_impl->base)
{
AXIS2_XML_SCHEMA_GROUP_BASE_FREE(choice_impl->base, env);
choice_impl->base = NULL;
}
- if((&(choice_impl->choice))->ops)
+ if(NULL != choice_impl->choice.ops)
{
- AXIS2_FREE((*env)->allocator, (&(choice_impl->choice))->ops);
- (&(choice_impl->choice))->ops = NULL;
+ AXIS2_FREE((*env)->allocator, choice_impl->choice.ops);
+ choice_impl->choice.ops = NULL;
}
-
- if(choice_impl)
+ if(NULL != choice_impl->choice.base.ops)
+ {
+ AXIS2_FREE((*env)->allocator, choice_impl->choice.base.ops);
+ choice_impl->choice.base.ops = NULL;
+ }
+ if(NULL != choice_impl)
{
AXIS2_FREE((*env)->allocator, choice_impl);
choice_impl = NULL;
@@ -134,8 +169,7 @@
axis2_xml_schema_choice_impl_t *choice_impl = NULL;
AXIS2_ENV_CHECK(env, NULL);
- choice_impl = INTF_TO_IMPL(choice);
-
+ choice_impl = AXIS2_INTF_TO_IMPL(choice);
return choice_impl->base;
}
@@ -171,7 +205,7 @@
axis2_xml_schema_choice_get_items(void *choice,
axis2_env_t **env)
{
- AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- return INTF_TO_IMPL(choice)->items;
+ AXIS2_ENV_CHECK(env, NULL);
+ return AXIS2_INTF_TO_IMPL(choice)->items;
}
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_collection.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_collection.c?rev=395780&r1=395779&r2=395780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_collection.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_collection.c Thu Apr 20 22:00:55 2006
@@ -14,17 +14,18 @@
* limitations under the License.
*/
-#include <xml_schema/axis2_xml_schema_collection.h>
-#include <xml_schema/axis2_xml_schema_element.h>
-#include <xml_schema/axis2_xml_schema_type.h>
-#include <xml_schema/axis2_xml_schema.h>
-#include <xml_schema/axis2_validation_event_handler.h>
+#include <axis2_xml_schema_collection.h>
+#include <axis2_xml_schema_element.h>
+#include <axis2_xml_schema_type.h>
+#include <axis2_xml_schema.h>
+#include <axis2_validation_event_handler.h>
#include <axis2_hash.h>
-#include <xml_schema/axis2_xml_schema_type.h>
-#include <xml_schema/axis2_xml_schema_type_receiver.h>
-#include <xml_schema/axis2_xml_schema_element.h>
+#include <axis2_xml_schema_type.h>
+#include <axis2_xml_schema_type_receiver.h>
+#include <axis2_xml_schema_element.h>
-typedef struct axis2_xml_schema_collection_impl axis2_xml_schema_collection_impl_t;
+typedef struct axis2_xml_schema_collection_impl
+ axis2_xml_schema_collection_impl_t;
/**
* @brief Xml Schema Obj Struct Impl
@@ -34,9 +35,8 @@
{
axis2_xml_schema_collection_t collection;
/**
- * Namespaces we know about. Each one has an equivalent XmlSchema.
*/
- axis2_hash_t *namespcs;
+ axis2_hash_t *namespaces;
/**
* base URI is used as the base for loading the
* imports
@@ -45,127 +45,126 @@
/**
* In-scope namespaces for XML processing
*/
- axis2_hash_t *in_scope_namespcs;
+ axis2_hash_t *in_scope_namespaces;
+
axis2_xml_schema_t *xml_schema;
+
axis2_hash_t *unresolved_types;
};
-#define INTF_TO_IMPL(collection) ((axis2_xml_schema_collection_impl_t *) collection)
+#define AXIS2_INTF_TO_IMPL(collection) \
+ ((axis2_xml_schema_collection_impl_t *) collection)
-axis2_status_t AXIS2_CALL
-axis2_xml_schema_collection_free(void *collection,
- axis2_env_t **env);
-/**
- * Set the base URI. This is used when schemas need to be
- * loaded from relative locations
- * @param base_uri
- */
-axis2_status_t AXIS2_CALL
-axis2_xml_schema_collection_set_base_uri(void *collection,
- axis2_env_t **env,
- axis2_char_t *base_uri);
+/************* function prototypes *******************************************/
-/**
- * This section should comply to the XMLSchema specification
- * @see http://www.w3.org/TR/2004/PER-xmlschema-2-20040318/datatypes.html#built-in-datatypes
- *
- * This needs to be inspected by another pair of eyes
- */
-axis2_status_t AXIS2_CALL
-axis2_xml_schema_collection_init(void *collection,
- axis2_env_t **env);
-static axis2_status_t add_simple_type(void *collection,
- axis2_env_t **env,
- axis2_xml_schema_t *schema,
- axis2_char_t *type_name);
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_collection_free(axis2_xml_schema_collection_t* collection,
+ axis2_env_t **env);
-axis2_xml_schema_t *AXIS2_CALL
-axis2_xml_schema_collection_read_a_reader_and_validation_event_handler(
- void *collection,
- axis2_env_t **env,
- void *reader,
- axis2_xml_schema_validation_event_handler_t *veh);
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_collection_set_base_uri
+ (axis2_xml_schema_collection_t* collection,
+ axis2_env_t **env,
+ axis2_char_t *base_uri);
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_collection_init(axis2_xml_schema_collection_t* collection,
+ axis2_env_t **env);
-axis2_xml_schema_t *AXIS2_CALL
+
+struct axis2_xml_schema* AXIS2_CALL
+axis2_xml_schema_collection_read_a_reader_and_validation_event_handler(
+ axis2_xml_schema_collection_t* collection,
+ axis2_env_t **env,
+ void *reader,
+ axis2_validation_event_handler_t *veh);
+
+struct axis2_xml_schema* AXIS2_CALL
axis2_xml_schema_collection_read_a_input_source_and_validation_event_handler(
- void *collection,
- axis2_env_t **env,
- void *input_source,
- axis2_xml_schema_validation_event_handler_t *veh);
+ axis2_xml_schema_collection_t* collection,
+ axis2_env_t **env,
+ void *input_source,
+ axis2_validation_event_handler_t *veh);
-axis2_xml_schema_t *AXIS2_CALL
+struct axis2_xml_schema * AXIS2_CALL
axis2_xml_schema_collection_read_a_source_and_validation_event_handler(
- void *collection,
- axis2_env_t **env,
- void *source,
- axis2_xml_schema_validation_event_handler_t *veh);
-
-axis2_xml_schema_t *AXIS2_CALL
-axis2_xml_schema_collection_read_a_document_and_validation_event_handler(
- void *collection,
- axis2_env_t **env,
- void *source,
- axis2_xml_schema_validation_event_handler_t *veh);
-
-axis2_xml_schema_t *AXIS2_CALL
-axis2_xml_schema_collection_read_a_element(
- void *collection,
- axis2_env_t **env,
- axis2_om_element_t *element,
- axis2_om_node_t *node);
-
-axis2_xml_schema_t *AXIS2_CALL
-axis2_xml_schema_collection_read_a_document_and_uri_and_validation_event_handler(
- void *collection,
- axis2_env_t **env,
- void *document,
- axis2_char_t *uri,
- axis2_xml_schema_validation_event_handler_t *veh);
-
-axis2_xml_schema_t *AXIS2_CALL
-axis2_xml_schema_collection_read_a_element_and_uri(
- void *collection,
- axis2_env_t **env,
- axis2_om_element_t *element,
- axis2_om_node_t *node,
- axis2_char_t *uri);
-
-axis2_xml_schema_element_t *AXIS2_CALL
-axis2_xml_schema_collection_get_element_by_qname(void *collection,
- axis2_env_t **env,
- axis2_qname_t *qname);
+ axis2_xml_schema_collection_t* collection,
+ axis2_env_t **env,
+ void *source,
+ axis2_validation_event_handler_t *veh);
+
+struct axis2_xml_schema * AXIS2_CALL
+axis2_xml_schema_collection_read_a_document_and_validation_event_handler (
+ axis2_xml_schema_collection_t* collection,
+ axis2_env_t **env,
+ void *document,
+ axis2_validation_event_handler_t *veh);
+
+struct axis2_xml_schema * AXIS2_CALL
+axis2_xml_schema_collection_read_a_element
+ (axis2_xml_schema_collection_t* collection,
+ axis2_env_t **env,
+ struct axis2_om_node *node);
+
+struct axis2_xml_schema* AXIS2_CALL
+axis2_xml_schema_collection_read_a_document_uri_and_validation_event_handler
+ (axis2_xml_schema_collection_t* collection,
+ axis2_env_t **env,
+ void *document,
+ axis2_char_t *uri,
+ axis2_validation_event_handler_t *veh);
+
+struct axis2_xml_schema * AXIS2_CALL
+axis2_xml_schema_collection_read_a_element_and_uri
+ (axis2_xml_schema_collection_t* collection,
+ axis2_env_t **env,
+ struct axis2_om_node *node,
+ axis2_char_t *uri);
+
+struct axis2_xml_schema_element * AXIS2_CALL
+axis2_xml_schema_collection_get_element_by_qname
+ (axis2_xml_schema_collection_t* collection,
+ axis2_env_t **env,
+ axis2_qname_t *qname);
-axis2_xml_schema_type_t *AXIS2_CALL
-axis2_xml_schema_collection_get_type_by_qname(void *collection,
- axis2_env_t **env,
- axis2_qname_t *schema_type_qname);
+struct axis2_xml_schema_type * AXIS2_CALL
+axis2_xml_schema_collection_get_type_by_qname
+ (axis2_xml_schema_collection_t* collection,
+ axis2_env_t **env,
+ axis2_qname_t *schema_type_qname);
axis2_status_t AXIS2_CALL
-axis2_xml_schema_collection_add_unresolved_type(void *collection,
- axis2_env_t **env,
- axis2_qname_t *qtype,
- axis2_xml_schema_type_receiver_t *receiver);
-
-axis2_status_t AXIS2_CALL
-axis2_xml_schema_collection_resolve_type(void *collection,
- axis2_env_t **env,
- axis2_qname_t *type_qame,
- struct axis2_xml_schema_type *type);
+axis2_xml_schema_collection_add_unresolved_type
+ (axis2_xml_schema_collection_t* collection,
+ axis2_env_t **env,
+ axis2_qname_t *qtype,
+ struct axis2_xml_schema_type_receiver *receiver);
-axis2_char_t *AXIS2_CALL
-axis2_xml_schema_collection_get_namespace_for_prefix(void *collection,
- axis2_env_t **env,
- axis2_char_t *prefix);
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_collection_resolve_type
+ (axis2_xml_schema_collection_t* collection,
+ axis2_env_t **env,
+ axis2_qname_t *type_qame,
+ struct axis2_xml_schema_type *type);
+
+axis2_char_t * AXIS2_CALL
+axis2_xml_schema_collection_get_namespace_for_prefix
+ (axis2_xml_schema_collection_t *collection,
+ axis2_env_t **env,
+ axis2_char_t *prefix);
+
axis2_status_t AXIS2_CALL
-axis2_xml_schema_collection_map_namespace(void *collection,
- axis2_env_t **env,
- axis2_char_t *prefix,
- axis2_char_t *namespc_uri);
-
+axis2_xml_schema_collection_map_namespace
+ (axis2_xml_schema_collection_t* collection,
+ axis2_env_t **env,
+ axis2_char_t *prefix,
+ axis2_char_t *namespc_uri);
+
+
AXIS2_DECLARE(axis2_xml_schema_collection_t *)
axis2_xml_schema_collection_create(axis2_env_t **env)
@@ -174,10 +173,29 @@
collection_impl = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_collection_impl_t));
-
+ if(!collection_impl)
+ {
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+
+ collection_impl->base_uri = NULL;
+ collection_impl->collection.ops = NULL;
+ collection_impl->in_scope_namespaces = NULL;
+ collection_impl->namespaces = NULL;
+ collection_impl->unresolved_types = NULL;
+ collection_impl->xml_schema = NULL;
+
collection_impl->collection.ops = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_collection_ops_t));
-
+
+ if(!collection_impl->collection.ops)
+ {
+ axis2_xml_schema_collection_free(&(collection_impl->collection), env);
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+
axis2_xml_schema_collection_init(&(collection_impl->collection), env);
collection_impl->collection.ops->free =
@@ -186,18 +204,24 @@
axis2_xml_schema_collection_set_base_uri;
collection_impl->collection.ops->init =
axis2_xml_schema_collection_init;
+
collection_impl->collection.ops->read_a_reader_and_validation_event_handler =
axis2_xml_schema_collection_read_a_reader_and_validation_event_handler;
+
collection_impl->collection.ops->read_a_input_source_and_validation_event_handler =
axis2_xml_schema_collection_read_a_input_source_and_validation_event_handler;
+
collection_impl->collection.ops->read_a_source_and_validation_event_handler =
axis2_xml_schema_collection_read_a_source_and_validation_event_handler;
+
collection_impl->collection.ops->read_a_document_and_validation_event_handler =
axis2_xml_schema_collection_read_a_document_and_validation_event_handler;
+
collection_impl->collection.ops->read_a_element =
axis2_xml_schema_collection_read_a_element;
- collection_impl->collection.ops->read_a_document_and_uri_and_validation_event_handler=
- axis2_xml_schema_collection_read_a_document_and_uri_and_validation_event_handler;
+
+ collection_impl->collection.ops->read_a_document_uri_and_validation_event_handler=
+ axis2_xml_schema_collection_read_a_document_uri_and_validation_event_handler;
collection_impl->collection.ops->read_a_element_and_uri =
axis2_xml_schema_collection_read_a_element_and_uri;
collection_impl->collection.ops->get_element_by_qname =
@@ -218,87 +242,20 @@
axis2_status_t AXIS2_CALL
-axis2_xml_schema_collection_free(void *collection,
- axis2_env_t **env)
+axis2_xml_schema_collection_free(axis2_xml_schema_collection_t *collection,
+ axis2_env_t **env)
{
- axis2_xml_schema_collection_impl_t *collection_impl = NULL;
-
- collection_impl = INTF_TO_IMPL(collection);
-
- if((&(collection_impl->collection))->ops)
- {
- free((&(collection_impl->collection))->ops);
- (&(collection_impl->collection))->ops = NULL;
- }
-
- if(collection_impl)
+ if(NULL != collection->ops)
{
- free(collection_impl);
- collection_impl = NULL;
+ AXIS2_FREE((*env)->allocator, collection->ops);
+ collection->ops = NULL;
}
+ AXIS2_FREE((*env)->allocator, AXIS2_INTF_TO_IMPL(collection));
return AXIS2_SUCCESS;
}
-AXIS2_DECLARE(axis2_status_t)
-axis2_xml_schema_collection_resolve_methods(
- axis2_xml_schema_collection_t *collection,
- axis2_env_t **env,
- axis2_xml_schema_collection_t *collection_impl,
- axis2_hash_t *methods)
-{
- axis2_xml_schema_collection_impl_t *collection_impl_l = NULL;
-
- AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK((*env)->error, collection_impl, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK((*env)->error, methods, AXIS2_FAILURE);
-
- collection_impl_l = (axis2_xml_schema_collection_impl_t *) collection_impl;
-
- collection->ops = AXIS2_MALLOC((*env)->allocator,
- sizeof(axis2_xml_schema_collection_ops_t));
- collection->ops->free = axis2_hash_get(methods, "free",
- AXIS2_HASH_KEY_STRING);
- collection->ops->set_base_uri =
- collection_impl_l->collection.ops->set_base_uri;
- collection->ops->init =
- collection_impl_l->collection.ops->init;
- collection->ops->read_a_reader_and_validation_event_handler =
- collection_impl_l->collection.ops->read_a_reader_and_validation_event_handler;
- collection->ops->read_a_input_source_and_validation_event_handler =
- collection_impl_l->collection.ops->read_a_input_source_and_validation_event_handler;
- collection->ops->read_a_source_and_validation_event_handler =
- collection_impl_l->collection.ops->read_a_source_and_validation_event_handler;
- collection->ops->read_a_document_and_validation_event_handler =
- collection_impl_l->collection.ops->read_a_document_and_validation_event_handler;
- collection->ops->read_a_element =
- collection_impl_l->collection.ops->read_a_element;
- collection->ops->read_a_document_and_uri_and_validation_event_handler =
- collection_impl_l->collection.ops->read_a_document_and_uri_and_validation_event_handler;
- collection->ops->read_a_element_and_uri =
- collection_impl_l->collection.ops->read_a_element_and_uri;
- collection->ops->get_element_by_qname =
- collection_impl_l->collection.ops->get_element_by_qname;
- collection->ops->get_type_by_qname =
- collection_impl_l->collection.ops->get_type_by_qname;
- collection->ops->add_unresolved_type =
- collection_impl_l->collection.ops->add_unresolved_type;
- collection->ops->resolve_type =
- collection_impl_l->collection.ops->resolve_type;
- collection->ops->get_namespace_for_prefix =
- collection_impl_l->collection.ops->get_namespace_for_prefix;
- collection->ops->map_namespace =
- collection_impl_l->collection.ops->map_namespace;
- return AXIS2_SUCCESS;
-
-}
-
-/**
- * Set the base URI. This is used when schemas need to be
- * loaded from relative locations
- * @param base_uri
- */
axis2_status_t AXIS2_CALL
-axis2_xml_schema_collection_set_base_uri(void *collection,
+axis2_xml_schema_collection_set_base_uri(axis2_xml_schema_collection_t*collection,
axis2_env_t **env,
axis2_char_t *base_uri)
{
@@ -312,7 +269,7 @@
* This needs to be inspected by another pair of eyes
*/
axis2_status_t AXIS2_CALL
-axis2_xml_schema_collection_init(void *collection,
+axis2_xml_schema_collection_init(axis2_xml_schema_collection_t *collection,
axis2_env_t **env)
{
/*
@@ -374,7 +331,7 @@
return AXIS2_SUCCESS;
}
-static axis2_status_t add_simple_type(void *collection,
+static axis2_status_t add_simple_type(axis2_xml_schema_collection_t *collection,
axis2_env_t **env,
axis2_xml_schema_t *schema,
axis2_char_t *type_name)
@@ -384,70 +341,68 @@
axis2_xml_schema_t *AXIS2_CALL
axis2_xml_schema_collection_read_a_reader_and_validation_event_handler(
- void *collection,
+ axis2_xml_schema_collection_t *collection,
axis2_env_t **env,
- void *reader,
- axis2_xml_schema_validation_event_handler_t *veh)
+ axis2_xml_schema_collection_t *reader,
+ axis2_validation_event_handler_t *veh)
{
return NULL;
}
axis2_xml_schema_t *AXIS2_CALL
axis2_xml_schema_collection_read_a_input_source_and_validation_event_handler(
- void *collection,
+ axis2_xml_schema_collection_t *collection,
axis2_env_t **env,
- void *input_source,
- axis2_xml_schema_validation_event_handler_t *veh)
+ axis2_xml_schema_collection_t *input_source,
+ axis2_validation_event_handler_t *veh)
{
return NULL;
}
axis2_xml_schema_t *AXIS2_CALL
axis2_xml_schema_collection_read_a_source_and_validation_event_handler(
- void *collection,
+ axis2_xml_schema_collection_t *collection,
axis2_env_t **env,
- void *source,
- axis2_xml_schema_validation_event_handler_t *veh)
+ axis2_xml_schema_collection_t *source,
+ axis2_validation_event_handler_t *veh)
{
return NULL;
}
axis2_xml_schema_t *AXIS2_CALL
axis2_xml_schema_collection_read_a_document_and_validation_event_handler(
- void *collection,
+ axis2_xml_schema_collection_t *collection,
axis2_env_t **env,
void *source,
- axis2_xml_schema_validation_event_handler_t *veh)
+ axis2_validation_event_handler_t *veh)
{
return NULL;
}
axis2_xml_schema_t *AXIS2_CALL
axis2_xml_schema_collection_read_a_element(
- void *collection,
+ axis2_xml_schema_collection_t *collection,
axis2_env_t **env,
- axis2_om_element_t *element,
axis2_om_node_t *node)
{
return NULL;
}
axis2_xml_schema_t *AXIS2_CALL
-axis2_xml_schema_collection_read_a_document_and_uri_and_validation_event_handler(
- void *collection,
+axis2_xml_schema_collection_read_a_document_uri_and_validation_event_handler(
+ axis2_xml_schema_collection_t *collection,
axis2_env_t **env,
void *document,
axis2_char_t *uri,
- axis2_xml_schema_validation_event_handler_t *veh)
+ axis2_validation_event_handler_t *veh)
{
return NULL;
}
axis2_xml_schema_t *AXIS2_CALL
axis2_xml_schema_collection_read_a_element_and_uri(
- void *collection,
+ axis2_xml_schema_collection_t *collection,
axis2_env_t **env,
- axis2_om_element_t *element,
axis2_om_node_t *node,
axis2_char_t *uri)
{
@@ -455,7 +410,7 @@
}
axis2_xml_schema_element_t *AXIS2_CALL
-axis2_xml_schema_collection_get_element_by_qname(void *collection,
+axis2_xml_schema_collection_get_element_by_qname(axis2_xml_schema_collection_t *collection,
axis2_env_t **env,
axis2_qname_t *qname)
{
@@ -463,7 +418,7 @@
}
axis2_xml_schema_type_t *AXIS2_CALL
-axis2_xml_schema_collection_get_type_by_qname(void *collection,
+axis2_xml_schema_collection_get_type_by_qname(axis2_xml_schema_collection_t *collection,
axis2_env_t **env,
axis2_qname_t *schema_type_qname)
{
@@ -472,7 +427,7 @@
axis2_status_t AXIS2_CALL
-axis2_xml_schema_collection_add_unresolved_type(void *collection,
+axis2_xml_schema_collection_add_unresolved_type(axis2_xml_schema_collection_t *collection,
axis2_env_t **env,
axis2_qname_t *qtype,
axis2_xml_schema_type_receiver_t *receiver)
@@ -481,7 +436,7 @@
}
axis2_status_t AXIS2_CALL
-axis2_xml_schema_collection_resolve_type(void *collection,
+axis2_xml_schema_collection_resolve_type(axis2_xml_schema_collection_t *collection,
axis2_env_t **env,
axis2_qname_t *type_qame,
struct axis2_xml_schema_type *type)
@@ -490,7 +445,7 @@
}
axis2_char_t *AXIS2_CALL
-axis2_xml_schema_collection_get_namespace_for_prefix(void *collection,
+axis2_xml_schema_collection_get_namespace_for_prefix(axis2_xml_schema_collection_t *collection,
axis2_env_t **env,
axis2_char_t *prefix)
{
@@ -498,7 +453,7 @@
}
axis2_status_t AXIS2_CALL
-axis2_xml_schema_collection_map_namespace(void *collection,
+axis2_xml_schema_collection_map_namespace(axis2_xml_schema_collection_t *collection,
axis2_env_t **env,
axis2_char_t *prefix,
axis2_char_t *namespc_uri)
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_content_processing.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_content_processing.c?rev=395780&r1=395779&r2=395780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_content_processing.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_content_processing.c Thu Apr 20 22:00:55 2006
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-#include <xml_schema/axis2_xml_schema_content_processing.h>
+#include <axis2_xml_schema_content_processing.h>
typedef struct axis2_xml_schema_content_processing_impl
axis2_xml_schema_content_processing_impl_t;
@@ -26,12 +26,15 @@
struct axis2_xml_schema_content_processing_impl
{
axis2_xml_schema_content_processing_t content_processing;
+
axis2_xml_schema_enum_t *schema_enum;
+
axis2_hash_t *methods;
+
axis2_array_list_t *members;
};
-#define INTF_TO_IMPL(content_processing) \
+#define AXIS2_INTF_TO_IMPL(content_processing) \
((axis2_xml_schema_content_processing_impl_t *) content_processing)
axis2_status_t AXIS2_CALL
@@ -56,44 +59,66 @@
content_processing_impl = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_content_processing_impl_t));
-
+ if(!content_processing_impl)
+ {
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+
content_processing_impl->schema_enum = NULL;
+ content_processing_impl->content_processing.base.ops = NULL;
content_processing_impl->methods = NULL;
content_processing_impl->members = NULL;
+ content_processing_impl->content_processing.ops = NULL;
+
content_processing_impl->content_processing.ops =
AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_content_processing_ops_t));
-
+ if(!content_processing_impl->content_processing.ops)
+ {
+ axis2_xml_schema_content_processing_free(
+ &(content_processing_impl->content_processing), env);
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
+
content_processing_impl->content_processing.ops->free =
axis2_xml_schema_content_processing_free;
content_processing_impl->content_processing.ops->get_base_impl =
axis2_xml_schema_content_processing_get_base_impl;
+
content_processing_impl->content_processing.ops->get_values =
axis2_xml_schema_content_processing_get_values;
+ content_processing_impl->members = axis2_array_list_create(env, 0);
if(!content_processing_impl->members)
{
- content_processing_impl->members = axis2_array_list_create(env, 0);
- if(!content_processing_impl->members)
- return NULL;
- AXIS2_ARRAY_LIST_ADD(content_processing_impl->members, env, "Lax");
- AXIS2_ARRAY_LIST_ADD(content_processing_impl->members, env, "None");
- AXIS2_ARRAY_LIST_ADD(content_processing_impl->members, env, "Skip");
- AXIS2_ARRAY_LIST_ADD(content_processing_impl->members, env, "Strict");
- }
+ axis2_xml_schema_content_processing_free(
+ &(content_processing_impl->content_processing), env);
+ return NULL;
+ }
+ AXIS2_ARRAY_LIST_ADD(content_processing_impl->members, env, "Lax");
+ AXIS2_ARRAY_LIST_ADD(content_processing_impl->members, env, "None");
+ AXIS2_ARRAY_LIST_ADD(content_processing_impl->members, env, "Skip");
+ AXIS2_ARRAY_LIST_ADD(content_processing_impl->members, env, "Strict");
content_processing_impl->methods = axis2_hash_make(env);
if(!content_processing_impl->methods)
{
+ axis2_xml_schema_content_processing_free(
+ &(content_processing_impl->content_processing), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
+
axis2_hash_set(content_processing_impl->methods, "free",
AXIS2_HASH_KEY_STRING, axis2_xml_schema_content_processing_free);
+
axis2_hash_set(content_processing_impl->methods, "get_values",
AXIS2_HASH_KEY_STRING, axis2_xml_schema_content_processing_get_values);
content_processing_impl->schema_enum = axis2_xml_schema_enum_create(env, NULL);
+
status = axis2_xml_schema_enum_resolve_methods(
&(content_processing_impl->content_processing.base), env,
content_processing_impl->schema_enum,
@@ -109,33 +134,50 @@
axis2_xml_schema_content_processing_impl_t *content_processing_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- content_processing_impl = INTF_TO_IMPL(content_processing);
+ content_processing_impl = AXIS2_INTF_TO_IMPL(content_processing);
- if(content_processing_impl->members)
- {
+ if(NULL != content_processing_impl->members)
+ {
+ int size = 0;
+ int i = 0;
+ size = AXIS2_ARRAY_LIST_SIZE(content_processing_impl->members, env);
+ for(i = 0; i < size ; i++)
+ {
+ axis2_char_t *value = NULL;
+ value =(axis2_char_t* )
+ AXIS2_ARRAY_LIST_GET(content_processing_impl->members, env, i);
+ if(NULL != value)
+ {
+ AXIS2_FREE((*env)->allocator, value);
+ value = NULL;
+ }
+ }
AXIS2_ARRAY_LIST_FREE(content_processing_impl->members, env);
content_processing_impl->members = NULL;
}
- if(content_processing_impl->methods)
+ if(NULL != content_processing_impl->methods)
{
axis2_hash_free(content_processing_impl->methods, env);
content_processing_impl->methods = NULL;
}
- if(content_processing_impl->schema_enum)
+ if(NULL != content_processing_impl->schema_enum)
{
AXIS2_XML_SCHEMA_ENUM_FREE(content_processing_impl->schema_enum, env);
content_processing_impl->schema_enum = NULL;
}
- if((&(content_processing_impl->content_processing))->ops)
+ if(NULL != content_processing_impl->content_processing.ops)
{
- AXIS2_FREE((*env)->allocator, (&(content_processing_impl->
- content_processing))->ops);
- (&(content_processing_impl->content_processing))->ops = NULL;
+ AXIS2_FREE((*env)->allocator, content_processing_impl->content_processing.ops);
+ content_processing_impl->content_processing.ops = NULL;
}
-
- if(content_processing_impl)
+ if(NULL != content_processing_impl->content_processing.base.ops)
+ {
+ AXIS2_FREE((*env)->allocator, content_processing_impl->content_processing.base.ops);
+ content_processing_impl->content_processing.base.ops = NULL;
+ }
+ if(NULL != content_processing_impl)
{
AXIS2_FREE((*env)->allocator, content_processing_impl);
content_processing_impl = NULL;
@@ -150,7 +192,7 @@
axis2_xml_schema_content_processing_impl_t *content_processing_impl = NULL;
AXIS2_ENV_CHECK(env, NULL);
- content_processing_impl = INTF_TO_IMPL(content_processing);
+ content_processing_impl = AXIS2_INTF_TO_IMPL(content_processing);
return content_processing_impl->schema_enum;
}
@@ -189,6 +231,6 @@
axis2_xml_schema_content_processing_get_values(void *content_processing,
axis2_env_t **env)
{
- return INTF_TO_IMPL(content_processing)->members;
+ return AXIS2_INTF_TO_IMPL(content_processing)->members;
}
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_data_type.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_data_type.c?rev=395780&r1=395779&r2=395780&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_data_type.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_data_type.c Thu Apr 20 22:00:55 2006
@@ -14,11 +14,12 @@
* limitations under the License.
*/
-#include <xml_schema/axis2_xml_schema_data_type.h>
-#include <xml_schema/axis2_xml_tokenized_type.h>
+#include <axis2_xml_schema_data_type.h>
+#include <axis2_xml_tokenized_type.h>
#include <axis2_hash.h>
-typedef struct axis2_xml_schema_data_type_impl axis2_xml_schema_data_type_impl_t;
+typedef struct axis2_xml_schema_data_type_impl
+ axis2_xml_schema_data_type_impl_t;
/**
* @brief Xml Schema Data Type Struct Impl
@@ -29,7 +30,8 @@
axis2_xml_schema_data_type_t data_type;
};
-#define INTF_TO_IMPL(data_type) ((axis2_xml_schema_data_type_impl_t *) data_type)
+#define AXIS2_INTF_TO_IMPL(data_type) \
+ ((axis2_xml_schema_data_type_impl_t *) data_type)
axis2_status_t AXIS2_CALL
axis2_xml_schema_data_type_free(void *data_type,
@@ -55,10 +57,17 @@
data_type_impl = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_data_type_impl_t));
-
+ if(NULL != data_type_impl)
+ {
+ return NULL;
+ }
data_type_impl->data_type.ops = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_data_type_ops_t));
-
+ if(NULL != data_type_impl->data_type.ops)
+ {
+ AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
+ return NULL;
+ }
data_type_impl->data_type.ops->free = axis2_xml_schema_data_type_free;
data_type_impl->data_type.ops->parse_value = axis2_xml_schema_data_type_parse_value;
@@ -75,17 +84,17 @@
{
axis2_xml_schema_data_type_impl_t *data_type_impl = NULL;
- data_type_impl = INTF_TO_IMPL(data_type);
+ data_type_impl = AXIS2_INTF_TO_IMPL(data_type);
- if((&(data_type_impl->data_type))->ops)
+ if(data_type_impl->data_type.ops)
{
- free((&(data_type_impl->data_type))->ops);
- (&(data_type_impl->data_type))->ops = NULL;
+ AXIS2_FREE((*env)->allocator ,data_type_impl->data_type.ops);
+ data_type_impl->data_type.ops = NULL;
}
- if(data_type_impl)
+ if(NULL != data_type_impl)
{
- free(data_type_impl);
+ AXIS2_FREE((*env)->allocator, data_type_impl);
data_type_impl = NULL;
}
return AXIS2_SUCCESS;
@@ -127,7 +136,7 @@
axis2_xml_schema_data_type_impl_t *data_type_impl = NULL;
AXIS2_ENV_CHECK(env, NULL);
- data_type_impl = INTF_TO_IMPL(data_type);
+ data_type_impl = AXIS2_INTF_TO_IMPL(data_type);
return NULL;
}
@@ -138,7 +147,7 @@
axis2_xml_schema_data_type_impl_t *data_type_impl = NULL;
AXIS2_ENV_CHECK(env, NULL);
- data_type_impl = INTF_TO_IMPL(data_type);
+ data_type_impl = AXIS2_INTF_TO_IMPL(data_type);
return NULL;
}
@@ -150,7 +159,7 @@
axis2_xml_schema_data_type_impl_t *data_type_impl = NULL;
AXIS2_ENV_CHECK(env, NULL);
- data_type_impl = INTF_TO_IMPL(data_type);
+ data_type_impl = AXIS2_INTF_TO_IMPL(data_type);
return NULL;
}