zoukankan      html  css  js  c++  java
  • 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"。

  • 相关阅读:
    HDU 1677
    HDU 1672 Cuckoo Hashing
    HDU 2586 + HDU 4912 最近公共祖先
    最大流 Dinic + Sap 模板
    网络流算法小结(转)
    Malformed network data报错解决方法
    js window.open 参数设置
    java图片高质量缩放类
    struts2 I18n问题 国际化
    java.lang.Exception: Socket bind failed 服务器端口冲突-->修改端口
  • 原文地址:https://www.cnblogs.com/IamThat/p/3016614.html
Copyright © 2011-2022 走看看