Я смотрю на использование Ruby Savon для SOAP. По чисто мазохистским причинам мне приходится иметь дело с элементами SOAP, имеющими атрибуты.
Итак, нет проблем, на сайте savon docs есть пример, который подчеркивает эту способность:
{ :person => "Eve", :attributes! => { :person => { :id => 666 } } }.to_soap_xml
"<person id=\"666\">Eve</person>"
Моя проблема заключается в том, как установить атрибуты для дочерних элементов, например, скажем, я добавляю дочерний элемент адреса для человека:
{ :person => {:address => ""}, :attributes! => { :person => { :id => 666 } } }.to_soap_xml
Теперь я хочу добавить атрибут id к элементу адреса:
Это не пойдет, если я вложу адрес в хэш атрибутов:
{ :person => {:address => ""}, :attributes! => { :person => { :id => 666, :address => {:id => 44 }} }}.to_soap_xml
Итак, мой вопрос, как я могу получить это?
<person id=666><address id=44></address></person>