基于样式/使用的SOAP请求/响应

时间:2011-06-10 18:57:48

标签: soap wsdl

我想知道是否有人可以使用以下wsdl绑定样式/ use来解释Web服务的SOAP请求/响应中的差异:

  1. 文档/文字
  2. RPC /文字
  3. 包装文档样式
  4. 提前致谢

1 个答案:

答案 0 :(得分:3)

IBM DeveloperWorks [Which style of WSDL should I use?]的这篇文章对这些绑定样式之间的差异进行了很好的解释。简而言之,唯一的区别是WSDL文件中SOAP绑定“style”属性(“rpc”或“document”)的值以及消息参数和返回值的定义方式(以及它们如何出现在SOAP消息本身):

[请注意重新排序问题中的项目以强调关系]

  1. RPC / literal - WSDL消息元素定义操作的参数和返回值。
    • PROS:简单的WSDL,操作名称出现在SOAP消息中,符合WS-I。
    • 缺点:难以验证,因为参数是在WSDL中定义的而不是XSD。
  2. Document / literal - WSDL消息部分是对XML Schema中定义的元素的引用。
    • PROS:使用XSD轻松验证,符合WS-I但允许破损。
    • CONS:复杂的WSDL,SOAP消息不包含操作名称。
  3. 文档/文字包装(或“包装文档样式”) - WSDL消息输入具有单个输入和输出参数,输入引用与WSDL操作具有相同本地名称的XSD元素。
    • PROS:易于验证,SOAP消息包含操作名称,符合WS-I。
    • 缺点:最复杂的WSDL(不是官方风格,而是惯例)。
  4. 根据我的经验,#3(Document / literal Wrapped)在大型企业项目中非常常见,因为它既适用于Microsoft,又适合OSS,非常适合自上而下的开发模型(例如WSDL / XSD,然后是生成代码工件)。微软发明了它 [1] ,流行的Java / OSS工具(Axis2JAX-WS)明确支持它。

    “现实世界”的差异可能取决于您所选择的工具支持哪些样式 - 以及如何 -