From: Kero Date: 2005-11-03T07:17:09+09:00 Subject: soap + wsdl troubles Hi all, When using wsdl and soap, I fail to get the contents of a second item (an array) in a struct across the wire. I see service@house:vision as you can see the content of observationEvents is missing. If I dump the Observation w/ SOAPMarshall, I see this Observation service@house:vision ObservationEvent service@house:vision .... where the observationEvents are available, but as "anyType". What I want (i.e. given as an example for the service that should work), is this: string string ..... I have absolutely no idea how to obtain this. The marshalled stuff is not what is going over the wire. 1) What's the difference between the marshalled snippet and what is going across the wire, anyway? 2) How do I pass the array? ruby 1.8.3 (2005-09-21) [i486-linux] (on debian testing) Regards, Kero. The (simplified) code to produce the first two xml snippets this is: require 'soap/marshal' require 'soap/wsdlDriver' require 'time' server = "prc67241668" port = 8080 service = "ILSA/ilsaservice.asmx" url = "http://#{server}:#{port}/#{service}" wsdl_url = "#{url}?WSDL" client = SOAP::WSDLDriverFactory.new(wsdl_url).create_rpc_driver client.wiredump_dev = STDERR Observation = Struct.new(:observerSenderGUID, :observationEvents) class Observation include SOAP::Marshallable end ObservationEvent = Struct.new(:observerStationGUID # snip rest of fields ) class ObservationEvent include SOAP::Marshallable end # simplified string for c.l.r purposes event1 = ObservationEvent.new("service@house:vision") ary = [event1] puts SOAP::Marshal.marshal(obs) puts client.addObservation( obs = Observation.new( "urn:ilsa:service@house1.ilsa.com:vision-station-1", ary ) )