• WSDL


    一个 WSDL 文档的主要结构是类似这样的:

    <definitions>
    
    <types>
       definition of types........
    </types>
    
    <message>
       definition of a message....
    </message>
    
    <portType>
       definition of a port.......
    </portType>
    
    <binding>
       definition of a binding....
    </binding>
    
    </definitions>


    WSDL 端口

    <portType> 元素是最重要的 WSDL 元素。

    它可描述一个 web service、可被执行的操作,以及相关的消息

    端口定义了指向某个 web service 的连接点。可以把该元素比作传统编程语言中的一个函数库(或一个模块、或一个类),而把每个操作比作传统编程语言中的一个函数。

    操作类型

    请求-响应是最普通的操作类型,不过 WSDL 定义了四种类型:

    类型定义
    One-way 此操作可接受消息,但不会返回响应。
    Request-response 此操作可接受一个请求并会返回一个响应
    Solicit-response 此操作可发送一个请求,并会等待一个响应。
    Notification

    此操作可发送一条消息,但不会等待响应。

    One-Way 操作

    一个 one-way 操作的例子:

    <message name="newTermValues">
       <part name="term" type="xs:string"/>
       <part name="value" type="xs:string"/>
    </message>
    
    <portType name="glossaryTerms">
       <operation name="setTerm">
          <input name="newTerm" message="newTermValues"/>
       </operation>
    </portType >

    在这个例子中,端口 "glossaryTerms" 定义了一个名为 "setTerm" 的 one-way 操作。

    这个 "setTerm" 操作可接受新术语表项目消息的输入,这些消息使用一条名为 "newTermValues" 的消息,此消息带有输入参数 "term" 和 "value"。不过,没有为这个操作定义任何输出。

    绑定到 SOAP

    一个 请求 - 响应 操作的例子:

    <message name="getTermRequest">
       <part name="term" type="xs:string" />
    </message>
    
    <message name="getTermResponse">
       <part name="value" type="xs:string" />
    </message>
    
    <portType name="glossaryTerms">
      <operation name="getTerm">
          <input message="getTermRequest" />
          <output message="getTermResponse" />
      </operation>
    </portType>
    
    <binding type="glossaryTerms" name="b1">
    <soap:binding style="document"
    transport="http://schemas.xmlsoap.org/soap/http" />
      <operation>
        <soap:operation
         soapAction="http://example.com/getTerm" />
        <input>
          <soap:body use="literal" />
        </input>
        <output>
          <soap:body use="literal" />
        </output>
      </operation>
    </binding>

    binding 元素有两个属性 - name 属性和 type 属性。

    name 属性定义 binding 的名称,而 type 属性指向用于 binding 的端口,在这个例子中是 "glossaryTerms" 端口。

    soap:binding 元素有两个属性 - style 属性和 transport 属性。

    style 属性可取值 "rpc" 或 "document"。在这个例子中我们使用 document。transport 属性定义了要使用的 SOAP 协议。在这个例子中我们使用 HTTP。

    operation 元素定义了每个端口提供的操作符。

    对于每个操作,相应的 SOAP 行为都需要被定义。同时您必须如何对输入和输出进行编码。在这个例子中我们使用了 "literal"。

  • 相关阅读:
    利用flashBack恢复误删除(delete)的表数据
    [原创] [YCM] YouCompleteMe安装完全指南
    关于dll的一点收获
    could not deduce template argument for 'const std::_Tree<_Traits> &' from 'const std::string'
    化不利为有利
    突破软件试用期的"土方法"
    网络求职的成功率一般2个月是发1000份简历,有8份面试,2份成功,一个是你不想去的,另一个可能是你相对满意的。
    一个简易的dota改键助手
    linux 版本控制服务-git
    django modelform模块
  • 原文地址:https://www.cnblogs.com/IamThat/p/3016614.html
Copyright © 2020-2023  润新知