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 pr...@apache.org on 2006/01/25 17:49:31 UTC

svn commit: r372270 - in /webservices/axis/trunk/c/src/soap: SoapDeSerializer.cpp SoapDeSerializer.h

Author: prestonf
Date: Wed Jan 25 08:46:51 2006
New Revision: 372270

URL: http://svn.apache.org/viewcvs?rev=372270&view=rev
Log:
Changes for RPC deserialisation.

Modified:
    webservices/axis/trunk/c/src/soap/SoapDeSerializer.cpp
    webservices/axis/trunk/c/src/soap/SoapDeSerializer.h

Modified: webservices/axis/trunk/c/src/soap/SoapDeSerializer.cpp
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/soap/SoapDeSerializer.cpp?rev=372270&r1=372269&r2=372270&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/soap/SoapDeSerializer.cpp (original)
+++ webservices/axis/trunk/c/src/soap/SoapDeSerializer.cpp Wed Jan 25 08:46:51 2006
@@ -739,7 +739,7 @@
         const char* elementName = peekNextElementName();
         if(strcmp(elementName, pName) == 0)
         {
-            getElement(pName, pNamespace, pSimpleType);
+            getElement(pName, pNamespace, pSimpleType, true);
             void * pValue = pSimpleType->getValue();
             pArray->addElement(pValue);
             Axis::AxisDelete(pValue, pSimpleType->getType());
@@ -1603,7 +1603,8 @@
 
 void SoapDeSerializer::getElement (const AxisChar * pName,
                               const AxisChar * pNamespace,
-                              IAnySimpleType * pSimpleType)
+                              IAnySimpleType * pSimpleType,
+							  bool isArrayElement)
 {
     if (AXIS_SUCCESS != m_nStatus)
         return;
@@ -1633,7 +1634,7 @@
 			}
 		}
 
-        if (bNillFound || (pSimpleType->getType() == getXSDType (m_pNode)))
+        if (bNillFound || isArrayElement || (pSimpleType->getType() == getXSDType (m_pNode)))
         {
 				m_pNode = m_pParser->next (true);   /* charactor node */
 				if (m_pNode && (CHARACTER_ELEMENT == m_pNode->m_type))

Modified: webservices/axis/trunk/c/src/soap/SoapDeSerializer.h
URL: http://svn.apache.org/viewcvs/webservices/axis/trunk/c/src/soap/SoapDeSerializer.h?rev=372270&r1=372269&r2=372270&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/soap/SoapDeSerializer.h (original)
+++ webservices/axis/trunk/c/src/soap/SoapDeSerializer.h Wed Jan 25 08:46:51 2006
@@ -133,7 +133,7 @@
 
     /* Methods used by wrappers to get a deserialized value of basic types */
     void getElement (const AxisChar* pName, const AxisChar* pNamespace, 
-        IAnySimpleType* pSimpleType);
+        IAnySimpleType* pSimpleType, bool isArrayElement = false);
     xsd__int * AXISCALL getElementAsInt(const AxisChar* pName, 
         const AxisChar* pNamespace);
     xsd__boolean * AXISCALL getElementAsBoolean(const AxisChar* pName,