><?xml version="1.0" encoding="utf-8"?> ><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> > <soap:Body> > <stopGenerate xmlns="http://instrument1.orbit-lab.org/OrbitWS/"> > <request_id>string</request_id> > </stopGenerate> > </soap:Body> ></soap:Envelope> > > However, our SOAP request looks like: > ><?xml version="1.0" encoding="utf-8" ?> ><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > <env:Body> > <n1:stopGenerate > xmlns:n1="http://instrument1.orbit-lab.org/OrbitWS/"> > </n1:stopGenerate> > </env:Body> ></env:Envelope> How would the call to stopGenerate know that '1' is a request id? I have had success with using Structs. Request = Struct.new(:request_id) soap.stopGenerate(Request.new('1')) Hth, Kero.