如何在 Savon 中使用带有 xsi:types 的对象
我正在尝试使用 Savon 发出一些 SOAP 请求,但恐怕我需要在某种程度上超出基础知识。
我需要发送以下内容:
<env:Body>
<wsdl:methodName>
<parameter xsi:type='ValueClass'>value</parameter>
</wsdl:methodName>
</env:Body>
现在,如果我不必指定 xsi:type,那么问题就很简单:
client.method_name { |soap| soap.body = {:parameter => 'value'} }
问题是参数中的 xsi:type;由于我使用的 Web 服务是围绕多态性构建的,因此我需要显式指定参数的类型。有什么方法可以做到这一点(最好不必生成自己的 XML?)我真的很想永远放弃soap4r :)
谢谢!
I'm trying to use Savon to make some SOAP requests, but I'm afraid I need to go beyond the basics somewhat.
I need to send something along the lines of:
<env:Body>
<wsdl:methodName>
<parameter xsi:type='ValueClass'>value</parameter>
</wsdl:methodName>
</env:Body>
Now, if I didn't have to specify that xsi:type, it would be a simple matter of:
client.method_name { |soap| soap.body = {:parameter => 'value'} }
The problem is the xsi:type in the parameter; due to the way the web service I'm using is built around polymorphism, I need to explicitly specify what type the parameter is. Is there any way I can do this (preferably without having to generate my own XML?) I'd really love to drop soap4r for good :)
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在 Hash 中指定 XML 属性非常难看,但这是可能的:
请查看:http: //github.com/rubiii/savon/wiki/SOAP
在 Savon 支持 XML 架构属性之前,我建议您使用 构建器
(Savon 附带)生成 XML:
Specifying XML attributes in a Hash is pretty ugly, but it's possible:
Please have a look at: http://github.com/rubiii/savon/wiki/SOAP
Until Savon supports XML Schema Attributes, I would suggest you to use Builder
(which comes with Savon) to generate your XML: