3

我在理解 wsdl 中的soap:addresshttp:address标记之间的区别时遇到了一些问题。可以互换吗?我可以使用soap:address代替http:address吗?

4

1 回答 1

4

简短的回答

不,你不能。它们不可互换。它们属于不同的 WSDL 绑定。

长答案

WSDL 格式不绑定到特定协议。相反,它可以扩展为与各种协议结合使用,例如 SOAP、HTTP 和 MIME。这种扩展称为绑定。绑定定义了用于与 Web 服务通信的协议和消息格式。每个 Binding 都有一个命名空间和关联的命名空间前缀添加到标签。命名空间前缀和标签用冒号分隔。所以,soap:address标记中的soap命名空间前缀表明它属于SOAP Binding 和http:address中的http命名空间前缀tag 表示它属于 HTTP Binding。您不能将它们混合在一个 Binding 中,因为根据 WSDL 规范,一个 Binding 必须准确指定一个协议。但是您可以为一个 portType 设置不同的绑定。

链接

  1. WSDL 1.1 规范
  2. WSDL 1.2 规范:绑定
于 2012-05-14T19:07:31.603 回答