Hi Kero:

Thanks a lot. That worked out. Would you know how to pass an array of
strings as argument? I am trying to the following:

Request = Struct.new(:request_id, :names, :values)
result = soap_client.stopGenerate(Request.new("1", ["POWER", "FREQ"],
["-15", "5.18GHz"]))
puts result.inspect

This should generate the following SOAP request:

<?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>
    <Generate xmlns="http://instrument1/OrbitWS/">
      <request_id>string</request_id>
      <names>
        <string>string</string>
        <string>string</string>
      </names>
      <values>
        <string>string</string>
        <string>string</string>
      </values>
    </Generate>
  </soap:Body>
</soap:Envelope>

However, it creates the following:

<?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:Generate xmlns:n1="http://instrument1.orbit-lab.org/OrbitWS/">
      <n1:request_id>1</n1:request_id>
      <n1:names>
        <n1:string></n1:string>
      </n1:names>
      <n1:values>
        <n1:string></n1:string>
      </n1:values>
    </n1:Generate>
  </env:Body>
</env:Envelope>

Thanks,
Kishore