[Mono-bugs] [Bug 78042][Wis] New - SOAP list result error. Mono expects response namespace, but it shouldn't

bugzilla-daemon at bugzilla.ximian.com bugzilla-daemon at bugzilla.ximian.com
Fri Apr 7 09:53:15 EDT 2006

Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by krzymkowski at kontinuum.pl.


--- shadow/78042	2006-04-07 09:53:15.000000000 -0400
+++ shadow/78042.tmp.19029	2006-04-07 09:53:15.000000000 -0400
@@ -0,0 +1,69 @@
+Bug#: 78042
+Product: Mono: Class Libraries
+Version: 1.1
+OS Details: Gentoo amd64
+Status: NEW   
+Priority: Wishlist
+Component: Sys.Web.Services
+AssignedTo: lluis at ximian.com                            
+ReportedBy: krzymkowski at kontinuum.pl               
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+Summary: SOAP list result error. Mono expects response namespace, but it shouldn't
+Description of Problem: 
+Mono expects that sub-elements of a SOAP response are in the response
+namespace. .NET expects no namespace. Please see attached SOAP responses.
+mono.soap works only on mono, dotnet.soap works only on .NET.
+The Service.wsdl and the responses are files is generated using gSOAP.
+Steps to reproduce the problem:
+1. Place files dotnet.soap on a HTTP server. The file simulates a SOAP response
+2. Enter the URL of the uploaded file in "Web References/test/Service.cs"
+(in the Service constructor)
+3. Compile attached C# files: 
+mcs main.cs Web\ References/test/Service.cs  /r:System.Web.Services
+4. Run mono main.exe
+Actual Results:
+recived null
+Expected Results:
+        1: init
+        2: bash
+        4: mc
+How often does this happen? 
+Additional Information:
+This was tested against SVN HEAD version of mono & mcs.
+I've done a bit of research. This is what I found out:
+In XmlSerializationReaderInterpreter.cs, method ReadMembers, in the
+"while (Reader.NodeType != System.Xml.XmlNodeType.EndElement && (ind <
+maxInd))" loop  there's a statement (line:365)
+info = map.GetElement (Reader.LocalName, Reader.NamespaceURI);
+AFAIK map holds information about expected xml elements. In "map" the
+element <out> (see the SOAP response file dotnet.soap) is remembered with
+the "http://kontinuum.pl/axsmonitorsvc" namespace. This is wrong. The
+map.GetElement(...) method is called with LocalName=="out" and
+NamespaceURI=="" and thus returns null. 
+So the source of the problem probably lays in the way "map" is filled. 
+This is what I know:
+a) "map" is a System.Xml.Serialization.ClassMap type.
+b) It is probably filled in XmlReflectionImporter.ImportMembersMapping
+This might be more of a System.XML bug, but a simple run of XmlTextReader
+on dotnet.soap file yields valid results. That is the element <out> in in
+namespace "".

More information about the mono-bugs mailing list