Я в настоящее время строит клиент SOAP в Ruby, используя Савон, но когда я пишу код для генерации XML, мне приходится писать:Savon - ярлык для добавления каждого элемента с пространством имен? (SOAP)
builder = Builder::XmlMarkup.new
builder.ns :request do
builder.ns :Foo do
builder.ns :FooBar do
builder.ns :Bar, "Foo"
end
end
end
генерировать
<ns:request>
<ns:Foo>
<ns:FooBar>
<ns:Bar>Foo</ns:Bar>
</ns:FooBar>
</ns:Foo>
</ns:request>
Это, очевидно, довольно повторяющийся, и, если возможно, я хотел бы вырезать повторы NS. Я также заметил, что без ns мне разрешено использовать фигурные скобки, а не dos/end.
Есть ли способ обойти это? Мне не нравится, что у меня нет возможности использовать фигурные скобки, и когда я добавлю динамический ввод имен элементов позже, это может усложнить ситуацию.
Я попытался
def send_builder(requestsym, data=nil)
@@builder requestsym, data
end
Но мое знание блоков/проки/лямбды не достаточно хорошо, чтобы сделать эту работу с вложенными элементами.
Пожалуйста, скажите мне что-нибудь, вы пытаетесь правильно построить XML своего запроса? – SsouLlesS