Author: atsushi
Date: 2006-11-16 21:21:56 -0500 (Thu, 16 Nov 2006)
New Revision: 68045

Modified:
   trunk/mcs/class/System.XML/System.Xml.Serialization/ChangeLog
   trunk/mcs/class/System.XML/System.Xml.Serialization/XmlSerializationReader.cs
Log:
2006-11-17  Atsushi Enomoto  <[EMAIL PROTECTED]>

        * XmlSerializationReader.cs : (ReadReferencedElement)
          Sometimes there are array types in WSDL, which are not reflected
          in client proxies. In SOAP messages, they are marked
          soap-env:arrayType, so use it (this could coexist with xsi:type,
          which indicates the type in WSDL). Fixed bug #79057.



Modified: trunk/mcs/class/System.XML/System.Xml.Serialization/ChangeLog
===================================================================
--- trunk/mcs/class/System.XML/System.Xml.Serialization/ChangeLog       
2006-11-17 01:33:16 UTC (rev 68044)
+++ trunk/mcs/class/System.XML/System.Xml.Serialization/ChangeLog       
2006-11-17 02:21:56 UTC (rev 68045)
@@ -1,3 +1,11 @@
+2006-11-17  Atsushi Enomoto  <[EMAIL PROTECTED]>
+
+       * XmlSerializationReader.cs : (ReadReferencedElement)
+         Sometimes there are array types in WSDL, which are not reflected
+         in client proxies. In SOAP messages, they are marked
+         soap-env:arrayType, so use it (this could coexist with xsi:type,
+         which indicates the type in WSDL). Fixed bug #79057.
+
 2006-11-15  Atsushi Enomoto  <[EMAIL PROTECTED]>
 
        * XmlSerializationReader.cs : implement ToByteArray[Base64|Hex]().

Modified: 
trunk/mcs/class/System.XML/System.Xml.Serialization/XmlSerializationReader.cs
===================================================================
--- 
trunk/mcs/class/System.XML/System.Xml.Serialization/XmlSerializationReader.cs   
    2006-11-17 01:33:16 UTC (rev 68044)
+++ 
trunk/mcs/class/System.XML/System.Xml.Serialization/XmlSerializationReader.cs   
    2006-11-17 02:21:56 UTC (rev 68045)
@@ -483,7 +483,16 @@
                        string id = Reader.GetAttribute ("id");
                        object ob;
 
-                       if (qname == arrayQName)
+                       // it takes precedence over xsi:type.
+                       // Sometimes there are array types in WSDL,
+                       // which are not reflected in client proxies.
+                       // In SOAP messages, they are marked
+                       // soap-env:arrayType, so use it (this could coexist
+                       // with xsi:type, which indicates the type in WSDL).
+                       // See bug #79057.
+                       string arrayTypeVal = Reader.GetAttribute (arrayType, 
soapNS);
+
+                       if (qname == arrayQName || arrayTypeVal != null && 
arrayTypeVal.Length > 0)
                        {
                                CollectionFixup fixup = (collFixups != null) ? 
(CollectionFixup) collFixups[id] : null;
                                if (ReadList (out ob))

_______________________________________________
Mono-patches maillist  -  Mono-patches@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to