`
icarusliu
  • 浏览: 231727 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

wsdl文档结构

阅读更多

WSDL 文档结构

WSDL 文档是利用这些主要的元素来描述某个 web service 的:

元素定义
<portType> web service 执行的操作
<message> web service 使用的消息
<types> web service 使用的数据类型
<binding> web service 使用的通信协议

一个 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 文档可包含其它的元素,比如 extension 元素,以及一个 service 元素,此元素可把若干个 web services 的定义组合在一个单一的 WSDL 文档中。

如需完整的语法概述,请访问 WSDL 语法 这一节。

WSDL 端口

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

 

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

 

可以把 <portType> 元素比作传统编程语言中的一个函数库(或一个模块、或一个类)。

 

WSDL 消息

<message> 元素定义一个操作的数据元素。

 

每个消息均由一个或多个部件组成。可以把这些部件比作传统编程语言中一个函数调用的参数。

WSDL types

<types> 元素定义 web service 使用的数据类型。

 

为了最大程度的平台中立性,WSDL 使用 XML Schema 语法来定义数据类型。

 

WSDL Bindings

<binding> 元素为每个端口定义消息格式和协议细节。

 

WSDL 实例

这是某个 WSDL 文档的简化的片段:

 

<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>

在这个例子中,<portType> 元素把 "glossaryTerms" 定义为某个端口的名称,把 "getTerm" 定义为某个操作的名称。

操作 "getTerm" 拥有一个名为 "getTermRequest" 的输入消息,以及一个名为 "getTermResponse" 的输出消息

<message> 元素可定义每个消息的部件,以及相关联的数据类型。

对比传统的编程,glossaryTerms 是一个函数库,而 "getTerm" 是带有输入参数 "getTermRequest" 和返回参数 getTermResponse 的一个函数。

 

 

WSDL 端口可描述由某个 web service 提供的界面(合法操作)。

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"。不过,没有为这个操作定义任何输出。

Request-Response 操作

一个 request-response 操作的例子:

<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>

在这个例子中,端口 "glossaryTerms" 定义了一个名为 "getTerm" 的 request-response 操作。

"getTerm" 操作会请求一个名为 "getTermRequest" 的输入消息,此消息带有一个名为 "term" 的参数,并将返回一个名为 "getTermResponse" 的输出消息,此消息带有一个名为 "value" 的参数。

 

 

WSDL 绑定可为 web service 定义消息格式和协议细节。

绑定到 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"。

分享到:
评论
1 楼 RangerWolf 2012-06-05  
非常感谢啊!

相关推荐

    Web服务中的WSDL文档结构分析

    解析Web服务中WSDL的具体作用,以及WSDL文档的基本结构,分析每个元素文件的作用。WSDL是Web服务描述语言,由XML语言编写的文档。这种文档用来描述某个Web service,规定其服务的位置,以及此服务所提供的操作。

    wsdl中文文档

    wsdl中文文档,详细介绍了wsdl文档的结构和用法。

    WebService之WSDL自学笔记

    本人自学WebService之WSDL自学笔记。内有详细的例子解析,下面为文档目录。...1.1 WSDL 文档结构 2 1.1.1 WSDL Bindings 3 1.1.2 WSDL 端口 4 1.1.3 WSDL 消息 4 1.1.4 WSDL types 4 1.2 WSDL 实例 5

    WebService描述语言WSDL详解

    WebService描述语言WSDL详解,包括WSDL文档结构,每个关键节点的详细解释,很实用的说明文档

    wsdl文件结构分析

    WSDL (Web Services Description Language,Web服务描述语言)是一种XML Application,他将Web服务描述定义为一组服务访问点,客户端可以通过这些服务访问点对... 本文将详细讲解WSDL文档的结构,并分析每个元素的作用。

    WSDL学习文档(学习web服务必用)

    WSDL (Web Services Description Language,Web服务描述语言)是一种XML Application,他将Web服务描述定义为一组服务访问点,客户端可以通过这些服务访问点对... 本文将详细讲解WSDL文档的结构,并分析每个元素的作用。

    Java Web服务构建与运行(高清中文版).part1.rar

     2.2 WSDL文档结构 36  2.3 Amazon E-Commerce Web服务  2.4 wsgen工具与JAX-B工件(Artifacts)  2.5 WSDL总结 2.6 下一章 第3章 SOAP消息编程 3.1 SOAP是否真地不可见 3.2 在SOAP 1.2下实现RabbitCounter...

    Java Web服务构建与运行(高清中文版).part2.rar

     2.2 WSDL文档结构 36  2.3 Amazon E-Commerce Web服务  2.4 wsgen工具与JAX-B工件(Artifacts)  2.5 WSDL总结 2.6 下一章 第3章 SOAP消息编程 3.1 SOAP是否真地不可见 3.2 在SOAP 1.2下实现RabbitCounter...

    Java Web服务构建与运行(高清中文版).part5.rar

     2.2 WSDL文档结构 36  2.3 Amazon E-Commerce Web服务  2.4 wsgen工具与JAX-B工件(Artifacts)  2.5 WSDL总结 2.6 下一章 第3章 SOAP消息编程 3.1 SOAP是否真地不可见 3.2 在SOAP 1.2下实现RabbitCounter...

    Java Web服务构建与运行(高清中文版).part3.rar

     2.2 WSDL文档结构 36  2.3 Amazon E-Commerce Web服务  2.4 wsgen工具与JAX-B工件(Artifacts)  2.5 WSDL总结 2.6 下一章 第3章 SOAP消息编程 3.1 SOAP是否真地不可见 3.2 在SOAP 1.2下实现RabbitCounter...

    Java Web服务构建与运行(高清中文版).part4.rar

     2.2 WSDL文档结构 36  2.3 Amazon E-Commerce Web服务  2.4 wsgen工具与JAX-B工件(Artifacts)  2.5 WSDL总结 2.6 下一章 第3章 SOAP消息编程 3.1 SOAP是否真地不可见 3.2 在SOAP 1.2下实现RabbitCounter...

    wsdl教程文档

    wsdl文档的结构详解,对开发web service应用程序有很大帮助

    Web Services 教程

    WSDL 文档结构 16 WSDL 端口 17 WSDL 消息 17 WSDL types 17 WSDL Bindings 18 WSDL 实例 18 WSDL 端口 18 WSDL 端口 19 操作类型 19 One-Way 操作 19 Request-Response 操作 20 WSDL 绑定 20 绑定到 SOAP 21 WSDL ...

    wsdl4j-1.6.3-API文档-中文版.zip

    赠送jar包:wsdl4j-1.6.3.jar; 赠送原API文档:wsdl4j-1.6.3-javadoc.jar; 赠送源代码:wsdl4j-1.6.3-sources.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    WSDL表示模型与实现方法 (2003年)

    首次提出WSDL形式化模型,提出一种新的集合———Services集,该集合采用严格的数学方法来定义WSDL文档,采用Services集合可以作为WSDL表示模型,严格、准确地形式化表示WSDL文档结构和实现 WSDL机制的程序语义 。...

    WSDL开发技术详解

    WSDL (Web Services Description Language,Web服务描述语言)是一种XML Application,他将Web服务描述定义为一组服务访问点,客户端可以通过这些服务访问点对... 本文将详细讲解WSDL文档的结构,并分析每个元素的作用

    wsdl详解(webservice)

    wsdl 详细介绍 WSDL (Web Services Description Language,Web服务描述语言)是一种XML Application,他将Web服务描述定义为一组服务访问点,客户端可以通过... 本文将详细讲解WSDL文档的结构,并分析每个元素的作用。

    onvif_wsdl下载方法

    很多人想下载onvif 的wsdl,但每次从官方网站点击进去都得到一个网页,而不是弹出一个下载页面,本文档简单说明一下onvif 的wsdl 文档下载方法。

Global site tag (gtag.js) - Google Analytics