You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by na...@apache.org on 2006/05/15 11:31:15 UTC
svn commit: r406594 [6/8] - in
/webservices/axis2/trunk/c/modules/xml/xml_schema: ./ include/xml_schema/
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_external.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_external.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_external.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_external.c Mon May 15 02:31:10 2006
@@ -30,6 +30,12 @@
axis2_xml_schema_t *schema;
axis2_hash_t *methods;
+
+ axis2_xml_schema_types_t obj_type;
+
+ axis2_hash_t *ht_super;
+
+ axis2_char_t *schema_location;
}axis2_xml_schema_external_impl_t;
@@ -46,6 +52,15 @@
axis2_xml_schema_external_get_base_impl(void *external,
axis2_env_t **env);
+axis2_hash_t* AXIS2_CALL
+axis2_xml_schema_external_super_objs(void *external,
+ axis2_env_t **env);
+
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_schema_external_type(void *external,
+ axis2_env_t **env);
+
+
axis2_xml_schema_t* AXIS2_CALL
axis2_xml_schema_external_get_schema(void *external,
axis2_env_t **env);
@@ -55,6 +70,16 @@
axis2_env_t **env,
axis2_xml_schema_t *schema);
+axis2_char_t* AXIS2_CALL
+axis2_xml_schema_external_get_schema_location(void *external,
+ axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_external_set_schema_location(void *external,
+ axis2_env_t **env,
+ axis2_char_t* location);
+
+
/********************* end function prototypes ********************************/
AXIS2_DECLARE(axis2_xml_schema_external_t *)
@@ -75,6 +100,8 @@
external_impl->methods = NULL;
external_impl->external.ops = NULL;
external_impl->external.base.ops = NULL;
+ external_impl->ht_super = NULL;
+ external_impl->obj_type = AXIS2_XML_SCHEMA_EXTERNAL;
external_impl->external.ops = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_external_ops_t));
@@ -90,15 +117,23 @@
axis2_xml_schema_external_free;
external_impl->external.ops->get_base_impl =
axis2_xml_schema_external_get_base_impl;
-
+ external_impl->external.ops->type =
+ axis2_xml_schema_external_type;
+ external_impl->external.ops->super_objs =
+ axis2_xml_schema_external_super_objs;
external_impl->external.ops->get_schema =
- axis2_xml_schema_external_get_schema;
-
+ axis2_xml_schema_external_get_schema;
external_impl->external.ops->set_schema =
- axis2_xml_schema_external_set_schema;
+ axis2_xml_schema_external_set_schema;
+ external_impl->external.ops->get_schema_location =
+ axis2_xml_schema_external_get_schema_location;
+ external_impl->external.ops->set_schema_location =
+ axis2_xml_schema_external_set_schema_location;
external_impl->methods = axis2_hash_make(env);
- if(!external_impl->methods)
+ external_impl->ht_super = axis2_hash_make(env);
+
+ if(!external_impl->methods || !external_impl->ht_super)
{
axis2_xml_schema_external_free(&(external_impl->external), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
@@ -107,18 +142,35 @@
axis2_hash_set(external_impl->methods, "free", AXIS2_HASH_KEY_STRING,
axis2_xml_schema_external_free);
-
+ axis2_hash_set(external_impl->methods, "type", AXIS2_HASH_KEY_STRING,
+ axis2_xml_schema_external_type);
+ axis2_hash_set(external_impl->methods, "super_objs", AXIS2_HASH_KEY_STRING,
+ axis2_xml_schema_external_super_objs);
+ axis2_hash_set(external_impl->methods, "get_schema_location", AXIS2_HASH_KEY_STRING,
+ axis2_xml_schema_external_get_schema_location);
+ axis2_hash_set(external_impl->methods, "set_schema_location", AXIS2_HASH_KEY_STRING,
+ axis2_xml_schema_external_set_schema_location);
axis2_hash_set(external_impl->methods, "get_schema",
AXIS2_HASH_KEY_STRING, axis2_xml_schema_external_get_schema);
axis2_hash_set(external_impl->methods, "set_schema",
AXIS2_HASH_KEY_STRING, axis2_xml_schema_external_set_schema);
+
external_impl->annotated = axis2_xml_schema_annotated_create(env);
if(!external_impl->annotated)
{
axis2_xml_schema_external_free(&(external_impl->external), env);
return NULL;
}
+
+ axis2_hash_set(external_impl->ht_super, "AXIS2_XML_SCHEMA_EXTERNAL",
+ AXIS2_HASH_KEY_STRING, &(external_impl->external));
+ axis2_hash_set(external_impl->ht_super, "AXIS2_XML_SCHEMA_ANNOTATED",
+ AXIS2_HASH_KEY_STRING, external_impl->annotated);
+ axis2_hash_set(external_impl->ht_super, "AXIS2_XML_SCHEMA_OBJ",
+ AXIS2_HASH_KEY_STRING,
+ AXIS2_XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(external_impl->annotated, env));
+
status = axis2_xml_schema_annotated_resolve_methods(
&(external_impl->external.base), env, external_impl->annotated,
external_impl->methods);
@@ -126,6 +178,15 @@
return &(external_impl->external);
}
+AXIS2_DECLARE(axis2_xml_schema_external_t *)
+axis2_xml_schema_include_create(axis2_env_t **env)
+{
+ axis2_xml_schema_external_t *include = NULL;
+ include = axis2_xml_schema_external_create(env);
+ AXIS2_INTF_TO_IMPL(include)->obj_type = AXIS2_XML_SCHEMA_INCLUDE;
+ return include;
+}
+
axis2_status_t AXIS2_CALL
axis2_xml_schema_external_free(void *external,
axis2_env_t **env)
@@ -141,6 +202,11 @@
external_impl->methods = NULL;
}
+ if(NULL != external_impl->ht_super)
+ {
+ axis2_hash_free(external_impl->ht_super, env);
+ external_impl->ht_super = NULL;
+ }
if(NULL != external_impl->annotated)
{
AXIS2_XML_SCHEMA_ANNOTATED_FREE(external_impl->annotated, env);
@@ -181,37 +247,53 @@
axis2_xml_schema_external_t *external_impl,
axis2_hash_t *methods)
{
- axis2_xml_schema_external_impl_t *external_impl_l = NULL;
+ axis2_xml_schema_external_impl_t *sch_ext_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, external_impl, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, methods, AXIS2_FAILURE);
- external_impl_l = (axis2_xml_schema_external_impl_t *) external_impl;
+ sch_ext_impl = (axis2_xml_schema_external_impl_t *) external_impl;
external->ops = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_external_ops_t));
external->ops->free = axis2_hash_get(methods, "free",
AXIS2_HASH_KEY_STRING);
-
- external->ops->get_base_impl =
- external_impl_l->external.ops->get_base_impl;
+ external->ops->super_objs = axis2_hash_get(methods, "super_objs",
+ AXIS2_HASH_KEY_STRING);
+ external->ops->type = axis2_hash_get(methods, "type",
+ AXIS2_HASH_KEY_STRING);
+
external->ops->set_schema =
- external_impl_l->external.ops->set_schema;
+ sch_ext_impl->external.ops->set_schema;
external->ops->get_schema =
- external_impl_l->external.ops->get_schema;
-
+ sch_ext_impl->external.ops->get_schema;
+ external->ops->set_schema_location =
+ sch_ext_impl->external.ops->set_schema_location;
+ external->ops->get_schema_location =
+ sch_ext_impl->external.ops->get_schema_location;
return axis2_xml_schema_annotated_resolve_methods(&(external->base),
- env, external_impl_l->annotated, methods);
+ env, sch_ext_impl->annotated, methods);
}
axis2_xml_schema_t * AXIS2_CALL
axis2_xml_schema_external_get_schema(void *external,
axis2_env_t **env)
{
+ axis2_xml_schema_external_impl_t *ext_impl = NULL;
+ axis2_hash_t *ht_super = NULL;
AXIS2_ENV_CHECK(env, NULL);
- return AXIS2_INTF_TO_IMPL(external)->schema;
+ ht_super = AXIS2_XML_SCHEMA_EXTERNAL_SUPER_OBJS(external, env);
+ if(NULL != ht_super)
+ {
+
+ ext_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(ht_super,
+ "AXIS2_XML_SCHEMA_EXTERNAL", AXIS2_HASH_KEY_STRING));
+ if(!ext_impl)
+ return NULL;
+ }
+ return ext_impl->schema;
}
axis2_status_t AXIS2_CALL
@@ -220,13 +302,85 @@
axis2_xml_schema_t *schema)
{
axis2_xml_schema_external_impl_t *ext_impl = NULL;
+ axis2_hash_t *ht_super = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- ext_impl = AXIS2_INTF_TO_IMPL(external);
+ ht_super = AXIS2_XML_SCHEMA_EXTERNAL_SUPER_OBJS(external, env);
+ if(NULL != ht_super)
+ {
+
+ ext_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(ht_super,
+ "AXIS2_XML_SCHEMA_EXTERNAL", AXIS2_HASH_KEY_STRING));
+ if(!ext_impl)
+ return AXIS2_FAILURE;
+ }
if(NULL != ext_impl->schema)
{
+ /*
AXIS2_XML_SCHEMA_FREE(ext_impl->schema, env);
ext_impl->schema = NULL;
+ */
}
ext_impl->schema = schema;
return AXIS2_SUCCESS;
}
+
+axis2_hash_t* AXIS2_CALL
+axis2_xml_schema_external_super_objs(void *external,
+ axis2_env_t **env)
+{
+ return AXIS2_INTF_TO_IMPL(external)->ht_super;
+}
+
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_schema_external_type(void *external,
+ axis2_env_t **env)
+{
+ return AXIS2_INTF_TO_IMPL(external)->obj_type;
+}
+
+axis2_char_t* AXIS2_CALL
+axis2_xml_schema_external_get_schema_location(void *external,
+ axis2_env_t **env)
+{
+ axis2_xml_schema_external_impl_t *ext_impl = NULL;
+ axis2_hash_t *ht_super = NULL;
+ AXIS2_ENV_CHECK(env, NULL);
+ ht_super = AXIS2_XML_SCHEMA_EXTERNAL_SUPER_OBJS(external, env);
+ if(NULL != ht_super)
+ {
+
+ ext_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(ht_super,
+ "AXIS2_XML_SCHEMA_EXTERNAL", AXIS2_HASH_KEY_STRING));
+ if(!ext_impl)
+ return NULL;
+ }
+ return ext_impl->schema_location;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_external_set_schema_location(void *external,
+ axis2_env_t **env,
+ axis2_char_t* location)
+{
+ axis2_xml_schema_external_impl_t *ext_impl = NULL;
+ axis2_hash_t *ht_super = NULL;
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, location, AXIS2_FAILURE);
+ ht_super = AXIS2_XML_SCHEMA_EXTERNAL_SUPER_OBJS(external, env);
+ if(NULL != ht_super)
+ {
+
+ ext_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(ht_super,
+ "AXIS2_XML_SCHEMA_EXTERNAL", AXIS2_HASH_KEY_STRING));
+ if(!ext_impl)
+ return AXIS2_FAILURE;
+ }
+ if(NULL != ext_impl->schema_location)
+ {
+ AXIS2_FREE((*env)->allocator, ext_impl->schema_location);
+ ext_impl->schema_location = NULL;
+ }
+ ext_impl->schema_location = AXIS2_STRDUP(location, env);
+ return AXIS2_SUCCESS;
+}
+
\ No newline at end of file
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_facet.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_facet.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_facet.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_facet.c Mon May 15 02:31:10 2006
@@ -37,7 +37,9 @@
axis2_bool_t fixed;
- int facet_type;
+ int obj_type;
+
+ axis2_hash_t* ht_super;
void *value;
};
@@ -78,16 +80,20 @@
axis2_env_t **env,
int facet_type);
-int AXIS2_CALL
-axis2_xml_schema_facet_get_facet_type(void *facet,
- axis2_env_t **env);
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_schema_facet_type(void *facet,
+ axis2_env_t **env);
+axis2_hash_t* AXIS2_CALL
+axis2_xml_schema_facet_super_objs(void *facet,
+ axis2_env_t **env);
/********************** end function prototypes *******************************/
AXIS2_DECLARE(axis2_xml_schema_facet_t *)
axis2_xml_schema_facet_create(axis2_env_t **env,
void *value,
- axis2_bool_t fixed)
+ axis2_bool_t fixed,
+ axis2_xml_schema_types_t type)
{
axis2_xml_schema_facet_impl_t *facet_impl = NULL;
axis2_status_t status = AXIS2_FAILURE;
@@ -102,7 +108,7 @@
facet_impl->annotated = NULL;
facet_impl->facet.ops = NULL;
- facet_impl->facet_type = AXIS2_XML_SCHEMA_FACET;
+ facet_impl->obj_type = type;
facet_impl->facet.base.ops = NULL;
facet_impl->methods = NULL;
facet_impl->fixed = fixed;
@@ -128,6 +134,12 @@
axis2_xml_schema_facet_get_value;
facet_impl->facet.ops->set_value =
axis2_xml_schema_facet_set_value;
+ facet_impl->facet.ops->type =
+ axis2_xml_schema_facet_type;
+ facet_impl->facet.ops->set_facet_type =
+ axis2_xml_schema_facet_set_facet_type;
+ facet_impl->facet.ops->super_objs =
+ axis2_xml_schema_facet_super_objs;
facet_impl->methods = axis2_hash_make(env);
if(!facet_impl->methods)
@@ -147,13 +159,33 @@
axis2_hash_set(facet_impl->methods, "set_value",
AXIS2_HASH_KEY_STRING, axis2_xml_schema_facet_set_value);
-
+ axis2_hash_set(facet_impl->methods, "type",
+ AXIS2_HASH_KEY_STRING, axis2_xml_schema_facet_type);
+ axis2_hash_set(facet_impl->methods, "super_objs",
+ AXIS2_HASH_KEY_STRING, axis2_xml_schema_facet_super_objs);
+
+
facet_impl->annotated = axis2_xml_schema_annotated_create(env);
if(!facet_impl->annotated)
{
axis2_xml_schema_facet_free(&(facet_impl->facet), env);
return NULL;
}
+
+ facet_impl->ht_super = axis2_hash_make(env);
+ if(!facet_impl->ht_super)
+ {
+ axis2_xml_schema_facet_free(&(facet_impl->facet), env);
+ return NULL;
+ }
+ axis2_hash_set(facet_impl->ht_super, "AXIS2_XML_SCHEMA_FACET",
+ AXIS2_HASH_KEY_STRING, &(facet_impl->facet));
+ axis2_hash_set(facet_impl->ht_super, "AXIS2_XML_SCHEMA_ANNOTATED",
+ AXIS2_HASH_KEY_STRING, facet_impl->annotated);
+ axis2_hash_set(facet_impl->ht_super, "AXIS2_XML_SCHEMA_OBJ",
+ AXIS2_HASH_KEY_STRING,
+ AXIS2_XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(facet_impl->annotated, env));
+
status = axis2_xml_schema_annotated_resolve_methods(
&(facet_impl->facet.base), env, facet_impl->annotated,
facet_impl->methods);
@@ -203,13 +235,11 @@
axis2_env_t **env)
{
axis2_xml_schema_facet_impl_t *facet_impl = NULL;
-
AXIS2_ENV_CHECK(env, NULL);
facet_impl = AXIS2_INTF_TO_IMPL(facet);
-
return facet_impl->annotated;
}
-
+/*
AXIS2_DECLARE(axis2_status_t)
axis2_xml_schema_facet_resolve_methods(
axis2_xml_schema_facet_t *facet,
@@ -217,13 +247,13 @@
axis2_xml_schema_facet_t *facet_impl,
axis2_hash_t *methods)
{
- axis2_xml_schema_facet_impl_t *facet_impl_l = NULL;
+ axis2_xml_schema_facet_impl_t *sch_facet_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, facet_impl, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, methods, AXIS2_FAILURE);
- facet_impl_l = (axis2_xml_schema_facet_impl_t *) facet_impl;
+ sch_facet_impl = (axis2_xml_schema_facet_impl_t *) facet_impl;
facet->ops = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_facet_ops_t));
@@ -236,19 +266,19 @@
facet->ops->free = axis2_hash_get(methods, "free",
AXIS2_HASH_KEY_STRING);
facet->ops->get_base_impl =
- facet_impl_l->facet.ops->get_base_impl;
+ sch_facet_impl->facet.ops->get_base_impl;
facet->ops->is_fixed =
- facet_impl_l->facet.ops->is_fixed;
+ sch_facet_impl->facet.ops->is_fixed;
facet->ops->set_fixed =
- facet_impl_l->facet.ops->set_fixed;
+ sch_facet_impl->facet.ops->set_fixed;
facet->ops->get_value =
- facet_impl_l->facet.ops->get_value;
+ sch_facet_impl->facet.ops->get_value;
facet->ops->set_value =
- facet_impl_l->facet.ops->set_value;
+ sch_facet_impl->facet.ops->set_value;
return axis2_xml_schema_annotated_resolve_methods(&(facet->base),
- env, facet_impl_l->annotated, methods);
+ env, sch_facet_impl->annotated, methods);
}
-
+*/
axis2_bool_t AXIS2_CALL
axis2_xml_schema_facet_is_fixed(void *facet,
axis2_env_t **env)
@@ -296,7 +326,7 @@
axis2_om_element_t *om_ele = NULL;
AXIS2_ENV_CHECK(env, NULL);
AXIS2_PARAM_CHECK((*env)->error, node, NULL);
-
+ /** TODO */
return NULL;
}
@@ -307,18 +337,21 @@
int facet_type)
{
axis2_xml_schema_facet_impl_t *facet_impl = NULL;
- AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
facet_impl = AXIS2_INTF_TO_IMPL(facet);
- facet_impl->facet_type = facet_type;
+ facet_impl->obj_type = facet_type;
return AXIS2_SUCCESS;
}
-int AXIS2_CALL
-axis2_xml_schema_facet_get_facet_type(void *facet,
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_schema_facet_type(void *facet,
axis2_env_t **env)
{
- axis2_xml_schema_facet_impl_t *facet_impl = NULL;
- AXIS2_ENV_CHECK(env, -1);
- facet_impl = AXIS2_INTF_TO_IMPL(facet);
- return facet_impl->facet_type;
-}
+ return AXIS2_INTF_TO_IMPL(facet)->obj_type;
+}
+
+axis2_hash_t* AXIS2_CALL
+axis2_xml_schema_facet_super_objs(void *facet,
+ axis2_env_t **env)
+{
+ return AXIS2_INTF_TO_IMPL(facet)->ht_super;
+}
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_form.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_form.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_form.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_form.c Mon May 15 02:31:10 2006
@@ -28,7 +28,7 @@
axis2_xml_schema_form_t form;
axis2_xml_schema_enum_t *schema_enum;
axis2_xml_schema_types_t obj_type;
- axis2_hash_t *super;
+ axis2_hash_t *ht_super;
axis2_hash_t *methods;
axis2_array_list_t *members;
};
@@ -83,7 +83,7 @@
form_impl->schema_enum = NULL;
form_impl->obj_type = AXIS2_XML_SCHEMA_FORM;
- form_impl->super = NULL;
+ form_impl->ht_super = NULL;
form_impl->methods = NULL;
form_impl->members = NULL;
form_impl->form.ops = AXIS2_MALLOC((*env)->allocator,
@@ -110,9 +110,9 @@
axis2_xml_schema_form_free(&(form_impl->form), env);
return NULL;
}
- AXIS2_ARRAY_LIST_ADD(form_impl->members, env, "qualified");
- AXIS2_ARRAY_LIST_ADD(form_impl->members, env, "unqualified");
- AXIS2_ARRAY_LIST_ADD(form_impl->members, env, "none");
+ AXIS2_ARRAY_LIST_ADD(form_impl->members, env, AXIS2_STRDUP("qualified", env));
+ AXIS2_ARRAY_LIST_ADD(form_impl->members, env, AXIS2_STRDUP("unqualified", env));
+ AXIS2_ARRAY_LIST_ADD(form_impl->members, env, AXIS2_STRDUP("none", env));
form_impl->methods = axis2_hash_make(env);
if(!form_impl->methods)
@@ -139,17 +139,17 @@
return NULL;
}
- form_impl->super = axis2_hash_make(env);
- if(!form_impl->super)
+ form_impl->ht_super = axis2_hash_make(env);
+ if(!form_impl->ht_super)
{
axis2_xml_schema_form_free(&(form_impl->form), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
- axis2_hash_set(form_impl->super, "AXIS2_XML_SCHEMA_FORM", AXIS2_HASH_KEY_STRING,
+ axis2_hash_set(form_impl->ht_super, "AXIS2_XML_SCHEMA_FORM", AXIS2_HASH_KEY_STRING,
&(form_impl->form));
- axis2_hash_set(form_impl->super, "AXIS2_XML_SCHEMA_ENUM", AXIS2_HASH_KEY_STRING,
+ axis2_hash_set(form_impl->ht_super, "AXIS2_XML_SCHEMA_ENUM", AXIS2_HASH_KEY_STRING,
form_impl->schema_enum);
status = axis2_xml_schema_enum_resolve_methods(
@@ -187,10 +187,10 @@
form_impl->members = NULL;
}
- if(form_impl->super)
+ if(form_impl->ht_super)
{
- axis2_hash_free(form_impl->super, env);
- form_impl->super = NULL;
+ axis2_hash_free(form_impl->ht_super, env);
+ form_impl->ht_super = NULL;
}
if(form_impl->methods)
@@ -227,7 +227,7 @@
AXIS2_ENV_CHECK(env, NULL);
form_impl = AXIS2_INTF_TO_IMPL(form);
- return form_impl->super;
+ return form_impl->ht_super;
}
axis2_xml_schema_types_t AXIS2_CALL
@@ -252,39 +252,6 @@
return form_impl->schema_enum;
}
-AXIS2_DECLARE(axis2_status_t)
-axis2_xml_schema_form_resolve_methods(
- axis2_xml_schema_form_t *form,
- axis2_env_t **env,
- axis2_xml_schema_form_t *form_impl,
- axis2_hash_t *methods)
-{
- axis2_xml_schema_form_impl_t *form_impl_l = NULL;
-
- AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK((*env)->error, form_impl, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK((*env)->error, methods, AXIS2_FAILURE);
-
- form_impl_l = (axis2_xml_schema_form_impl_t *) form_impl;
-
- form->ops = AXIS2_MALLOC((*env)->allocator,
- sizeof(axis2_xml_schema_form_ops_t));
- form->ops->free = axis2_hash_get(methods, "free",
- AXIS2_HASH_KEY_STRING);
- form->ops->super_objs = axis2_hash_get(methods, "super_objs",
- AXIS2_HASH_KEY_STRING);
- form->ops->type = axis2_hash_get(methods, "type",
- AXIS2_HASH_KEY_STRING);
-
- form->ops->get_values = axis2_hash_get(methods, "get_values",
- AXIS2_HASH_KEY_STRING);
- if(!form->ops->get_values)
- form->ops->get_values =
- form_impl_l->form.ops->get_values;
-
- return axis2_xml_schema_enum_resolve_methods(&(form->base),
- env, form_impl_l->schema_enum, methods);
-}
axis2_array_list_t* AXIS2_CALL
axis2_xml_schema_form_get_values(void *form,
@@ -296,8 +263,6 @@
super = AXIS2_XML_SCHEMA_FORM_SUPER_OBJS(form, env);
form_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super,
"AXIS2_XML_SCHEMA_FORM", AXIS2_HASH_KEY_STRING));
-
-
return form_impl->members;
}
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group.c Mon May 15 02:31:10 2006
@@ -28,7 +28,7 @@
axis2_xml_schema_group_t group;
axis2_xml_schema_annotated_t *annotated;
axis2_xml_schema_types_t obj_type;
- axis2_hash_t *super;
+ axis2_hash_t *ht_super;
axis2_hash_t *methods;
axis2_char_t *name;
axis2_xml_schema_group_base_t *particle;
@@ -89,7 +89,7 @@
group_impl->annotated = NULL;
group_impl->obj_type = AXIS2_XML_SCHEMA_GROUP;
- group_impl->super = NULL;
+ group_impl->ht_super = NULL;
group_impl->methods = NULL;
group_impl->name = NULL;
group_impl->particle = NULL;
@@ -151,22 +151,24 @@
axis2_xml_schema_group_free(&(group_impl->group), env);
return NULL;
}
- group_impl->super = axis2_hash_make(env);
- if(!group_impl->super)
+ group_impl->ht_super = axis2_hash_make(env);
+ if(!group_impl->ht_super)
{
axis2_xml_schema_group_free(&(group_impl->group), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
- axis2_hash_set(group_impl->super, "AXIS2_XML_SCHEMA_GROUP", AXIS2_HASH_KEY_STRING,
+ axis2_hash_set(group_impl->ht_super, "AXIS2_XML_SCHEMA_GROUP", AXIS2_HASH_KEY_STRING,
&(group_impl->group));
- axis2_hash_set(group_impl->super, "AXIS2_XML_SCHEMA_ANNOTATED", AXIS2_HASH_KEY_STRING,
+ axis2_hash_set(group_impl->ht_super, "AXIS2_XML_SCHEMA_ANNOTATED", AXIS2_HASH_KEY_STRING,
group_impl->annotated);
+ axis2_hash_set(group_impl->ht_super, "AXIS2_XML_SCHEMA_OBJ", AXIS2_HASH_KEY_STRING,
+ AXIS2_XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(group_impl->annotated, env));
+
status = axis2_xml_schema_annotated_resolve_methods(
&(group_impl->group.base), env, group_impl->annotated,
group_impl->methods);
-
return &(group_impl->group);
}
@@ -191,10 +193,10 @@
group_impl->particle = NULL;
}
- if(NULL != group_impl->super)
+ if(NULL != group_impl->ht_super)
{
- axis2_hash_free(group_impl->super, env);
- group_impl->super = NULL;
+ axis2_hash_free(group_impl->ht_super, env);
+ group_impl->ht_super = NULL;
}
if(NULL != group_impl->methods)
@@ -232,7 +234,7 @@
AXIS2_ENV_CHECK(env, NULL);
group_impl = AXIS2_INTF_TO_IMPL(group);
- return group_impl->super;
+ return group_impl->ht_super;
}
axis2_xml_schema_types_t AXIS2_CALL
@@ -257,6 +259,7 @@
return group_impl->annotated;
}
+/*
AXIS2_DECLARE(axis2_status_t)
axis2_xml_schema_group_resolve_methods(
axis2_xml_schema_group_t *group,
@@ -315,6 +318,8 @@
env, group_impl_l->annotated, methods);
}
+*/
+
axis2_char_t *AXIS2_CALL
axis2_xml_schema_group_get_name(void *group,
axis2_env_t **env)
@@ -332,10 +337,12 @@
axis2_hash_t *super = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- super = AXIS2_XML_SCHEMA_GROUP_SUPER_OBJS(group, env);
+/* super = AXIS2_XML_SCHEMA_GROUP_SUPER_OBJS(group, env);
group_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super,
"AXIS2_XML_SCHEMA_GROUP", AXIS2_HASH_KEY_STRING));
+*/
+ group_impl = AXIS2_INTF_TO_IMPL(group);
if(NULL != group_impl->name)
{
AXIS2_FREE((*env)->allocator, group_impl->name);
@@ -354,15 +361,17 @@
axis2_xml_schema_group_get_particle(void *group,
axis2_env_t **env)
{
+ /*
axis2_xml_schema_group_impl_t *group_impl = NULL;
+
axis2_hash_t *super = NULL;
AXIS2_ENV_CHECK(env, NULL);
super = AXIS2_XML_SCHEMA_GROUP_SUPER_OBJS(group, env);
group_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super,
"AXIS2_XML_SCHEMA_GROUP", AXIS2_HASH_KEY_STRING));
-
- return group_impl->particle;
+ */
+ return AXIS2_INTF_TO_IMPL(group)->particle;
}
axis2_status_t AXIS2_CALL
@@ -371,6 +380,7 @@
axis2_xml_schema_group_base_t *particle)
{
axis2_xml_schema_group_impl_t *group_impl = NULL;
+ /*
axis2_hash_t *super = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
@@ -379,7 +389,9 @@
super = AXIS2_XML_SCHEMA_GROUP_SUPER_OBJS(group, env);
group_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super,
"AXIS2_XML_SCHEMA_GROUP", AXIS2_HASH_KEY_STRING));
-
+ */
+ group_impl = AXIS2_INTF_TO_IMPL(group);
+
if(NULL != group_impl->particle)
{
/** TODO Free particle */
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_base.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_base.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_base.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_base.c Mon May 15 02:31:10 2006
@@ -30,7 +30,9 @@
axis2_xml_schema_particle_t *particle;
axis2_xml_schema_types_t obj_type;
- axis2_hash_t *super;
+
+ axis2_hash_t *ht_super;
+
axis2_hash_t *methods;
axis2_xml_schema_obj_collection_t *items;
@@ -63,12 +65,19 @@
axis2_xml_schema_group_base_get_items(void *group_base,
axis2_env_t **env);
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_group_base_to_string(void *group_base,
+ axis2_env_t **env,
+ axis2_char_t *prefix,
+ int tab);
+
/***********************************************************************/
AXIS2_DECLARE(axis2_xml_schema_group_base_t *)
axis2_xml_schema_group_base_create(axis2_env_t **env)
{
axis2_xml_schema_group_base_impl_t *group_base_impl = NULL;
+ axis2_xml_schema_annotated_t *annotated = NULL;
axis2_status_t status = AXIS2_FAILURE;
group_base_impl = AXIS2_MALLOC((*env)->allocator,
@@ -81,7 +90,7 @@
group_base_impl->particle = NULL;
group_base_impl->obj_type = AXIS2_XML_SCHEMA_GROUP_BASE;
- group_base_impl->super = NULL;
+ group_base_impl->ht_super = NULL;
group_base_impl->methods = NULL;
group_base_impl->items = NULL;
group_base_impl->group_base.ops = NULL;
@@ -98,15 +107,22 @@
group_base_impl->group_base.ops->free =
axis2_xml_schema_group_base_free;
+
group_base_impl->group_base.ops->super_objs =
axis2_xml_schema_group_base_super_objs;
+
group_base_impl->group_base.ops->type =
axis2_xml_schema_group_base_type;
+
group_base_impl->group_base.ops->get_base_impl =
axis2_xml_schema_group_base_get_base_impl;
+
group_base_impl->group_base.ops->get_items =
axis2_xml_schema_group_base_get_items;
-
+
+ group_base_impl->group_base.ops->to_string =
+ axis2_xml_schema_group_base_to_string;
+
group_base_impl->methods = axis2_hash_make(env);
if(!group_base_impl->methods)
{
@@ -122,6 +138,8 @@
axis2_xml_schema_group_base_super_objs);
axis2_hash_set(group_base_impl->methods, "get_items", AXIS2_HASH_KEY_STRING,
axis2_xml_schema_group_base_get_items);
+ axis2_hash_set(group_base_impl->methods, "to_string", AXIS2_HASH_KEY_STRING,
+ axis2_xml_schema_group_base_to_string);
group_base_impl->particle = axis2_xml_schema_particle_create(env);
if(!group_base_impl->particle)
@@ -131,17 +149,29 @@
return NULL;
}
- group_base_impl->super = axis2_hash_make(env);
- if(!group_base_impl->super)
+ group_base_impl->ht_super = axis2_hash_make(env);
+ if(!group_base_impl->ht_super)
{
axis2_xml_schema_group_base_free(&(group_base_impl->group_base), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
- axis2_hash_set(group_base_impl->super, "AXIS2_XML_SCHEMA_GROUP_BASE",
+ axis2_hash_set(group_base_impl->ht_super, "AXIS2_XML_SCHEMA_GROUP_BASE",
AXIS2_HASH_KEY_STRING, &(group_base_impl->group_base) );
- axis2_hash_set(group_base_impl->super, "AXIS2_XML_SCHEMA_PARTICLE",
+
+ axis2_hash_set(group_base_impl->ht_super, "AXIS2_XML_SCHEMA_PARTICLE",
AXIS2_HASH_KEY_STRING, group_base_impl->particle );
+
+ annotated = AXIS2_XML_SCHEMA_PARTICLE_GET_BASE_IMPL(group_base_impl->particle, env);
+ if(NULL != annotated)
+ {
+ axis2_hash_set(group_base_impl->ht_super, "AXIS2_XML_SCHEMA_ANNOTATED",
+ AXIS2_HASH_KEY_STRING, annotated);
+ axis2_hash_set(group_base_impl->ht_super, "AXIS2_XML_SCHEMA_OBJ",
+ AXIS2_HASH_KEY_STRING, AXIS2_XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(annotated, env));
+ }
+
+ group_base_impl->items = axis2_xml_schema_obj_collection_create(env);
status = axis2_xml_schema_particle_resolve_methods(
&(group_base_impl->group_base.base), env, group_base_impl->particle,
@@ -149,6 +179,16 @@
return &(group_base_impl->group_base);
}
+
+AXIS2_DECLARE(axis2_xml_schema_group_base_t *)
+axis2_xml_schema_all_create(axis2_env_t **env)
+{
+ axis2_xml_schema_group_base_t *grp_base = NULL;
+ grp_base = axis2_xml_schema_group_base_create(env);
+ AXIS2_INTF_TO_IMPL(grp_base)->obj_type = AXIS2_XML_SCHEMA_ALL;
+ return grp_base;
+}
+
axis2_status_t AXIS2_CALL
axis2_xml_schema_group_base_free(void *group_base,
axis2_env_t **env)
@@ -164,10 +204,10 @@
group_base_impl->items = NULL;
}
- if(NULL != group_base_impl->super)
+ if(NULL != group_base_impl->ht_super)
{
- axis2_hash_free(group_base_impl->super, env);
- group_base_impl->super = NULL;
+ axis2_hash_free(group_base_impl->ht_super, env);
+ group_base_impl->ht_super = NULL;
}
if(NULL != group_base_impl->methods)
@@ -206,11 +246,10 @@
axis2_env_t **env)
{
axis2_xml_schema_group_base_impl_t *group_base_impl = NULL;
-
AXIS2_ENV_CHECK(env, NULL);
group_base_impl = AXIS2_INTF_TO_IMPL(group_base);
- return group_base_impl->super;
+ return group_base_impl->ht_super;
}
axis2_xml_schema_types_t AXIS2_CALL
@@ -219,10 +258,8 @@
axis2_env_t **env)
{
axis2_xml_schema_group_base_impl_t *group_base_impl = NULL;
-
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
group_base_impl = AXIS2_INTF_TO_IMPL(group_base);
-
return group_base_impl->obj_type;
}
@@ -232,13 +269,12 @@
axis2_env_t **env)
{
axis2_xml_schema_group_base_impl_t *group_base_impl = NULL;
-
AXIS2_ENV_CHECK(env, NULL);
group_base_impl = AXIS2_INTF_TO_IMPL(group_base);
-
return group_base_impl->particle;
}
+/*
AXIS2_DECLARE(axis2_status_t)
axis2_xml_schema_group_base_resolve_methods(
axis2_xml_schema_group_base_t *group_base,
@@ -278,11 +314,13 @@
return axis2_xml_schema_particle_resolve_methods(&(group_base->base),
env, group_base_impl_l->particle, methods);
}
+*/
axis2_xml_schema_obj_collection_t *AXIS2_CALL
axis2_xml_schema_group_base_get_items(void *group_base,
axis2_env_t **env)
{
+ /*
axis2_xml_schema_group_base_impl_t *group_base_impl = NULL;
axis2_hash_t *super = NULL;
@@ -290,7 +328,16 @@
super = AXIS2_XML_SCHEMA_GROUP_BASE_SUPER_OBJS(group_base, env);
group_base_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super,
"AXIS2_XML_SCHEMA_GROUP_BASE", AXIS2_HASH_KEY_STRING));
-
+ */
return AXIS2_INTF_TO_IMPL(group_base)->items;
}
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_group_base_to_string(void *group_base,
+ axis2_env_t **env,
+ axis2_char_t *prefix,
+ int tab)
+{
+ /** TODO */
+ return AXIS2_SUCCESS;
+}
\ No newline at end of file
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_ref.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_ref.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_ref.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_group_ref.c Mon May 15 02:31:10 2006
@@ -31,7 +31,9 @@
axis2_xml_schema_particle_t *base;
axis2_xml_schema_types_t obj_type;
- axis2_hash_t *super;
+
+ axis2_hash_t *ht_super;
+
axis2_hash_t *methods;
axis2_qname_t *ref_qname;
@@ -77,11 +79,13 @@
axis2_xml_schema_group_ref_set_particle(void *group_ref,
axis2_env_t **env,
axis2_xml_schema_group_base_t *particle);
+/************************** end function pointers **************************/
AXIS2_DECLARE(axis2_xml_schema_group_ref_t *)
axis2_xml_schema_group_ref_create(axis2_env_t **env)
{
axis2_xml_schema_group_ref_impl_t *group_ref_impl = NULL;
+ axis2_xml_schema_annotated_t *annotated = NULL;
axis2_status_t status = AXIS2_FAILURE;
group_ref_impl = AXIS2_MALLOC((*env)->allocator,
@@ -95,7 +99,7 @@
group_ref_impl->group_ref.base.ops = NULL;
group_ref_impl->base = NULL;
group_ref_impl->obj_type = AXIS2_XML_SCHEMA_GROUP_REF;
- group_ref_impl->super = NULL;
+ group_ref_impl->ht_super = NULL;
group_ref_impl->methods = NULL;
group_ref_impl->ref_qname = NULL;
group_ref_impl->particle = NULL;
@@ -117,12 +121,16 @@
axis2_xml_schema_group_ref_super_objs;
group_ref_impl->group_ref.ops->type =
axis2_xml_schema_group_ref_type;
+
group_ref_impl->group_ref.ops->get_base_impl =
axis2_xml_schema_group_ref_get_base_impl;
+
group_ref_impl->group_ref.ops->get_ref_qname =
axis2_xml_schema_group_ref_get_ref_qname;
+
group_ref_impl->group_ref.ops->set_ref_qname =
axis2_xml_schema_group_ref_set_ref_qname;
+
group_ref_impl->group_ref.ops->get_particle =
axis2_xml_schema_group_ref_get_particle;
@@ -142,8 +150,8 @@
axis2_hash_set(group_ref_impl->methods, "get_ref_qname",
AXIS2_HASH_KEY_STRING, axis2_xml_schema_group_ref_get_ref_qname);
axis2_hash_set(group_ref_impl->methods, "set_ref_qname",
- AXIS2_HASH_KEY_STRING, axis2_xml_schema_group_ref_get_ref_qname);
- axis2_hash_set(group_ref_impl->methods, "set_particle",
+ AXIS2_HASH_KEY_STRING, axis2_xml_schema_group_ref_set_ref_qname);
+ axis2_hash_set(group_ref_impl->methods, "get_particle",
AXIS2_HASH_KEY_STRING, axis2_xml_schema_group_ref_get_particle);
group_ref_impl->base = axis2_xml_schema_particle_create(env);
@@ -152,17 +160,27 @@
axis2_xml_schema_group_ref_free(&(group_ref_impl->group_ref), env);
return NULL;
}
- group_ref_impl->super = axis2_hash_make(env);
- if(!group_ref_impl->super)
+ group_ref_impl->ht_super = axis2_hash_make(env);
+ if(!group_ref_impl->ht_super)
{
axis2_xml_schema_group_ref_free(&(group_ref_impl->group_ref), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
- axis2_hash_set(group_ref_impl->super, "AXIS2_XML_SCHEMA_GROUP_REF",
+
+ axis2_hash_set(group_ref_impl->ht_super, "AXIS2_XML_SCHEMA_GROUP_REF",
AXIS2_HASH_KEY_STRING, &(group_ref_impl->group_ref) );
- axis2_hash_set(group_ref_impl->super, "AXIS2_XML_SCHEMA_PARTICLE",
+ axis2_hash_set(group_ref_impl->ht_super, "AXIS2_XML_SCHEMA_PARTICLE",
AXIS2_HASH_KEY_STRING, group_ref_impl->particle );
+
+ annotated = AXIS2_XML_SCHEMA_PARTICLE_GET_BASE_IMPL(group_ref_impl->particle, env);
+ if(NULL != annotated)
+ {
+ axis2_hash_set(group_ref_impl->ht_super, "AXIS2_XML_SCHEMA_ANNOTATED",
+ AXIS2_HASH_KEY_STRING, annotated);
+ axis2_hash_set(group_ref_impl->ht_super, "AXIS2_XML_SCHEMA_OBJ",
+ AXIS2_HASH_KEY_STRING, AXIS2_XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(annotated, env));
+ }
status = axis2_xml_schema_particle_resolve_methods(
&(group_ref_impl->group_ref.base), env, group_ref_impl->base,
@@ -192,10 +210,10 @@
group_ref_impl->particle = NULL;
}
- if(NULL != group_ref_impl->super)
+ if(NULL != group_ref_impl->ht_super)
{
- axis2_hash_free(group_ref_impl->super, env);
- group_ref_impl->super = NULL;
+ axis2_hash_free(group_ref_impl->ht_super, env);
+ group_ref_impl->ht_super = NULL;
}
if(NULL != group_ref_impl->methods)
@@ -231,11 +249,9 @@
axis2_env_t **env)
{
axis2_xml_schema_group_ref_impl_t *group_ref_impl = NULL;
-
AXIS2_ENV_CHECK(env, NULL);
group_ref_impl = AXIS2_INTF_TO_IMPL(group_ref);
-
- return group_ref_impl->super;
+ return group_ref_impl->ht_super;
}
axis2_xml_schema_types_t AXIS2_CALL
@@ -244,10 +260,8 @@
axis2_env_t **env)
{
axis2_xml_schema_group_ref_impl_t *group_ref_impl = NULL;
-
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
group_ref_impl = AXIS2_INTF_TO_IMPL(group_ref);
-
return group_ref_impl->obj_type;
}
@@ -256,13 +270,12 @@
axis2_env_t **env)
{
axis2_xml_schema_group_ref_impl_t *group_ref_impl = NULL;
-
AXIS2_ENV_CHECK(env, NULL);
group_ref_impl = AXIS2_INTF_TO_IMPL(group_ref);
-
return group_ref_impl->base;
}
+/*
AXIS2_DECLARE(axis2_status_t)
axis2_xml_schema_group_ref_resolve_methods(
axis2_xml_schema_group_ref_t *group_ref,
@@ -308,20 +321,22 @@
return axis2_xml_schema_particle_resolve_methods(&(group_ref->base),
env, group_ref_impl_l->base, methods);
}
+*/
axis2_qname_t *AXIS2_CALL
axis2_xml_schema_group_ref_get_ref_qname(void *group_ref,
axis2_env_t **env)
{
- axis2_xml_schema_group_ref_impl_t *group_ref_impl = NULL;
+/* axis2_xml_schema_group_ref_impl_t *group_ref_impl = NULL;
axis2_hash_t *super = NULL;
AXIS2_ENV_CHECK(env, NULL);
super = AXIS2_XML_SCHEMA_GROUP_REF_SUPER_OBJS(group_ref, env);
group_ref_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super,
"AXIS2_XML_SCHEMA_GROUP_REF", AXIS2_HASH_KEY_STRING));
+*/
- return group_ref_impl->ref_qname;
+ return AXIS2_INTF_TO_IMPL(group_ref)->ref_qname;
}
axis2_status_t AXIS2_CALL
@@ -330,6 +345,7 @@
axis2_qname_t *ref_qname)
{
axis2_xml_schema_group_ref_impl_t *group_ref_impl = NULL;
+ /*
axis2_hash_t *super = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
@@ -337,7 +353,8 @@
group_ref_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super,
"AXIS2_XML_SCHEMA_GROUP_REF", AXIS2_HASH_KEY_STRING));
-
+ */
+ group_ref_impl = AXIS2_INTF_TO_IMPL(group_ref);
if(group_ref_impl->ref_qname)
{
AXIS2_QNAME_FREE(group_ref_impl->ref_qname, env);
@@ -356,6 +373,7 @@
axis2_xml_schema_group_ref_get_particle(void *group_ref,
axis2_env_t **env)
{
+/*
axis2_xml_schema_group_ref_impl_t *group_ref_impl = NULL;
axis2_hash_t *super = NULL;
@@ -363,7 +381,7 @@
super = AXIS2_XML_SCHEMA_GROUP_REF_SUPER_OBJS(group_ref, env);
group_ref_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super,
"AXIS2_XML_SCHEMA_GROUP_REF", AXIS2_HASH_KEY_STRING));
-
- return group_ref_impl->particle;
+*/
+ return AXIS2_INTF_TO_IMPL(group_ref)->particle;
}
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_identity_constraint.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_identity_constraint.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_identity_constraint.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_identity_constraint.c Mon May 15 02:31:10 2006
@@ -27,255 +27,363 @@
*/
struct axis2_xml_schema_identity_constraint_impl
{
- axis2_xml_schema_identity_constraint_t identity_constraint;
+ axis2_xml_schema_identity_constraint_t id_constr;
axis2_xml_schema_annotated_t *annotated;
- axis2_hash_t *methods;
axis2_xml_schema_obj_collection_t *fields;
axis2_char_t *name;
axis2_xml_schema_xpath_t *selector;
+
+ /** keyref field */
+ axis2_qname_t *refer;
+
+ axis2_hash_t *methods;
+ axis2_hash_t *ht_super;
+ axis2_xml_schema_types_t obj_type;
};
-#define AXIS2_INTF_TO_IMPL(identity_constraint) ((axis2_xml_schema_identity_constraint_impl_t *) identity_constraint)
+#define AXIS2_INTF_TO_IMPL(id_constr) \
+ ((axis2_xml_schema_identity_constraint_impl_t *) id_constr)
axis2_status_t AXIS2_CALL
-axis2_xml_schema_identity_constraint_free(void *identity_constraint,
+axis2_xml_schema_identity_constraint_free(void *id_constr,
axis2_env_t **env);
axis2_xml_schema_annotated_t *AXIS2_CALL
-axis2_xml_schema_identity_constraint_get_base_impl(void *identity_constraint,
+axis2_xml_schema_identity_constraint_get_base_impl(void *id_constr,
+ axis2_env_t **env);
+
+
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_schema_identity_constraint_type(void *id_constr,
axis2_env_t **env);
+
+axis2_hash_t* AXIS2_CALL
+axis2_xml_schema_identity_constraint_super_objs(void *id_constr,
+ axis2_env_t **env);
+axis2_qname_t* AXIS2_CALL
+axis2_xml_schema_identity_constraint_get_refer(void *id_constr,
+ axis2_env_t **env);
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_identity_constraint_set_refer(void *id_constr,
+ axis2_env_t **env,
+ axis2_qname_t *refer);
+
axis2_xml_schema_obj_collection_t *AXIS2_CALL
-axis2_xml_schema_identity_constraint_get_fields(void *identity_constraint,
+axis2_xml_schema_identity_constraint_get_fields(void *id_constr,
axis2_env_t **env);
axis2_char_t *AXIS2_CALL
-axis2_xml_schema_identity_constraint_get_name(void *identity_constraint,
+axis2_xml_schema_identity_constraint_get_name(void *id_constr,
axis2_env_t **env);
axis2_status_t AXIS2_CALL
-axis2_xml_schema_identity_constraint_set_name(void *identity_constraint,
+axis2_xml_schema_identity_constraint_set_name(void *id_constr,
axis2_env_t **env,
axis2_char_t *name);
axis2_xml_schema_xpath_t *AXIS2_CALL
-axis2_xml_schema_identity_constraint_get_selector(void *identity_constraint,
+axis2_xml_schema_identity_constraint_get_selector(void *id_constr,
axis2_env_t **env);
axis2_status_t AXIS2_CALL
-axis2_xml_schema_identity_constraint_set_selector(void *identity_constraint,
+axis2_xml_schema_identity_constraint_set_selector(void *id_constr,
axis2_env_t **env,
axis2_xml_schema_xpath_t *selector);
AXIS2_DECLARE(axis2_xml_schema_identity_constraint_t *)
axis2_xml_schema_identity_constraint_create(axis2_env_t **env)
{
- axis2_xml_schema_identity_constraint_impl_t *identity_constraint_impl = NULL;
+ axis2_xml_schema_identity_constraint_impl_t *id_cns_impl = NULL;
axis2_status_t status = AXIS2_FAILURE;
- identity_constraint_impl = AXIS2_MALLOC((*env)->allocator,
+ id_cns_impl = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_identity_constraint_impl_t));
- if(!identity_constraint_impl)
+ if(!id_cns_impl)
{
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
- identity_constraint_impl->annotated = NULL;
- identity_constraint_impl->methods = NULL;
- identity_constraint_impl->fields = NULL;
- identity_constraint_impl->name = NULL;
- identity_constraint_impl->selector = NULL;
- identity_constraint_impl->identity_constraint.ops = AXIS2_MALLOC((*env)->allocator,
+ id_cns_impl->annotated = NULL;
+ id_cns_impl->methods = NULL;
+ id_cns_impl->fields = NULL;
+ id_cns_impl->name = NULL;
+ id_cns_impl->selector = NULL;
+ id_cns_impl->id_constr.base.ops = NULL;
+ id_cns_impl->id_constr.ops = NULL;
+ id_cns_impl->refer = NULL;
+ id_cns_impl->ht_super = NULL;
+ id_cns_impl->obj_type = AXIS2_XML_SCHEMA_IDENTITY_CONSTRAINT;
+
+ id_cns_impl->id_constr.ops = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_identity_constraint_ops_t));
- if(!(identity_constraint_impl->identity_constraint.ops))
+ if(!(id_cns_impl->id_constr.ops))
{
axis2_xml_schema_identity_constraint_free(
- &(identity_constraint_impl->identity_constraint), env);
+ &(id_cns_impl->id_constr), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
- identity_constraint_impl->identity_constraint.ops->free =
+ id_cns_impl->id_constr.ops->free =
axis2_xml_schema_identity_constraint_free;
- identity_constraint_impl->identity_constraint.ops->get_base_impl =
+ id_cns_impl->id_constr.ops->get_base_impl =
axis2_xml_schema_identity_constraint_get_base_impl;
- identity_constraint_impl->identity_constraint.ops->get_fields =
+ id_cns_impl->id_constr.ops->get_refer =
+ axis2_xml_schema_identity_constraint_get_refer;
+ id_cns_impl->id_constr.ops->set_refer =
+ axis2_xml_schema_identity_constraint_set_refer;
+ id_cns_impl->id_constr.ops->type =
+ axis2_xml_schema_identity_constraint_type;
+ id_cns_impl->id_constr.ops->super_objs =
+ axis2_xml_schema_identity_constraint_super_objs;
+ id_cns_impl->id_constr.ops->get_fields =
axis2_xml_schema_identity_constraint_get_fields;
- identity_constraint_impl->identity_constraint.ops->get_name =
+ id_cns_impl->id_constr.ops->get_name =
axis2_xml_schema_identity_constraint_get_name;
- identity_constraint_impl->identity_constraint.ops->set_name =
+ id_cns_impl->id_constr.ops->set_name =
axis2_xml_schema_identity_constraint_set_name;
- identity_constraint_impl->identity_constraint.ops->get_selector =
+ id_cns_impl->id_constr.ops->get_selector =
axis2_xml_schema_identity_constraint_get_selector;
- identity_constraint_impl->identity_constraint.ops->set_selector =
+ id_cns_impl->id_constr.ops->set_selector =
axis2_xml_schema_identity_constraint_set_selector;
- identity_constraint_impl->methods = axis2_hash_make(env);
- if(!identity_constraint_impl->methods)
+ id_cns_impl->methods = axis2_hash_make(env);
+ id_cns_impl->ht_super = axis2_hash_make(env);
+
+ if(!id_cns_impl->methods || !id_cns_impl->ht_super)
{
+ axis2_xml_schema_identity_constraint_free(&(id_cns_impl->id_constr), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
- axis2_hash_set(identity_constraint_impl->methods, "free", AXIS2_HASH_KEY_STRING,
+ axis2_hash_set(id_cns_impl->methods, "free", AXIS2_HASH_KEY_STRING,
axis2_xml_schema_identity_constraint_free);
- axis2_hash_set(identity_constraint_impl->methods, "get_fields",
+ axis2_hash_set(id_cns_impl->methods, "get_fields",
AXIS2_HASH_KEY_STRING, axis2_xml_schema_identity_constraint_get_fields);
- axis2_hash_set(identity_constraint_impl->methods, "get_name",
+ axis2_hash_set(id_cns_impl->methods, "type",
+ AXIS2_HASH_KEY_STRING, axis2_xml_schema_identity_constraint_type);
+ axis2_hash_set(id_cns_impl->methods, "super_objs",
+ AXIS2_HASH_KEY_STRING, axis2_xml_schema_identity_constraint_super_objs);
+ axis2_hash_set(id_cns_impl->methods, "get_refer",
+ AXIS2_HASH_KEY_STRING, axis2_xml_schema_identity_constraint_get_refer);
+ axis2_hash_set(id_cns_impl->methods, "set_refer",
+ AXIS2_HASH_KEY_STRING, axis2_xml_schema_identity_constraint_set_refer);
+ axis2_hash_set(id_cns_impl->methods, "get_name",
AXIS2_HASH_KEY_STRING, axis2_xml_schema_identity_constraint_get_name);
- axis2_hash_set(identity_constraint_impl->methods, "set_name",
+ axis2_hash_set(id_cns_impl->methods, "set_name",
AXIS2_HASH_KEY_STRING, axis2_xml_schema_identity_constraint_set_name);
- axis2_hash_set(identity_constraint_impl->methods, "get_selector",
+ axis2_hash_set(id_cns_impl->methods, "get_selector",
AXIS2_HASH_KEY_STRING, axis2_xml_schema_identity_constraint_get_selector);
- axis2_hash_set(identity_constraint_impl->methods, "set_selector",
+ axis2_hash_set(id_cns_impl->methods, "set_selector",
AXIS2_HASH_KEY_STRING, axis2_xml_schema_identity_constraint_set_selector);
- identity_constraint_impl->annotated = axis2_xml_schema_annotated_create(env);
- if(!identity_constraint_impl->annotated)
+ id_cns_impl->annotated = axis2_xml_schema_annotated_create(env);
+ if(!id_cns_impl->annotated)
+ {
+ axis2_xml_schema_identity_constraint_free(&(id_cns_impl->id_constr), env);
return NULL;
+ }
+
+ axis2_hash_set(id_cns_impl->ht_super, "AXIS2_XML_SCHEMA_IDENTITY_CONSTRAINT",
+ AXIS2_HASH_KEY_STRING, &(id_cns_impl->id_constr));
+ axis2_hash_set(id_cns_impl->ht_super, "AXIS2_XML_SCHEMA_ANNOTATED",
+ AXIS2_HASH_KEY_STRING, id_cns_impl->annotated);
+ axis2_hash_set(id_cns_impl->ht_super, "AXIS2_XML_SCHEMA_OBJ",
+ AXIS2_HASH_KEY_STRING,
+ AXIS2_XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(id_cns_impl->annotated, env));
status = axis2_xml_schema_annotated_resolve_methods(
- &(identity_constraint_impl->identity_constraint.base),
- env, identity_constraint_impl->annotated,
- identity_constraint_impl->methods);
- return &(identity_constraint_impl->identity_constraint);
+ &(id_cns_impl->id_constr.base),
+ env, id_cns_impl->annotated,
+ id_cns_impl->methods);
+ return &(id_cns_impl->id_constr);
+}
+
+AXIS2_DECLARE(axis2_xml_schema_identity_constraint_t *)
+axis2_xml_schema_unique_create(axis2_env_t **env)
+{
+ axis2_xml_schema_identity_constraint_t *id_cns = NULL;
+ id_cns = axis2_xml_schema_identity_constraint_create(env);
+ AXIS2_INTF_TO_IMPL(id_cns)->obj_type = AXIS2_XML_SCHEMA_UNIQUE;
+ return id_cns;
+}
+
+AXIS2_DECLARE(axis2_xml_schema_identity_constraint_t *)
+axis2_xml_schema_keyref_create(axis2_env_t **env)
+{
+ axis2_xml_schema_identity_constraint_t *id_cns = NULL;
+ id_cns = axis2_xml_schema_identity_constraint_create(env);
+ AXIS2_INTF_TO_IMPL(id_cns)->obj_type = AXIS2_XML_SCHEMA_KEYREF;
+ return id_cns;
+}
+
+AXIS2_DECLARE(axis2_xml_schema_identity_constraint_t *)
+axis2_xml_schema_key_create(axis2_env_t **env)
+{
+ axis2_xml_schema_identity_constraint_t *id_cns = NULL;
+ id_cns = axis2_xml_schema_identity_constraint_create(env);
+ AXIS2_INTF_TO_IMPL(id_cns)->obj_type = AXIS2_XML_SCHEMA_KEY;
+ return id_cns;
}
+AXIS2_DECLARE(axis2_xml_schema_identity_constraint_t *)
+axis2_xml_schema_keyref_create(axis2_env_t **env);
+
+AXIS2_DECLARE(axis2_xml_schema_identity_constraint_t *)
+axis2_xml_schema_key_create(axis2_env_t **env);
+
+
+
+
+
axis2_status_t AXIS2_CALL
-axis2_xml_schema_identity_constraint_free(void *identity_constraint,
+axis2_xml_schema_identity_constraint_free(void *id_constr,
axis2_env_t **env)
{
- axis2_xml_schema_identity_constraint_impl_t *identity_constraint_impl = NULL;
+ axis2_xml_schema_identity_constraint_impl_t *id_cns_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- identity_constraint_impl = AXIS2_INTF_TO_IMPL(identity_constraint);
+ id_cns_impl = AXIS2_INTF_TO_IMPL(id_constr);
- if(NULL != identity_constraint_impl->name)
+ if(NULL != id_cns_impl->name)
{
- AXIS2_FREE((*env)->allocator, identity_constraint_impl->name);
- identity_constraint_impl->name = NULL;
+ AXIS2_FREE((*env)->allocator, id_cns_impl->name);
+ id_cns_impl->name = NULL;
}
- if(NULL != identity_constraint_impl->selector)
+ if(NULL != id_cns_impl->selector)
{
- AXIS2_XML_SCHEMA_XPATH_FREE(identity_constraint_impl->selector, env);
- identity_constraint_impl->selector = NULL;
+ AXIS2_XML_SCHEMA_XPATH_FREE(id_cns_impl->selector, env);
+ id_cns_impl->selector = NULL;
}
- if(NULL != identity_constraint_impl->methods)
+ if(NULL != id_cns_impl->methods)
{
- axis2_hash_free(identity_constraint_impl->methods, env);
- identity_constraint_impl->methods = NULL;
+ axis2_hash_free(id_cns_impl->methods, env);
+ id_cns_impl->methods = NULL;
}
-
- if(NULL != identity_constraint_impl->annotated)
+ if(NULL != id_cns_impl->ht_super)
{
- AXIS2_XML_SCHEMA_ANNOTATED_FREE(identity_constraint_impl->annotated, env);
- identity_constraint_impl->annotated = NULL;
+ axis2_hash_free(id_cns_impl->ht_super, env);
+ id_cns_impl->ht_super = NULL;
+ }
+ if(NULL != id_cns_impl->refer)
+ {
+ AXIS2_QNAME_FREE(id_cns_impl->refer, env);
+ id_cns_impl->refer = NULL;
+ }
+ if(NULL != id_cns_impl->annotated)
+ {
+ AXIS2_XML_SCHEMA_ANNOTATED_FREE(id_cns_impl->annotated, env);
+ id_cns_impl->annotated = NULL;
}
- if(NULL != identity_constraint_impl->identity_constraint.ops)
+ if(NULL != id_cns_impl->id_constr.ops)
{
- AXIS2_FREE((*env)->allocator, identity_constraint_impl->identity_constraint.ops);
- identity_constraint_impl->identity_constraint.ops = NULL;
+ AXIS2_FREE((*env)->allocator, id_cns_impl->id_constr.ops);
+ id_cns_impl->id_constr.ops = NULL;
}
- if(NULL != identity_constraint_impl->identity_constraint.base.ops)
+ if(NULL != id_cns_impl->id_constr.base.ops)
{
- AXIS2_FREE((*env)->allocator, identity_constraint_impl->identity_constraint.base.ops);
- identity_constraint_impl->identity_constraint.base.ops = NULL;
+ AXIS2_FREE((*env)->allocator, id_cns_impl->id_constr.base.ops);
+ id_cns_impl->id_constr.base.ops = NULL;
}
- if(NULL != identity_constraint_impl)
+ if(NULL != id_cns_impl)
{
- AXIS2_FREE((*env)->allocator, identity_constraint_impl);
- identity_constraint_impl = NULL;
+ AXIS2_FREE((*env)->allocator, id_cns_impl);
+ id_cns_impl = NULL;
}
return AXIS2_SUCCESS;
}
axis2_xml_schema_annotated_t *AXIS2_CALL
-axis2_xml_schema_identity_constraint_get_base_impl(void *identity_constraint,
+axis2_xml_schema_identity_constraint_get_base_impl(void *id_constr,
axis2_env_t **env)
{
- axis2_xml_schema_identity_constraint_impl_t *identity_constraint_impl = NULL;
+ axis2_xml_schema_identity_constraint_impl_t *id_cns_impl = NULL;
AXIS2_ENV_CHECK(env, NULL);
- identity_constraint_impl = AXIS2_INTF_TO_IMPL(identity_constraint);
+ id_cns_impl = AXIS2_INTF_TO_IMPL(id_constr);
- return identity_constraint_impl->annotated;
+ return id_cns_impl->annotated;
}
+/*
AXIS2_DECLARE(axis2_status_t)
axis2_xml_schema_identity_constraint_resolve_methods(
- axis2_xml_schema_identity_constraint_t *identity_constraint,
+ axis2_xml_schema_identity_constraint_t *id_constr,
axis2_env_t **env,
- axis2_xml_schema_identity_constraint_t *identity_constraint_impl,
+ axis2_xml_schema_identity_constraint_t *id_cns_impl,
axis2_hash_t *methods)
{
axis2_xml_schema_identity_constraint_impl_t *identity_constraint_impl_l = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- AXIS2_PARAM_CHECK((*env)->error, identity_constraint_impl, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, id_cns_impl, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, methods, AXIS2_FAILURE);
- identity_constraint_impl_l = (axis2_xml_schema_identity_constraint_impl_t *) identity_constraint_impl;
+ identity_constraint_impl_l = (axis2_xml_schema_identity_constraint_impl_t *) id_cns_impl;
- identity_constraint->ops = AXIS2_MALLOC((*env)->allocator,
+ id_constr->ops = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_identity_constraint_ops_t));
- if(NULL == identity_constraint->ops)
+ if(NULL == id_constr->ops)
{
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return AXIS2_FAILURE;
}
- identity_constraint->ops->free = axis2_hash_get(methods, "free",
+ id_constr->ops->free = axis2_hash_get(methods, "free",
AXIS2_HASH_KEY_STRING);
- identity_constraint->ops->get_base_impl =
- identity_constraint_impl_l->identity_constraint.ops->get_base_impl;
- identity_constraint->ops->get_fields =
- identity_constraint_impl_l->identity_constraint.ops->get_fields;
- identity_constraint->ops->get_name =
- identity_constraint_impl_l->identity_constraint.ops->get_name;
- identity_constraint->ops->set_name =
- identity_constraint_impl_l->identity_constraint.ops->set_name;
- identity_constraint->ops->get_selector =
- identity_constraint_impl_l->identity_constraint.ops->get_selector;
- identity_constraint->ops->set_selector =
- identity_constraint_impl_l->identity_constraint.ops->set_selector;
+ id_constr->ops->get_base_impl =
+ identity_constraint_impl_l->id_constr.ops->get_base_impl;
+ id_constr->ops->get_fields =
+ identity_constraint_impl_l->id_constr.ops->get_fields;
+ id_constr->ops->get_name =
+ identity_constraint_impl_l->id_constr.ops->get_name;
+ id_constr->ops->set_name =
+ identity_constraint_impl_l->id_constr.ops->set_name;
+ id_constr->ops->get_selector =
+ identity_constraint_impl_l->id_constr.ops->get_selector;
+ id_constr->ops->set_selector =
+ identity_constraint_impl_l->id_constr.ops->set_selector;
- return axis2_xml_schema_annotated_resolve_methods(&(identity_constraint->base),
+ return axis2_xml_schema_annotated_resolve_methods(&(id_constr->base),
env, identity_constraint_impl_l->annotated, methods);
}
-
+*/
axis2_xml_schema_obj_collection_t *AXIS2_CALL
-axis2_xml_schema_identity_constraint_get_fields(void *identity_constraint,
+axis2_xml_schema_identity_constraint_get_fields(void *id_constr,
axis2_env_t **env)
{
AXIS2_ENV_CHECK(env, NULL);
- return AXIS2_INTF_TO_IMPL(identity_constraint)->fields;
+ return AXIS2_INTF_TO_IMPL(id_constr)->fields;
}
axis2_char_t *AXIS2_CALL
-axis2_xml_schema_identity_constraint_get_name(void *identity_constraint,
+axis2_xml_schema_identity_constraint_get_name(void *id_constr,
axis2_env_t **env)
{
AXIS2_ENV_CHECK(env, NULL);
- return AXIS2_INTF_TO_IMPL(identity_constraint)->name;
+ return AXIS2_INTF_TO_IMPL(id_constr)->name;
}
axis2_status_t AXIS2_CALL
-axis2_xml_schema_identity_constraint_set_name(void *identity_constraint,
+axis2_xml_schema_identity_constraint_set_name(void *id_constr,
axis2_env_t **env,
axis2_char_t *name)
{
- axis2_xml_schema_identity_constraint_impl_t *identity_constraint_impl = NULL;
+ axis2_xml_schema_identity_constraint_impl_t *id_cns_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
- identity_constraint_impl = AXIS2_INTF_TO_IMPL(identity_constraint);
+ id_cns_impl = AXIS2_INTF_TO_IMPL(id_constr);
- if(identity_constraint_impl->name)
+ if(id_cns_impl->name)
{
- AXIS2_FREE((*env)->allocator, identity_constraint_impl->name);
- identity_constraint_impl->name = NULL;
+ AXIS2_FREE((*env)->allocator, id_cns_impl->name);
+ id_cns_impl->name = NULL;
}
- identity_constraint_impl->name = AXIS2_STRDUP(name, env);
- if(!identity_constraint_impl->name)
+ id_cns_impl->name = AXIS2_STRDUP(name, env);
+ if(!id_cns_impl->name)
{
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return AXIS2_FAILURE;
@@ -284,25 +392,66 @@
}
axis2_xml_schema_xpath_t *AXIS2_CALL
-axis2_xml_schema_identity_constraint_get_selector(void *identity_constraint,
+axis2_xml_schema_identity_constraint_get_selector(void *id_constr,
axis2_env_t **env)
{
AXIS2_ENV_CHECK(env, NULL);
- return AXIS2_INTF_TO_IMPL(identity_constraint)->selector;
+ return AXIS2_INTF_TO_IMPL(id_constr)->selector;
}
axis2_status_t AXIS2_CALL
-axis2_xml_schema_identity_constraint_set_selector(void *identity_constraint,
+axis2_xml_schema_identity_constraint_set_selector(void *id_constr,
axis2_env_t **env,
axis2_xml_schema_xpath_t *selector)
{
- axis2_xml_schema_identity_constraint_impl_t *identity_constraint_impl = NULL;
+ axis2_xml_schema_identity_constraint_impl_t *id_cns_impl = NULL;
AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, selector, AXIS2_FAILURE);
- identity_constraint_impl = AXIS2_INTF_TO_IMPL(identity_constraint);
+ id_cns_impl = AXIS2_INTF_TO_IMPL(id_constr);
- identity_constraint_impl->selector = selector;
+ id_cns_impl->selector = selector;
return AXIS2_SUCCESS;
}
+
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_schema_identity_constraint_type(void *id_constr,
+ axis2_env_t **env)
+{
+ return AXIS2_INTF_TO_IMPL(id_constr)->obj_type;
+}
+
+
+axis2_hash_t* AXIS2_CALL
+axis2_xml_schema_identity_constraint_super_objs(void *id_constr,
+ axis2_env_t **env)
+{
+ return AXIS2_INTF_TO_IMPL(id_constr)->ht_super;
+}
+axis2_qname_t* AXIS2_CALL
+axis2_xml_schema_identity_constraint_get_refer(void *id_constr,
+ axis2_env_t **env)
+{
+ return AXIS2_INTF_TO_IMPL(id_constr)->refer;
+}
+
+axis2_status_t AXIS2_CALL
+axis2_xml_schema_identity_constraint_set_refer(void *id_constr,
+ axis2_env_t **env,
+ axis2_qname_t *refer)
+{
+ axis2_xml_schema_identity_constraint_impl_t *id_cns_impl = NULL;
+ AXIS2_ENV_CHECK(env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, refer, AXIS2_FAILURE);
+ id_cns_impl = AXIS2_INTF_TO_IMPL(id_constr);
+ if(NULL != id_cns_impl->refer)
+ {
+ /*
+ AXIS2_QNAME_FREE(id_cns_impl->reref, env);
+ id_cns_impl->reref = NULL;
+ */
+ }
+ id_cns_impl->refer = refer;
+ return AXIS2_SUCCESS;
+}
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_import.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_import.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_import.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_import.c Mon May 15 02:31:10 2006
@@ -28,6 +28,10 @@
axis2_xml_schema_external_t *external;
axis2_char_t *ns;
+
+ axis2_hash_t *ht_super;
+
+ axis2_xml_schema_types_t obj_type;
axis2_hash_t *methods;
@@ -46,6 +50,13 @@
axis2_xml_schema_import_get_base_impl(void *import,
axis2_env_t **env);
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_schema_import_type(void *import,
+ axis2_env_t **env);
+
+axis2_hash_t *AXIS2_CALL
+axis2_xml_schema_import_super_objs(void *import,
+ axis2_env_t **env);
axis2_char_t* AXIS2_CALL
axis2_xml_schema_import_get_namespace(void *import,
axis2_env_t **env);
@@ -61,6 +72,7 @@
axis2_xml_schema_import_create(axis2_env_t **env)
{
axis2_xml_schema_import_impl_t *import_impl = NULL;
+ axis2_xml_schema_annotated_t *annotated = NULL;
axis2_status_t status = AXIS2_FAILURE;
import_impl = AXIS2_MALLOC((*env)->allocator,
@@ -75,6 +87,8 @@
import_impl->methods = NULL;
import_impl->import.ops = NULL;
import_impl->import.base.ops = NULL;
+ import_impl->ht_super = NULL;
+ import_impl->obj_type = AXIS2_XML_SCHEMA_IMPORT;
import_impl->import.ops = AXIS2_MALLOC((*env)->allocator,
sizeof(axis2_xml_schema_import_ops_t));
@@ -90,15 +104,18 @@
axis2_xml_schema_import_free;
import_impl->import.ops->get_base_impl =
axis2_xml_schema_import_get_base_impl;
-
+ import_impl->import.ops->type =
+ axis2_xml_schema_import_type;
+ import_impl->import.ops->super_objs =
+ axis2_xml_schema_import_super_objs;
import_impl->import.ops->get_namespace =
axis2_xml_schema_import_get_namespace;
-
import_impl->import.ops->set_namespace =
axis2_xml_schema_import_set_namespace;
import_impl->methods = axis2_hash_make(env);
- if(!import_impl->methods)
+ import_impl->ht_super = axis2_hash_make(env);
+ if(!import_impl->methods || !import_impl->ht_super)
{
axis2_xml_schema_import_free(&(import_impl->import), env);
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
@@ -107,7 +124,10 @@
axis2_hash_set(import_impl->methods, "free", AXIS2_HASH_KEY_STRING,
axis2_xml_schema_import_free);
-
+ axis2_hash_set(import_impl->methods, "type",
+ AXIS2_HASH_KEY_STRING, axis2_xml_schema_import_type);
+ axis2_hash_set(import_impl->methods, "super_objs",
+ AXIS2_HASH_KEY_STRING, axis2_xml_schema_import_super_objs);
axis2_hash_set(import_impl->methods, "get_namespace",
AXIS2_HASH_KEY_STRING, axis2_xml_schema_import_get_namespace);
axis2_hash_set(import_impl->methods, "set_namespace",
@@ -119,10 +139,26 @@
axis2_xml_schema_import_free(&(import_impl->import), env);
return NULL;
}
+
+ axis2_hash_set(import_impl->ht_super, "AXIS2_XML_SCHEMA_IMPORT",
+ AXIS2_HASH_KEY_STRING, &(import_impl->import));
+ axis2_hash_set(import_impl->ht_super, "AXIS2_XML_SCHEMA_EXTERNAL",
+ AXIS2_HASH_KEY_STRING, import_impl->external);
+
+ annotated = AXIS2_XML_SCHEMA_EXTERNAL_GET_BASE_IMPL(import_impl->external, env);
+ if(NULL != annotated)
+ {
+
+ axis2_hash_set(import_impl->ht_super, "AXIS2_XML_SCHEMA_ANNOTATED",
+ AXIS2_HASH_KEY_STRING, annotated);
+ axis2_hash_set(import_impl->ht_super, "AXIS2_XML_SCHEMA_OBJ",
+ AXIS2_HASH_KEY_STRING,
+ AXIS2_XML_SCHEMA_ANNOTATED_GET_BASE_IMPL(annotated, env));
+ }
+
status = axis2_xml_schema_external_resolve_methods(
&(import_impl->import.base), env, import_impl->external,
import_impl->methods);
-
return &(import_impl->import);
}
@@ -140,7 +176,11 @@
axis2_hash_free(import_impl->methods, env);
import_impl->methods = NULL;
}
-
+ if(NULL != import_impl->ht_super)
+ {
+ axis2_hash_free(import_impl->ht_super, env);
+ import_impl->ht_super = NULL;
+ }
if(NULL != import_impl->external)
{
AXIS2_XML_SCHEMA_EXTERNAL_FREE(import_impl->external, env);
@@ -174,6 +214,7 @@
return import_impl->external;
}
+/*
AXIS2_DECLARE(axis2_status_t)
axis2_xml_schema_import_resolve_methods(
axis2_xml_schema_import_t *import,
@@ -205,7 +246,7 @@
return axis2_xml_schema_external_resolve_methods(&(import->base),
env, import_impl_l->external, methods);
}
-
+*/
axis2_char_t * AXIS2_CALL
axis2_xml_schema_import_get_namespace(void *import,
axis2_env_t **env)
@@ -230,3 +271,17 @@
import_impl->ns = ns;
return AXIS2_SUCCESS;
}
+
+axis2_xml_schema_types_t AXIS2_CALL
+axis2_xml_schema_import_type(void *import,
+ axis2_env_t **env)
+{
+ return AXIS2_INTF_TO_IMPL(import)->obj_type;
+}
+
+axis2_hash_t *AXIS2_CALL
+axis2_xml_schema_import_super_objs(void *import,
+ axis2_env_t **env)
+{
+ return AXIS2_INTF_TO_IMPL(import)->ht_super;
+}
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_obj.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_obj.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_obj.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_obj.c Mon May 15 02:31:10 2006
@@ -17,7 +17,8 @@
#include <xml_schema/axis2_xml_schema_obj.h>
#include <axis2_hash.h>
-typedef struct axis2_xml_schema_obj_impl axis2_xml_schema_obj_impl_t;
+typedef struct axis2_xml_schema_obj_impl
+ axis2_xml_schema_obj_impl_t;
/**
* @brief Xml Schema Obj Struct Impl
@@ -26,14 +27,20 @@
struct axis2_xml_schema_obj_impl
{
axis2_xml_schema_obj_t obj;
+
axis2_xml_schema_types_t obj_type;
- axis2_hash_t *super;
+
+ axis2_hash_t *ht_super;
+
int line_num;
+
int line_pos;
+
axis2_char_t *source_uri;
};
-#define AXIS2_INTF_TO_IMPL(obj) ((axis2_xml_schema_obj_impl_t *) obj)
+#define AXIS2_INTF_TO_IMPL(obj) \
+ ((axis2_xml_schema_obj_impl_t *) obj)
/***************** function pointers ******************************************/
@@ -53,36 +60,43 @@
axis2_env_t **env);
axis2_char_t * AXIS2_CALL
-axis2_xml_schema_obj_get_source_uri(void *obj,
- axis2_env_t **env);
+axis2_xml_schema_obj_get_source_uri(
+ void *obj,
+ axis2_env_t **env);
axis2_status_t AXIS2_CALL
-axis2_xml_schema_obj_set_source_uri(void *obj,
- axis2_env_t **env,
- axis2_char_t *source_uri);
+axis2_xml_schema_obj_set_source_uri(
+ void *obj,
+ axis2_env_t **env,
+ axis2_char_t *source_uri);
axis2_bool_t AXIS2_CALL
-axis2_xml_schema_obj_equals(void *obj,
- axis2_env_t **env,
- void *obj_comp);
+axis2_xml_schema_obj_equals(
+ void *obj,
+ axis2_env_t **env,
+ void *obj_comp);
int AXIS2_CALL
-axis2_xml_schema_obj_get_line_num(void *obj,
- axis2_env_t **env);
+axis2_xml_schema_obj_get_line_num(
+ void *obj,
+ axis2_env_t **env);
axis2_status_t AXIS2_CALL
-axis2_xml_schema_obj_set_line_num(void *obj,
- axis2_env_t **env,
- int line_num);
+axis2_xml_schema_obj_set_line_num(
+ void *obj,
+ axis2_env_t **env,
+ int line_num);
int AXIS2_CALL
-axis2_xml_schema_obj_get_line_pos(void *obj,
- axis2_env_t **env);
+axis2_xml_schema_obj_get_line_pos(
+ void *obj,
+ axis2_env_t **env);
axis2_status_t AXIS2_CALL
-axis2_xml_schema_obj_set_line_pos(void *obj,
- axis2_env_t **env,
- int line_pos);
+axis2_xml_schema_obj_set_line_pos(
+ void *obj,
+ axis2_env_t **env,
+ int line_pos);
/******************* end function pointers ************************************/
@@ -102,7 +116,7 @@
}
obj_impl->obj_type = AXIS2_XML_SCHEMA_OBJ;
- obj_impl->super = NULL;
+ obj_impl->ht_super = NULL;
obj_impl->line_num = -1;
obj_impl->line_pos = -1;
obj_impl->source_uri = NULL;
@@ -139,13 +153,13 @@
obj_impl->obj.ops->equals =
axis2_xml_schema_obj_equals;
- obj_impl->super = axis2_hash_make(env);
- if(!obj_impl->super)
+ obj_impl->ht_super = axis2_hash_make(env);
+ if(!obj_impl->ht_super)
{
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_NO_MEMORY, AXIS2_FAILURE);
return NULL;
}
- axis2_hash_set(obj_impl->super, "AXIS2_XML_SCHEMA_OBJ", AXIS2_HASH_KEY_STRING,
+ axis2_hash_set(obj_impl->ht_super, "AXIS2_XML_SCHEMA_OBJ", AXIS2_HASH_KEY_STRING,
&(obj_impl->obj));
return &(obj_impl->obj);
@@ -166,10 +180,10 @@
obj_impl->source_uri = NULL;
}
- if(obj_impl->super)
+ if(obj_impl->ht_super)
{
- axis2_hash_free(obj_impl->super, env);
- obj_impl->super = NULL;
+ axis2_hash_free(obj_impl->ht_super, env);
+ obj_impl->ht_super = NULL;
}
if(NULL != obj_impl->obj.ops)
@@ -191,10 +205,8 @@
axis2_env_t **env)
{
axis2_xml_schema_obj_impl_t *obj_impl = NULL;
-
obj_impl = AXIS2_INTF_TO_IMPL(obj);
-
- return obj_impl->super;
+ return obj_impl->ht_super;
}
axis2_xml_schema_types_t AXIS2_CALL
@@ -203,9 +215,7 @@
axis2_env_t **env)
{
axis2_xml_schema_obj_impl_t *obj_impl = NULL;
-
obj_impl = AXIS2_INTF_TO_IMPL(obj);
-
return obj_impl->obj_type;
}
@@ -276,11 +286,10 @@
if(!obj->ops->set_source_uri)
obj->ops->set_source_uri =
obj_impl_l->obj.ops->set_source_uri;
-
+
obj->ops->equals = obj_impl_l->obj.ops->equals;
return AXIS2_SUCCESS;
-
}
int AXIS2_CALL
axis2_xml_schema_obj_get_line_num(void *obj,
@@ -290,10 +299,14 @@
axis2_hash_t *super = NULL;
super = AXIS2_XML_SCHEMA_OBJ_SUPER_OBJS(obj, env);
- obj_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_OBJ",
- AXIS2_HASH_KEY_STRING));
-
- return obj_impl->line_num;
+ if(NULL != super)
+ {
+ obj_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_OBJ",
+ AXIS2_HASH_KEY_STRING));
+ if(NULL != obj_impl)
+ return obj_impl->line_num;
+ }
+ return -1;
}
axis2_status_t AXIS2_CALL
@@ -305,9 +318,16 @@
axis2_hash_t *super = NULL;
super = AXIS2_XML_SCHEMA_OBJ_SUPER_OBJS(obj, env);
- obj_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_OBJ",
+ if(NULL != super)
+ {
+ obj_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_OBJ",
AXIS2_HASH_KEY_STRING));
-
+ }
+ else
+ {
+
+
+ }
obj_impl->line_num = line_num;
return AXIS2_SUCCESS;
@@ -321,8 +341,11 @@
axis2_hash_t *super = NULL;
super = AXIS2_XML_SCHEMA_OBJ_SUPER_OBJS(obj, env);
- obj_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_OBJ",
- AXIS2_HASH_KEY_STRING));
+ if(NULL != super)
+ {
+ obj_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_OBJ",
+ AXIS2_HASH_KEY_STRING));
+ }
return obj_impl->line_pos;
}
@@ -335,11 +358,13 @@
axis2_hash_t *super = NULL;
super = AXIS2_XML_SCHEMA_OBJ_SUPER_OBJS(obj, env);
- obj_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_OBJ",
- AXIS2_HASH_KEY_STRING));
-
- obj_impl->line_pos = line_pos;
-
+ if(NULL != super)
+ {
+ obj_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_OBJ",
+ AXIS2_HASH_KEY_STRING));
+ if(NULL != obj_impl)
+ obj_impl->line_pos = line_pos;
+ }
return AXIS2_SUCCESS;
}
@@ -349,7 +374,9 @@
{
axis2_xml_schema_obj_impl_t *obj_impl = NULL;
axis2_hash_t *super = NULL;
-
+ super = AXIS2_XML_SCHEMA_OBJ_SUPER_OBJS(obj, env);
+ obj_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_OBJ",
+ AXIS2_HASH_KEY_STRING));
return obj_impl->source_uri;
}
@@ -386,7 +413,10 @@
super = AXIS2_XML_SCHEMA_OBJ_SUPER_OBJS(obj, env);
obj_impl = AXIS2_INTF_TO_IMPL(axis2_hash_get(super, "AXIS2_XML_SCHEMA_OBJ",
AXIS2_HASH_KEY_STRING));
-
+ /****
+ TODO
+
+ ***/
return AXIS2_TRUE;
}
Modified: webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_obj_table.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_obj_table.c?rev=406594&r1=406593&r2=406594&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_obj_table.c (original)
+++ webservices/axis2/trunk/c/modules/xml/xml_schema/xml_schema_obj_table.c Mon May 15 02:31:10 2006
@@ -48,7 +48,7 @@
axis2_xml_schema_obj_table_get_count(axis2_xml_schema_obj_table_t *obj_table,
axis2_env_t **env);
-axis2_xml_schema_obj_t *AXIS2_CALL
+void *AXIS2_CALL
axis2_xml_schema_obj_table_get_item(axis2_xml_schema_obj_table_t *obj_table,
axis2_env_t **env,
axis2_qname_t *qname);
@@ -70,7 +70,7 @@
axis2_xml_schema_obj_table_add(axis2_xml_schema_obj_table_t *obj_table,
axis2_env_t **env,
axis2_qname_t *qname,
- axis2_xml_schema_obj_t *value);
+ void *value);
/******************** end function pointers ***********************************/
@@ -179,10 +179,10 @@
return -1;
}
-axis2_xml_schema_obj_t *AXIS2_CALL
+void *AXIS2_CALL
axis2_xml_schema_obj_table_get_item(axis2_xml_schema_obj_table_t *obj_table,
- axis2_env_t **env,
- axis2_qname_t *qname)
+ axis2_env_t **env,
+ axis2_qname_t *qname)
{
axis2_xml_schema_obj_table_impl_t *obj_table_impl = NULL;
axis2_char_t *name = NULL;
@@ -294,9 +294,9 @@
axis2_status_t AXIS2_CALL
axis2_xml_schema_obj_table_add(axis2_xml_schema_obj_table_t *obj_table,
- axis2_env_t **env,
- axis2_qname_t *qname,
- axis2_xml_schema_obj_t *value)
+ axis2_env_t **env,
+ axis2_qname_t *qname,
+ void *value)
{
axis2_xml_schema_obj_table_impl_t *obj_table_impl = NULL;
axis2_char_t *name = NULL;