[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.
http://bugzilla.ximian.com/show_bug.cgi?id=78042
--- 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:
+OS Details: Gentoo amd64
+Status: NEW
+Resolution:
+Severity:
+Priority: Wishlist
+Component: Sys.Web.Services
+AssignedTo: lluis at ximian.com
+ReportedBy: krzymkowski at kontinuum.pl
+QAContact: mono-bugs at ximian.com
+TargetMilestone: ---
+URL:
+Cc:
+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:
+ist.Length=3
+ 1: init
+ 2: bash
+ 4: mc
+
+
+How often does this happen?
+Always
+
+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
+(XmlReflectionImporter.cs:104)
+
+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