Репликация XML-запроса с Savon / Ruby

Я пытаюсь избежать использованияNokogiri/Builder чтобы построить мой XML и хотел бы вместо этого использоватьSavon драгоценный камень с Ruby 2.0.0. У меня есть следующий запрос, который мне нужно повторить:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body>
    <GetList xmlns="http://tempuri.org/">
      <listRequest xmlns:a="http://schemas.datacontract.org/2004/07/Services.List"
             i:type="b:NpsListRequest"
             xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:b="http://schemas.datacontract.org/2004/07/Services.List.Strategies">
        <a:id>1</a:id>         
      </listRequest>
    </GetList>
  </s:Body>
</s:Envelope>

Пока у меня есть это:

  def soap_client
    soap_client = Savon.client(
        wsdl: "http://10.10.10.10/ListApi.svc?wsdl"
        headers: {"Authorization" =>  "Basic"},
        basic_auth: ['username', 'password'],
        env_namespace: :s,
        ssl_verify_mode: :none,
        log: true,
        :pretty_print_xml => true
    )
  end

затемsoap_client.call :get_list, message: {'id' => 1} который возвращает это:

<s:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:tns="http://tempuri.org/"
            xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Body>
    <tns:GetList>
      <id>1</id>
    </tns:GetList>
  </s:Body>
</s:Envelope>

Я не могу понять, как точно повторить первый запрос.tns: пространство имен наGetList неправильно, и я не могу воспроизвести<listRequest xmlns:a = штука тоже. Любые мысли о том, как сделать это в Савоне?

Ответы на вопрос(1)

Ваш ответ на вопрос