Good morning from Japan,

> From: NAKAMURA, Hiroshi [mailto:nahi / keynauts.com] 
> Sent: Wednesday, April 10, 2002 3:36 PM

> I'll release 1.4.3 tonight .
> 
> I tested it with REXML/2.0.*.  Since REXML seems to be
> changed around CES handling recently, it might not work
> with REXML/2.1.*.  I'll try 2.1.* tonight, too.

Works fine.  For now, SOAP4R transport reads all source
string and converts it to UTF8 then pass it to REXML
processor.  So it is not streaming.  I should walk REXML
source and bring out its power.

> IIRC, XMLRPC::Parser in xmlrpc4r is enough simple to
> add other XML processor support.  Is MNeumann in
> vacation after their good hard work?  No one did it yet?

Patch.  Try;
(Server|Client)#set_parser( XMLRPC::XMLParser::REXMLStreamParser )
It does not support AbstractTreeParser because I don't
know REXML's tree API well yet...

diff -u2pr xmlrpc.dist/parser.rb xmlrpc/parser.rb
--- xmlrpc.dist/parser.rb	Wed Jan 30 01:55:42 2002
+++ xmlrpc/parser.rb	Thu Apr 11 10:50:06 2002
@@ -620,4 +620,38 @@ module XMLRPC
     end # class NQXMLStreamParser
 
+    class REXMLStreamParser < AbstractStreamParser
+      def initialize
+        require "rexml/streamlistener"
+        require "rexml/document"
+        @parser_class = XMLRPCParser
+	XMLRPCParser.instance_eval { include REXML::StreamListener }
+      end
+
+      class XMLRPCParser 
+        include StreamParserMixin
+
+        def parse(str)
+	  REXML::Document.parse_stream(str, self)
+	end
+
+	def tag_start( name, attrs )
+	  startElement(name, attrs)
+	end
+
+	def tag_end( name )
+	  endElement(name)
+	end
+
+	def text(text)
+	  @data = text
+	end
+
+	def xmldecl(version, encoding, standalone)
+	  # I don't know how it should be processed in XML-RPC world.
+	end
+      end # class XMLRPCParser
+
+    end # class REXMLStreamParser
+
     class XMLTreeParser < AbstractTreeParser
 

Here is another patch to reduce warning.

diff -u2pr xmlrpc.dist/httpserver.rb xmlrpc/httpserver.rb
--- xmlrpc.dist/httpserver.rb	Wed Jan 30 01:55:42 2002
+++ xmlrpc/httpserver.rb	Thu Apr 11 10:07:40 2002
@@ -67,4 +67,6 @@ private
       @status = status
       @header = Table.new
+      @body = nil
+      @status_message = nil
     end
   end
diff -u2pr xmlrpc.dist/utils.rb xmlrpc/utils.rb
--- xmlrpc.dist/utils.rb	Wed Jan 30 01:55:42 2002
+++ xmlrpc/utils.rb	Thu Apr 11 10:08:36 2002
@@ -114,5 +114,5 @@ module XMLRPC
       raise "No interface specified" if p.nil?
       super(prefix)
-      instance_eval &p
+      instance_eval(&p)
     end


Regards,
// NaHi