From: "NAKAMURA, Hiroshi" Date: 2001-12-20T10:55:06+09:00 Subject: [ruby-talk:29048] Re: Best way to do XML-RPC Hi Sean, Although you don't like SOAP, SOAP4R will support REXML based parsing. I heavyly am looking forward to see maki's SAX2 to be released... > From: Sean Russell [mailto:ser@germane-software.com] > Sent: Wednesday, December 19, 2001 11:46 PM > Personally, I don't like SOAP. I believe the standard is overly complex. Definitely. No namespace, no user type information and no multi-ref data in XML-RPC is for simplicity. It is PROS of XML-RPC, not CONS. It contributes to interoperability and processing speed. I have once chosen XML-RPC in a project. Clients who use my(our) service had broad experience in the domain it treats. No namespace and no user type information would seem to not cause confusion. I can design data structure without multi-ref. Name of this project is, RAA XML interface. :) I choose SOAP when I need user type information and multi-ref. Hope this helps, // NaHi PS. Sample of multi-ref marshalling and unmarshalling in SOAP. require 'soap/marshal' # You must install SOAP4R and (NQXML or XMLParser) class Node; include SOAP::Marshallable attr_reader :first, :second def initialize( *initNext ) @first = initNext[0] @second = initNext[1] end end n9 = Node.new n81 = Node.new( n9 ) n82 = Node.new( n9 ) n7 = Node.new( n81, n82 ) n61 = Node.new( n7 ) n62 = Node.new( n7 ) n5 = Node.new( n61, n62 ) n41 = Node.new( n5 ) n42 = Node.new( n5 ) n3 = Node.new( n41, n42 ) n21 = Node.new( n3 ) n22 = Node.new( n3 ) n1 = Node.new( n21, n22 ) marshalledString = SOAP::Marshal.marshal( n1 ) clonedNode = SOAP::Marshal.unmarshal( marshalledString ) p clonedNode.first.first.__id__ p clonedNode.second.first.__id__