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/01/20 11:24:00 UTC
svn commit: r370775 - in /webservices/axis2/trunk/c: include/
modules/xml/om/ modules/xml/soap/ test/xml/soap/
Author: nandika
Date: Fri Jan 20 02:23:42 2006
New Revision: 370775
URL: http://svn.apache.org/viewcvs?rev=370775&view=rev
Log:
errors corrected
Modified:
webservices/axis2/trunk/c/include/axis2_soap_builder.h
webservices/axis2/trunk/c/include/axis2_soap_fault_sub_code.h
webservices/axis2/trunk/c/modules/xml/om/om_children_qname_iterator.c
webservices/axis2/trunk/c/modules/xml/om/om_element.c
webservices/axis2/trunk/c/modules/xml/om/om_node.c
webservices/axis2/trunk/c/modules/xml/soap/soap12_builder_helper.c
webservices/axis2/trunk/c/modules/xml/soap/soap_builder.c
webservices/axis2/trunk/c/modules/xml/soap/soap_envelope.c
webservices/axis2/trunk/c/modules/xml/soap/soap_fault_sub_code.c
webservices/axis2/trunk/c/modules/xml/soap/soap_header.c
webservices/axis2/trunk/c/modules/xml/soap/soap_header_block.c
webservices/axis2/trunk/c/test/xml/soap/test_soap.c
Modified: webservices/axis2/trunk/c/include/axis2_soap_builder.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_builder.h?rev=370775&r1=370774&r2=370775&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_builder.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_builder.h Fri Jan 20 02:23:42 2006
@@ -58,9 +58,10 @@
(axis2_soap_builder_t *builder,
axis2_env_t **env);
- axis2_om_node_t * (AXIS2_CALL *next)(axis2_soap_builder_t *builder,
- axis2_env_t **env);
-
+ axis2_status_t (AXIS2_CALL *next)(axis2_soap_builder_t *builder,
+ axis2_env_t **env);
+
+
axis2_om_node_t* (AXIS2_CALL *get_document_element)
(axis2_soap_builder_t *builder,
axis2_env_t **env);
@@ -145,7 +146,8 @@
((builder)->ops->get_soap_version(builder, env))
#define AXIS2_SOAP_BUILDER_SET_ELEMENT_LEVEL(builder, env, ele_level) \
- ((builder)->ops->set_element_level(builder, env, ele_level))
+ ((builder)->ops->set_element_level(builder, env, ele_level))
+
/** @} */
#ifdef __cplusplus
}
Modified: webservices/axis2/trunk/c/include/axis2_soap_fault_sub_code.h
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/include/axis2_soap_fault_sub_code.h?rev=370775&r1=370774&r2=370775&view=diff
==============================================================================
--- webservices/axis2/trunk/c/include/axis2_soap_fault_sub_code.h (original)
+++ webservices/axis2/trunk/c/include/axis2_soap_fault_sub_code.h Fri Jan 20 02:23:42 2006
@@ -33,6 +33,7 @@
typedef struct axis2_soap_fault_sub_code_ops axis2_soap_fault_sub_code_ops_t;
typedef struct axis2_soap_fault_sub_code axis2_soap_fault_sub_code_t;
struct axis2_soap_fault_value;
+ struct axis2_soap_builder;
/**
* @defgroup axis2_soap_fault_sub_code
* @ingroup axis2_soap
@@ -91,7 +92,13 @@
int (AXIS2_CALL *set_soap_version)
(axis2_soap_fault_sub_code_t *fault_sub_code,
axis2_env_t **env,
- int soap_version);
+ int soap_version);
+
+ axis2_status_t (AXIS2_CALL *set_builder)
+ (axis2_soap_fault_sub_code_t *fault_sub_code,
+ axis2_env_t **env,
+ struct axis2_soap_builder* builder);
+
};
@@ -152,6 +159,8 @@
#define AXIS2_SOAP_FAULT_SUB_CODE_SET_SOAP_VRESION(fault_sub_code, env, version) \
((fault_sub_code)->ops->set_soap_version(fault_sub_code, env, version))
+#define AXIS2_SOAP_FAULT_SUB_CODE_SET_BUILDER(fault_sub_code, env, builder) \
+ ((fault_sub_code)->ops->set_builder(fault_sub_code, env, builder))
/** @} */
#ifdef __cplusplus
Modified: webservices/axis2/trunk/c/modules/xml/om/om_children_qname_iterator.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/om/om_children_qname_iterator.c?rev=370775&r1=370774&r2=370775&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/om/om_children_qname_iterator.c (original)
+++ webservices/axis2/trunk/c/modules/xml/om/om_children_qname_iterator.c Fri Jan 20 02:23:42 2006
@@ -76,7 +76,6 @@
AXIS2_ENV_CHECK(env, NULL);
AXIS2_PARAM_CHECK((*env)->error, current_child, NULL);
- AXIS2_PARAM_CHECK((*env)->error, given_qname, NULL);
iterator_impl = (axis2_om_children_qname_iterator_impl_t*)AXIS2_MALLOC(
(*env)->allocator,
@@ -95,6 +94,7 @@
iterator_impl->matching_node_found = AXIS2_FALSE;
iterator_impl->next_called = AXIS2_FALSE;
iterator_impl->remove_called = AXIS2_FALSE;
+ iterator_impl->given_qname = NULL;
iterator_impl->iterator.ops =
@@ -109,8 +109,10 @@
}
iterator_impl->current_child = current_child;
- iterator_impl->given_qname = AXIS2_QNAME_CLONE(given_qname, env);
-
+ if(given_qname)
+ {
+ iterator_impl->given_qname = AXIS2_QNAME_CLONE(given_qname, env);
+ }
iterator_impl->iterator.ops->free_fn =
axis2_om_children_qname_iterator_free;
iterator_impl->iterator.ops->remove =
Modified: webservices/axis2/trunk/c/modules/xml/om/om_element.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/om/om_element.c?rev=370775&r1=370774&r2=370775&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/om/om_element.c (original)
+++ webservices/axis2/trunk/c/modules/xml/om/om_element.c Fri Jan 20 02:23:42 2006
@@ -954,7 +954,6 @@
{
AXIS2_FUNC_PARAM_CHECK(om_element, env, NULL);
AXIS2_PARAM_CHECK((*env)->error, element_node, NULL);
- AXIS2_PARAM_CHECK((*env)->error, element_qname, NULL);
return axis2_om_children_qname_iterator_create(env,
AXIS2_OM_NODE_GET_FIRST_CHILD(element_node, env),
Modified: webservices/axis2/trunk/c/modules/xml/om/om_node.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/om/om_node.c?rev=370775&r1=370774&r2=370775&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/om/om_node.c (original)
+++ webservices/axis2/trunk/c/modules/xml/om/om_node.c Fri Jan 20 02:23:42 2006
@@ -598,7 +598,7 @@
while(!(om_node_impl->first_child) && !(om_node_impl->done)
&& om_node_impl->builder)
{
- AXIS2_OM_STAX_BUILDER_NEXT(om_node_impl->builder, env);
+ AXIS2_OM_STAX_BUILDER_NEXT_WITH_TOKEN(om_node_impl->builder, env);
}
/**********************************************************/
return om_node_impl->first_child;
@@ -632,7 +632,7 @@
while(!(om_node_impl->next_sibling) && om_node_impl->parent &&
om_node_impl->builder && !(AXIS2_OM_NODE_GET_BUILD_STATUS(om_node_impl->parent, env)))
{
- AXIS2_OM_STAX_BUILDER_NEXT(om_node_impl->builder, env);
+ AXIS2_OM_STAX_BUILDER_NEXT_WITH_TOKEN(om_node_impl->builder, env);
}
/*******************************************************/
return om_node_impl->next_sibling;
Modified: webservices/axis2/trunk/c/modules/xml/soap/soap12_builder_helper.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/soap/soap12_builder_helper.c?rev=370775&r1=370774&r2=370775&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/soap/soap12_builder_helper.c (original)
+++ webservices/axis2/trunk/c/modules/xml/soap/soap12_builder_helper.c Fri Jan 20 02:23:42 2006
@@ -269,7 +269,6 @@
AXIS2_SOAP_FAULT_NODE_SET_SOAP_VERSION(soap_fault_node, env, AXIS2_SOAP12);
AXIS2_SOAP_FAULT_SET_NODE(soap_fault, env, soap_fault_node);
*/
- printf("node create");
builder_helper_impl->node_present = AXIS2_TRUE;
}
}else
Modified: webservices/axis2/trunk/c/modules/xml/soap/soap_builder.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/soap/soap_builder.c?rev=370775&r1=370774&r2=370775&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/soap/soap_builder.c (original)
+++ webservices/axis2/trunk/c/modules/xml/soap/soap_builder.c Fri Jan 20 02:23:42 2006
@@ -90,7 +90,7 @@
(axis2_soap_builder_t *builder,
axis2_env_t **env);
-axis2_om_node_t * AXIS2_CALL
+axis2_status_t AXIS2_CALL
axis2_soap_builder_next(axis2_soap_builder_t *builder,
axis2_env_t **env);
@@ -256,7 +256,7 @@
axis2_env_t **env)
{
axis2_soap_builder_impl_t *builder_impl = NULL;
- void *value = NULL;
+ int status = AXIS2_SUCCESS;
AXIS2_FUNC_PARAM_CHECK(builder, env, NULL);
builder_impl = AXIS2_INTF_TO_IMPL(builder);
@@ -266,7 +266,7 @@
while(!(builder_impl->soap_envelope) &&
!AXIS2_OM_STAX_BUILDER_IS_COMPLETE(builder_impl->om_builder, env))
{
- value = axis2_soap_builder_next(builder, env);
+ status = axis2_soap_builder_next(builder, env);
}
return builder_impl->soap_envelope;
@@ -283,7 +283,7 @@
return AXIS2_OM_STAX_BUILDER_GET_DOCUMENT(builder_impl->om_builder, env);
}
-axis2_om_node_t * AXIS2_CALL
+axis2_status_t AXIS2_CALL
axis2_soap_builder_next(axis2_soap_builder_t *builder,
axis2_env_t **env)
{
@@ -292,7 +292,7 @@
int current_event = -1;
axis2_om_node_t *current_node = NULL;
int status = AXIS2_SUCCESS;
- AXIS2_FUNC_PARAM_CHECK(builder, env, NULL);
+ AXIS2_FUNC_PARAM_CHECK(builder, env, AXIS2_FAILURE);
builder_impl = AXIS2_INTF_TO_IMPL(builder);
lastnode = AXIS2_OM_STAX_BUILDER_GET_LAST_NODE(builder_impl->om_builder, env);
@@ -307,20 +307,22 @@
{
builder_impl->last_node_status = AXIS2_BUILDER_LAST_NODE_DONE_FALSE;
}
-
+ /*
current_node = AXIS2_OM_STAX_BUILDER_NEXT(builder_impl->om_builder, env);
-
-
+ */
+ current_event = AXIS2_OM_STAX_BUILDER_NEXT_WITH_TOKEN(builder_impl->om_builder, env);
+ /*
current_event = AXIS2_OM_STAX_BUILDER_GET_CURRENT_EVENT(builder_impl->om_builder, env);
+ */
if(current_event == AXIS2_XML_READER_EMPTY_ELEMENT ||
current_event == AXIS2_XML_READER_START_ELEMENT)
{
+ current_node = AXIS2_OM_STAX_BUILDER_GET_LAST_NODE(builder_impl->om_builder, env);
+
status = axis2_soap_builder_create_om_element(builder, env, current_node);
}
- if(status == AXIS2_FAILURE)
- return NULL;
- return current_node;
+ return status;
}
axis2_om_node_t* AXIS2_CALL
@@ -374,24 +376,30 @@
axis2_bool_t is_soap_envelope)
{
axis2_soap_builder_impl_t *builder_impl = NULL;
+
axis2_om_element_t *parent_ele = NULL;
axis2_char_t *parent_localname = NULL;
- axis2_char_t *element_name = NULL;
+
+ axis2_om_element_t *om_element = NULL;
+ axis2_char_t *ele_localname = NULL;
+
int element_level = 0;
int status = AXIS2_SUCCESS;
- axis2_om_element_t *om_element = NULL;
+
AXIS2_FUNC_PARAM_CHECK(builder, env, AXIS2_FAILURE);
AXIS2_PARAM_CHECK((*env)->error, om_element_node, AXIS2_FAILURE);
builder_impl = AXIS2_INTF_TO_IMPL(builder);
- element_level = AXIS2_OM_STAX_BUILDER_GET_ELEMENT_LEVEL(builder_impl->om_builder, env);
+ element_level = AXIS2_OM_STAX_BUILDER_GET_ELEMENT_LEVEL(
+ builder_impl->om_builder, env);
om_element = (axis2_om_element_t *)
AXIS2_OM_NODE_GET_DATA_ELEMENT(om_element_node, env);
- element_name = AXIS2_OM_ELEMENT_GET_LOCALNAME(om_element, env);
+ ele_localname = AXIS2_OM_ELEMENT_GET_LOCALNAME(om_element, env);
+
if(parent)
{
@@ -402,31 +410,38 @@
{
int status = AXIS2_SUCCESS;
- if(AXIS2_STRCASECMP(element_name, AXIS2_SOAP_ENVELOPE_LOCAL_NAME) != 0)
+ if(AXIS2_STRCASECMP(ele_localname, AXIS2_SOAP_ENVELOPE_LOCAL_NAME) != 0)
{
- AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_SOAP_MESSAGE_FIRST_ELEMENT_MUST_CONTAIN_LOCAL_NAME, AXIS2_FAILURE);
+ AXIS2_ERROR_SET((*env)->error,
+ AXIS2_ERROR_SOAP_MESSAGE_FIRST_ELEMENT_MUST_CONTAIN_LOCAL_NAME, AXIS2_FAILURE);
return AXIS2_FAILURE;
}
builder_impl->soap_envelope = axis2_soap_envelope_create_null(env);
- status = AXIS2_SOAP_ENVELOPE_SET_BASE_NODE(builder_impl->soap_envelope, env, om_element_node);
+ status = AXIS2_SOAP_ENVELOPE_SET_BASE_NODE(builder_impl->soap_envelope,
+ env, om_element_node);
+
AXIS2_SOAP_ENVELOPE_SET_SOAP_VERSION(builder_impl->soap_envelope, env, builder_impl->soap_version);
- axis2_soap_builder_process_namespace_data(builder, env, om_element_node, AXIS2_TRUE);
+ AXIS2_SOAP_ENVELOPE_SET_BUILDER(builder_impl->soap_envelope, env, builder);
+
+ status = axis2_soap_builder_process_namespace_data(builder, env, om_element_node, AXIS2_TRUE);
}
else if(element_level == 2)
{
- axis2_soap_header_t *soap_header = NULL;
- if(AXIS2_STRCMP(element_name, AXIS2_SOAP_HEADER_LOCAL_NAME) == 0)
- {
+ if(AXIS2_STRCMP(ele_localname, AXIS2_SOAP_HEADER_LOCAL_NAME) == 0)
+ {
+ axis2_soap_header_t *soap_header = NULL;
if(builder_impl->header_present)
{
+ printf("AXIS2_ERROR_SOAP_BUILDER_MULTIPLE_HEADERS_ENCOUNTERED");
AXIS2_ERROR_SET((*env)->error,
AXIS2_ERROR_SOAP_BUILDER_MULTIPLE_HEADERS_ENCOUNTERED, AXIS2_FAILURE);
return AXIS2_FAILURE;
}
if(builder_impl->body_present)
{
+ printf("AXIS2_ERROR_SOAP_BUILDER_HEADER_BODY_WRONG_ORDER");
AXIS2_ERROR_SET((*env)->error,
AXIS2_ERROR_SOAP_BUILDER_HEADER_BODY_WRONG_ORDER, AXIS2_FAILURE);
return AXIS2_FAILURE;
@@ -436,13 +451,16 @@
AXIS2_SOAP_HEADER_SET_BASE_NODE(soap_header, env, om_element_node);
AXIS2_SOAP_HEADER_SET_SOAP_VERSION(soap_header, env, builder_impl->soap_version);
AXIS2_SOAP_ENVELOPE_SET_HEADER(builder_impl->soap_envelope, env, soap_header);
- axis2_soap_builder_process_namespace_data(builder, env, om_element_node, AXIS2_TRUE);
+ status = axis2_soap_builder_process_namespace_data(builder, env,
+ om_element_node, AXIS2_TRUE);
}
- else if(AXIS2_STRCMP(element_name, AXIS2_SOAP_BODY_LOCAL_NAME))
+ else if(AXIS2_STRCMP(ele_localname, AXIS2_SOAP_BODY_LOCAL_NAME) == 0)
{
+
axis2_soap_body_t *soap_body = NULL;
if(builder_impl->body_present)
{
+ printf("AXIS2_ERROR_SOAP_BUILDER_MULTIPLE_BODY_ELEMENTS_ENCOUNTERED");
AXIS2_ERROR_SET((*env)->error,
AXIS2_ERROR_SOAP_BUILDER_MULTIPLE_BODY_ELEMENTS_ENCOUNTERED, AXIS2_FAILURE);
return AXIS2_FAILURE;
@@ -453,10 +471,13 @@
AXIS2_SOAP_BODY_SET_BASE_NODE(soap_body, env, om_element_node);
AXIS2_SOAP_BODY_SET_SOAP_VERSION(soap_body, env, builder_impl->soap_version);
AXIS2_SOAP_ENVELOPE_SET_BODY(builder_impl->soap_envelope, env, soap_body);
- axis2_soap_builder_process_namespace_data(builder, env, om_element_node, AXIS2_TRUE);
-
- }else
+ status = axis2_soap_builder_process_namespace_data(builder, env,
+ om_element_node, AXIS2_TRUE);
+ printf("body create");
+ }
+ else
{
+ printf("AXIS2_ERROR_SOAP_BUILDER_ENVELOPE_CAN_HAVE_ONLY_HEADER_AND_BODY");
AXIS2_ERROR_SET((*env)->error,
AXIS2_ERROR_SOAP_BUILDER_ENVELOPE_CAN_HAVE_ONLY_HEADER_AND_BODY, AXIS2_FAILURE);
return AXIS2_FAILURE;
@@ -476,7 +497,7 @@
}
else if((element_level == 3) &&
AXIS2_STRCASECMP(parent_localname, AXIS2_SOAP_BODY_LOCAL_NAME) == 0 &&
- AXIS2_STRCASECMP(element_name, AXIS2_SOAP_BODY_FAULT_LOCAL_NAME) == 0)
+ AXIS2_STRCASECMP(ele_localname, AXIS2_SOAP_BODY_FAULT_LOCAL_NAME) == 0)
{
axis2_soap_body_t *soap_body = NULL;
axis2_soap_fault_t *soap_fault = NULL;
@@ -490,10 +511,6 @@
env_ns = AXIS2_OM_ELEMENT_GET_NAMESPACE(envelope_ele, env);
soap_body = AXIS2_SOAP_ENVELOPE_GET_BODY(builder_impl->soap_envelope, env);
- /*
- printf("________________%s", AXIS2_OM_ELEMENT_GET_LOCALNAME(
- (axis2_om_element_t *)AXIS2_OM_NODE_GET_DATA_ELEMENT(AXIS2_SOAP_BODY_GET_BASE_NODE(soap_body,env), env), env));
- */
soap_fault = axis2_soap_fault_create(env);
AXIS2_SOAP_FAULT_SET_BASE_NODE(soap_fault, env, om_element_node);
@@ -530,6 +547,7 @@
status = AXIS2_SOAP12_BUILDER_HELPER_HANDLE_EVENT(((axis2_soap12_builder_helper_t *)
(builder_impl->builder_helper)), env, om_element_node , element_level);
}
+
}
return status;
}
@@ -541,7 +559,6 @@
axis2_om_node_t *om_node,
int is_soap_element)
{
- axis2_soap_builder_impl_t *builder_impl = NULL;
axis2_om_element_t *om_ele = NULL;
axis2_om_namespace_t *om_ns = NULL;
axis2_char_t *ns_uri = NULL;
@@ -549,16 +566,17 @@
AXIS2_PARAM_CHECK((*env)->error, om_node, AXIS2_FAILURE);
if(!is_soap_element)
return AXIS2_SUCCESS;
- builder_impl = AXIS2_INTF_TO_IMPL(builder);
if(AXIS2_OM_NODE_GET_NODE_TYPE(om_node, env) == AXIS2_OM_ELEMENT)
{
om_ele = (axis2_om_element_t *) AXIS2_OM_NODE_GET_DATA_ELEMENT(om_node, env);
om_ns = AXIS2_OM_ELEMENT_GET_NAMESPACE(om_ele, env);
ns_uri = AXIS2_OM_NAMESPACE_GET_URI(om_ns, env);
if(om_ns &&
- (AXIS2_STRCMP(ns_uri, AXIS2_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI) != 0 ||
- AXIS2_STRCMP(ns_uri, AXIS2_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI) != 0))
+ (AXIS2_STRCMP(ns_uri, AXIS2_SOAP11_SOAP_ENVELOPE_NAMESPACE_URI) != 0) &&
+ (AXIS2_STRCMP(ns_uri, AXIS2_SOAP12_SOAP_ENVELOPE_NAMESPACE_URI) != 0))
{
+ printf("AXIS2_ERROR_INVALID_SOAP_NAMESPACE_URI");
+
AXIS2_ERROR_SET((*env)->error, AXIS2_ERROR_INVALID_SOAP_NAMESPACE_URI, AXIS2_FAILURE);
return AXIS2_FAILURE;
}
Modified: webservices/axis2/trunk/c/modules/xml/soap/soap_envelope.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/soap/soap_envelope.c?rev=370775&r1=370774&r2=370775&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/soap/soap_envelope.c (original)
+++ webservices/axis2/trunk/c/modules/xml/soap/soap_envelope.c Fri Jan 20 02:23:42 2006
@@ -319,23 +319,35 @@
* object
* @throws OMException
*/
-axis2_soap_header_t* AXIS2_CALL axis2_soap_envelope_get_header(axis2_soap_envelope_t *envelope,
- axis2_env_t **env)
+axis2_soap_header_t* AXIS2_CALL
+axis2_soap_envelope_get_header(axis2_soap_envelope_t *envelope,
+ axis2_env_t **env)
{
axis2_soap_envelope_impl_t *envelope_impl = NULL;
axis2_qname_t *header_qn = NULL;
axis2_om_node_t *header_node = NULL;
axis2_om_element_t *header_ele = NULL;
axis2_om_element_t *envelope_ele = NULL;
-
+ int status = AXIS2_SUCCESS;
AXIS2_FUNC_PARAM_CHECK(envelope, env, NULL);
envelope_impl = AXIS2_INTF_TO_IMPL(envelope);
if(envelope_impl->header)
{
+ printf("header already there ");
return envelope_impl->header;
+ }
+ if(envelope_impl->soap_builder)
+ { printf("header pulled");
+ while(!(envelope_impl->header) && !AXIS2_OM_NODE_GET_BUILD_STATUS(envelope_impl->om_ele_node, env))
+ {
+ status = AXIS2_SOAP_BUILDER_NEXT(envelope_impl->soap_builder, env);
+ if(status == AXIS2_FAILURE)
+ return NULL;
+ }
}
+ /*
else
{
envelope_impl->header = axis2_soap_header_create(env);
@@ -361,9 +373,10 @@
}
if(envelope_impl->header)
return envelope_impl->header;
- }
+ }
+ */
if(!(envelope_impl->header))
- {
+ { printf(" create new");
envelope_impl->header = axis2_soap_header_create_with_parent(env, envelope);
if(envelope_impl->soap_version == AXIS2_SOAP12)
{
@@ -424,20 +437,32 @@
axis2_om_element_t *envelope_ele = NULL;
axis2_om_node_t *first_node = NULL;
axis2_om_element_t *first_ele = NULL;
-
+ int status = AXIS2_SUCCESS;
axis2_om_node_t *next_node = NULL;
axis2_om_element_t *next_ele = NULL;
AXIS2_FUNC_PARAM_CHECK(envelope, env, NULL);
envelope_impl = AXIS2_INTF_TO_IMPL(envelope);
-
if(envelope_impl->body)
{
return envelope_impl->body;
}
+ else if(envelope_impl->soap_builder)
+ {
+ while(!(envelope_impl->body) && !AXIS2_OM_NODE_GET_BUILD_STATUS(envelope_impl->om_ele_node, env))
+ {
+ status = AXIS2_SOAP_BUILDER_NEXT(envelope_impl->soap_builder, env);
+ if(status == AXIS2_FAILURE)
+ {
+ return NULL;
+ }
+ }
+ if(envelope_impl->body)
+ return envelope_impl->body;
+ }
-
+ /*
envelope_ele = (axis2_om_element_t *)AXIS2_OM_NODE_GET_DATA_ELEMENT(
envelope_impl->om_ele_node, env);
@@ -480,13 +505,15 @@
}
}
+ */
return envelope_impl->body;
}
-axis2_status_t AXIS2_CALL axis2_soap_envelope_serialize(axis2_soap_envelope_t *envelope,
- axis2_env_t **env,
- axis2_om_output_t *om_output,
- axis2_bool_t cache)
+axis2_status_t AXIS2_CALL
+axis2_soap_envelope_serialize(axis2_soap_envelope_t *envelope,
+ axis2_env_t **env,
+ axis2_om_output_t *om_output,
+ axis2_bool_t cache)
{
axis2_soap_envelope_impl_t *envelope_impl = NULL;
AXIS2_FUNC_PARAM_CHECK(envelope, env, AXIS2_FAILURE);
Modified: webservices/axis2/trunk/c/modules/xml/soap/soap_fault_sub_code.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/soap/soap_fault_sub_code.c?rev=370775&r1=370774&r2=370775&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/soap/soap_fault_sub_code.c (original)
+++ webservices/axis2/trunk/c/modules/xml/soap/soap_fault_sub_code.c Fri Jan 20 02:23:42 2006
@@ -17,7 +17,8 @@
#include <axis2_soap_fault_sub_code.h>
#include <axis2_soap_fault_code.h>
#include <axis2_soap_fault_value.h>
- #include <axis2_soap_utils.h>
+ #include <axis2_soap_utils.h>
+ #include <axis2_soap_builder.h>
/********************** impl struct ******************************************/
typedef struct axis2_soap_fault_sub_code_impl_t
@@ -34,7 +35,9 @@
axis2_soap_fault_code_t *parent;
- int soap_version;
+ int soap_version;
+
+ axis2_soap_builder_t *builder;
}axis2_soap_fault_sub_code_impl_t;
@@ -89,7 +92,12 @@
axis2_soap_fault_sub_code_set_soap_version
(axis2_soap_fault_sub_code_t *fault_sub_code,
axis2_env_t **env,
- int soap_version);
+ int soap_version);
+
+axis2_status_t AXIS2_CALL
+axis2_soap_fault_sub_code_set_builder(axis2_soap_fault_sub_code_t *fault_sub_code,
+ axis2_env_t **env,
+ axis2_soap_builder_t *builder);
/********************** function implementations ******************************/
@@ -116,6 +124,7 @@
fault_subcode_impl->value = NULL;
fault_subcode_impl->subcode = NULL;
fault_subcode_impl->parent = NULL;
+ fault_subcode_impl->builder = NULL;
fault_subcode_impl->fault_sub_code.ops =
(axis2_soap_fault_sub_code_ops_t*)AXIS2_MALLOC((*env)->allocator,
@@ -153,7 +162,10 @@
axis2_soap_fault_sub_code_get_soap_version;
fault_subcode_impl->fault_sub_code.ops->set_soap_version =
- axis2_soap_fault_sub_code_set_soap_version;
+ axis2_soap_fault_sub_code_set_soap_version;
+
+ fault_subcode_impl->fault_sub_code.ops->set_builder =
+ axis2_soap_fault_sub_code_set_builder;
return &(fault_subcode_impl->fault_sub_code);
}
@@ -393,4 +405,15 @@
return AXIS2_SUCCESS;
}
-
+axis2_status_t AXIS2_CALL
+axis2_soap_fault_sub_code_set_builder(axis2_soap_fault_sub_code_t *fault_sub_code,
+ axis2_env_t **env,
+ axis2_soap_builder_t *builder)
+{
+ axis2_soap_fault_sub_code_impl_t *subcode_impl = NULL;
+ AXIS2_FUNC_PARAM_CHECK(fault_sub_code, env, AXIS2_FAILURE);
+ AXIS2_PARAM_CHECK((*env)->error, builder, AXIS2_FAILURE);
+ subcode_impl = AXIS2_INTF_TO_IMPL(fault_sub_code);
+ subcode_impl->builder = builder;
+ return AXIS2_SUCCESS;
+}
Modified: webservices/axis2/trunk/c/modules/xml/soap/soap_header.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/soap/soap_header.c?rev=370775&r1=370774&r2=370775&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/soap/soap_header.c (original)
+++ webservices/axis2/trunk/c/modules/xml/soap/soap_header.c Fri Jan 20 02:23:42 2006
@@ -277,9 +277,12 @@
axis2_env_t **env)
{
axis2_soap_header_impl_t *header_impl = NULL;
+ axis2_om_element_t *om_ele = NULL;
AXIS2_FUNC_PARAM_CHECK(header, env, NULL);
header_impl = AXIS2_INTF_TO_IMPL(header);
- return AXIS2_OM_ELEMENT_GET_CHILDREN_WITH_QNAME(header_impl->om_ele,
+ printf(" header block");
+ om_ele = (axis2_om_element_t *)AXIS2_OM_NODE_GET_DATA_ELEMENT(header_impl->om_ele_node, env);
+ return AXIS2_OM_ELEMENT_GET_CHILDREN_WITH_QNAME(om_ele,
env, NULL, header_impl->om_ele_node);
}
Modified: webservices/axis2/trunk/c/modules/xml/soap/soap_header_block.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/modules/xml/soap/soap_header_block.c?rev=370775&r1=370774&r2=370775&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/soap/soap_header_block.c (original)
+++ webservices/axis2/trunk/c/modules/xml/soap/soap_header_block.c Fri Jan 20 02:23:42 2006
@@ -18,6 +18,7 @@
#include <axis2_soap_header_block.h>
#include <axis2_soap_header.h>
#include <axis2_soap_envelope.h>
+#include <axis2_soap_builder.h>
/******************* impl struct **********************************************/
@@ -35,6 +36,7 @@
axis2_bool_t processed;
+
}axis2_soap_header_block_impl_t;
/***************** Macro ******************************************************/
@@ -119,7 +121,8 @@
(axis2_soap_header_block_t *header_block,
axis2_env_t **env,
axis2_char_t *attr_name,
- axis2_char_t *soap_envelope_namespace_uri);
+ axis2_char_t *soap_envelope_namespace_uri);
+
/*************** function implementations *************************************/
Modified: webservices/axis2/trunk/c/test/xml/soap/test_soap.c
URL: http://svn.apache.org/viewcvs/webservices/axis2/trunk/c/test/xml/soap/test_soap.c?rev=370775&r1=370774&r2=370775&view=diff
==============================================================================
--- webservices/axis2/trunk/c/test/xml/soap/test_soap.c (original)
+++ webservices/axis2/trunk/c/test/xml/soap/test_soap.c Fri Jan 20 02:23:42 2006
@@ -29,12 +29,22 @@
{
axis2_om_element_t *om_ele = NULL;
axis2_char_t *localname = NULL;
+ axis2_om_namespace_t *om_ns = NULL;
+ axis2_char_t *uri = NULL;
+ axis2_char_t *prefix = NULL;
AXIS2_FUNC_PARAM_CHECK(om_node, env, AXIS2_FAILURE);
if(AXIS2_OM_NODE_GET_NODE_TYPE(om_node, env) == AXIS2_OM_ELEMENT)
{
om_ele = (axis2_om_element_t *)AXIS2_OM_NODE_GET_DATA_ELEMENT(om_node, env);
localname = AXIS2_OM_ELEMENT_GET_LOCALNAME(om_ele, env);
printf("\n %s \n", localname);
+ om_ns = AXIS2_OM_ELEMENT_GET_NAMESPACE(om_ele, env);
+ if(om_ns)
+ {
+ prefix = AXIS2_OM_NAMESPACE_GET_PREFIX(om_ns, env);
+ uri = AXIS2_OM_NAMESPACE_GET_URI(om_ns, env);
+ printf("\n uri %s \n prefix %s \n",uri, prefix);
+ }
}
return 0;
}
@@ -52,8 +62,10 @@
axis2_om_output_t *om_output = NULL;
axis2_soap_body_t *soap_body = NULL;
axis2_soap_header_t *soap_header = NULL;
- void *ret_value = NULL;
-
+ axis2_soap_header_block_t *header_block = NULL;
+ axis2_om_children_iterator_t *children_iter = NULL;
+ axis2_hash_t *hbs = NULL;
+ int status = AXIS2_SUCCESS;
if(!filename)
return -1;
@@ -75,12 +87,28 @@
soap_envelope = AXIS2_SOAP_BUILDER_GET_SOAP_ENVELOPE(soap_builder, env);
om_node = AXIS2_SOAP_ENVELOPE_GET_BASE_NODE(soap_envelope, env);
- /*
printnode(om_node, env);
soap_header = AXIS2_SOAP_ENVELOPE_GET_HEADER(soap_envelope, env);
- om_node = AXIS2_SOAP_HEADER_GET_BASE_NODE(soap_header, env);
- printnode(om_node, env);
+ if(soap_header)
+ {
+ om_node = AXIS2_SOAP_HEADER_GET_BASE_NODE(soap_header, env);
+ printnode(om_node, env);
+ }
+
+
+ children_iter = AXIS2_SOAP_HEADER_EXAMINE_ALL_HEADER_BLOCKS(soap_header, env);
+ if(children_iter)
+ {
+ while(AXIS2_OM_CHILDREN_ITERATOR_HAS_NEXT(children_iter, env))
+ {
+ om_node = AXIS2_OM_CHILDREN_ITERATOR_NEXT(children_iter, env);
+ printnode(om_node, env);
+ }
+ }
+
+
+
soap_body = AXIS2_SOAP_ENVELOPE_GET_BODY(soap_envelope, env);
if (soap_body)
@@ -95,39 +123,16 @@
printf ("\n\n ERROR soap_body NULL.\n\n");
return AXIS2_FAILURE;
}
- */
- while(!(AXIS2_OM_STAX_BUILDER_IS_COMPLETE(om_builder, env)) && !(AXIS2_OM_NODE_GET_BUILD_STATUS(om_node, env)))
+
+
+ /*
+ while(!(AXIS2_OM_NODE_GET_BUILD_STATUS(om_node, env)) && !(AXIS2_OM_STAX_BUILDER_IS_COMPLETE(om_builder, env)))
{
- ret_value = AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- if(!ret_value)
+ status = AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
+ if(status == AXIS2_FAILURE)
printf("%s" ,AXIS2_ERROR_GET_MESSAGE((*env)->error));
}
- /*
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);
- AXIS2_SOAP_BUILDER_NEXT(soap_builder, env);*/
+ */
xml_writer = axis2_xml_writer_create_for_memory(env, NULL, AXIS2_FALSE, AXIS2_FALSE);
om_output = axis2_om_output_create( env, xml_writer);
@@ -198,5 +203,6 @@
*/
build_soap(&env, filename,uri);
printf("\n");
+ getchar();
return 0;
}