it seems to be working for me, thanks.
are there any plans in the works for improving the deserialization of
elements so it isn't dependent upon the order in the XML?
Nadir Amra wrote:
Nicholas,
Please try the latest code in SVN and let me know how it goes.
Nadir K. Amra
Nicholas Hart <[EMAIL PROTECTED]> wrote on 01/24/2007 05:24:52 PM:
I found a problem with how the deserializer deals with arrays and nil
complex objects. in the case of a non-zero array it was failing to skip
the closing tag for the array, so I added a call to skipEndNode() in
that case. Without that, the next element attempted to be parsed was
the close tag from the array.
For parsing complex objects, if it is marked as nil then it shouldn't
attempt to deserialize the object and just return NULL. I found it was
necessary to add the skipEndNode() in that case as well, so that the
next element can be parsed.
I know there's some work going on in the parsing engine--should I file a
bug and attach this patch or wait until the new code is ready for
testing?
Index: src/soap/SoapDeSerializer.cpp
===================================================================
--- src/soap/SoapDeSerializer.cpp (revision 498771)
+++ src/soap/SoapDeSerializer.cpp (working copy)
@@ -706,7 +706,10 @@
delete pSimpleType;
if ( m_nStatus != AXIS_FAIL)
- return Array;
+ {
+ skipEndNode();
+ return Array;
+ }
}
}
else
@@ -755,6 +758,12 @@
m_pNode = m_pParser->next ();
if (!m_pNode)
return NULL;
+
+ if (isNillValue())
+ {
+ skipEndNode();
+ return NULL;
+ }
TRACE_OBJECT_CREATE_FUNCT_ENTRY(pCreFunct, 0);
void *pObject = ((AXIS_OBJECT_CREATE_FUNCT) pCreFunct) (0);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]