You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by na...@apache.org on 2006/04/21 08:14:15 UTC
svn commit: r395791 - in /webservices/axis2/trunk/c/modules/xml/soap:
soap_header.c soap_header_block.c
Author: nandika
Date: Thu Apr 20 23:14:13 2006
New Revision: 395791
URL: http://svn.apache.org/viewcvs?rev=395791&view=rev
Log:
soap_header changed to fix jira issue 133
Modified:
webservices/axis2/trunk/c/modules/xml/soap/soap_header.c
webservices/axis2/trunk/c/modules/xml/soap/soap_header_block.c
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=395791&r1=395790&r2=395791&view=diff
==============================================================================
--- webservices/axis2/trunk/c/modules/xml/soap/soap_header.c (original)
+++ webservices/axis2/trunk/c/modules/xml/soap/soap_header.c Thu Apr 20 23:14:13 2006
@@ -173,7 +173,7 @@
axis2_om_element_t *this_ele = NULL;
axis2_om_node_t *this_node = NULL;
-
+ axis2_om_node_t *body_node = NULL;
axis2_om_node_t *parent_node = NULL;
axis2_om_element_t *parent_ele = NULL;
@@ -193,21 +193,27 @@
parent_node = AXIS2_SOAP_ENVELOPE_GET_BASE_NODE(envelope, env);
- if(!parent_node || AXIS2_OM_NODE_GET_NODE_TYPE(parent_node, env) != AXIS2_OM_ELEMENT)
+ if(!parent_node ||
+ AXIS2_OM_NODE_GET_NODE_TYPE(parent_node, env) != AXIS2_OM_ELEMENT)
{
AXIS2_SOAP_HEADER_FREE(header, env);
return NULL;
}
- parent_ele = (axis2_om_element_t *)AXIS2_OM_NODE_GET_DATA_ELEMENT(parent_node, env);
+ parent_ele = (axis2_om_element_t *)
+ AXIS2_OM_NODE_GET_DATA_ELEMENT(parent_node, env);
if(!parent_ele)
{
AXIS2_SOAP_HEADER_FREE(header, env);
return NULL;
}
-
+ if(NULL != AXIS2_OM_NODE_GET_FIRST_CHILD(parent_node, env))
+ {
+ body_node = AXIS2_OM_NODE_GET_FIRST_CHILD(parent_node, env);
+ AXIS2_OM_NODE_DETACH(body_node, env);
+ }
+
parent_ns = AXIS2_OM_ELEMENT_GET_NAMESPACE(parent_ele, env, parent_node);
-
this_ele = axis2_om_element_create(env, parent_node,
AXIS2_SOAP_HEADER_LOCAL_NAME, parent_ns, &this_node);
if(!this_ele)
@@ -217,9 +223,12 @@
}
header_impl->om_ele_node = this_node;
-
axis2_soap_envelope_set_header(envelope, env, header);
+ if(NULL != body_node)
+ {
+ AXIS2_OM_NODE_ADD_CHILD(parent_node, env, body_node);
+ }
return &(header_impl->soap_header);
}
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=395791&r1=395790&r2=395791&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 Thu Apr 20 23:14:13 2006
@@ -412,6 +412,10 @@
{
axis2_soap_header_block_impl_t *header_block_impl = NULL;
axis2_om_attribute_t* om_attr = NULL;
+ axis2_om_node_t *header_node = NULL;
+ axis2_om_element_t *header_ele = NULL;
+ axis2_om_namespace_t *header_ns = NULL;
+ axis2_char_t *prefix = NULL;
axis2_qname_t *qn = NULL;
axis2_om_namespace_t *om_ns = NULL;
axis2_om_element_t *om_ele = NULL;
@@ -420,8 +424,26 @@
AXIS2_PARAM_CHECK((*env)->error, attr_name, AXIS2_FAILURE);
header_block_impl = AXIS2_INTF_TO_IMPL(header_block);
+
+ header_node = AXIS2_OM_NODE_GET_PARENT(header_block_impl->om_ele_node, env);
+ if(!header_node)
+ {
+ return AXIS2_FAILURE;
+ }
+ if(AXIS2_OM_NODE_GET_NODE_TYPE(header_node, env) == AXIS2_OM_ELEMENT)
+ {
+ header_ele = (axis2_om_element_t*)AXIS2_OM_NODE_GET_DATA_ELEMENT(header_node, env);
+ if(!header_ele)
+ {
+ return AXIS2_FAILURE;
+ }
+ header_ns = AXIS2_OM_ELEMENT_GET_NAMESPACE(header_ele, env, header_node);
+ if(!header_ns)
+ return AXIS2_FAILURE;
+ prefix = AXIS2_OM_NAMESPACE_GET_PREFIX(header_ns, env);
+ }
- qn = axis2_qname_create(env, attr_name, soap_envelope_namespace_uri, NULL);
+ qn = axis2_qname_create(env, attr_name, soap_envelope_namespace_uri, prefix);
if(!qn)
return AXIS2_FAILURE;
@@ -470,6 +492,10 @@
axis2_soap_header_block_impl_t *header_block_impl = NULL;
axis2_om_attribute_t* om_attr = NULL;
axis2_char_t *attr_value = NULL;
+ axis2_om_node_t *header_node = NULL;
+ axis2_om_element_t *header_ele = NULL;
+ axis2_om_namespace_t *header_ns = NULL;
+ axis2_char_t *prefix = NULL;
axis2_qname_t *qn = NULL;
axis2_om_element_t *om_ele = NULL;
AXIS2_ENV_CHECK(env, NULL);
@@ -477,7 +503,24 @@
AXIS2_PARAM_CHECK((*env)->error, soap_envelope_namespace_uri, NULL);
header_block_impl = AXIS2_INTF_TO_IMPL(header_block);
- qn = axis2_qname_create(env, attr_name, soap_envelope_namespace_uri, NULL);
+ header_node = AXIS2_OM_NODE_GET_PARENT(header_block_impl->om_ele_node, env);
+ if(!header_node)
+ {
+ return AXIS2_FAILURE;
+ }
+ if(AXIS2_OM_NODE_GET_NODE_TYPE(header_node, env) == AXIS2_OM_ELEMENT)
+ {
+ header_ele = (axis2_om_element_t*)AXIS2_OM_NODE_GET_DATA_ELEMENT(header_node, env);
+ if(!header_ele)
+ {
+ return AXIS2_FAILURE;
+ }
+ header_ns = AXIS2_OM_ELEMENT_GET_NAMESPACE(header_ele, env, header_node);
+ if(!header_ns)
+ return AXIS2_FAILURE;
+ prefix = AXIS2_OM_NAMESPACE_GET_PREFIX(header_ns, env);
+ }
+ qn = axis2_qname_create(env, attr_name, soap_envelope_namespace_uri, prefix);
if(!qn)
return NULL;
om_ele = (axis2_om_element_t *)AXIS2_OM_NODE_GET_DATA_ELEMENT(