解析Web接口描述语言WSDL

上传人:z**** 文档编号:124537590 上传时间:2022-07-25 格式:DOC 页数:10 大小:266KB
收藏 版权申诉 举报 下载
解析Web接口描述语言WSDL_第1页
第1页 / 共10页
解析Web接口描述语言WSDL_第2页
第2页 / 共10页
解析Web接口描述语言WSDL_第3页
第3页 / 共10页
资源描述:

《解析Web接口描述语言WSDL》由会员分享,可在线阅读,更多相关《解析Web接口描述语言WSDL(10页珍藏版)》请在装配图网上搜索。

1、一、概述Web服务定义语言(Web Services Definition Language, WSDL)是一个建议性标准,用于描 述Web 服务的技术调用语法。WSDL定义了一套基于XML的语法,将Web服务描述为能够进行消息交换的服务 访问点的集合,从而满足了这种需求。WSDL服务定义为分布式系统提供了可机器识别的SDK文档,并且 可用于描述自动执行应用程序通信中所涉及的细节。WSDL的当前版本是1.1,规范可以从 获得。WSDL就是描述XMLWeb服务的标准XML格式,WSDL由Ariba、In tel、IBM和微软等开发商提出。 它用一种和具体语言无关的抽象方式定义了给定Web服务收发

2、的有关操作和消息。就其定义来说,你还不 能把WSDL当作一种对象接口定义语言,例如,CORBA或COM等应用程序体系结构就会用到对象接口定 义语言。WSDL保持协议中立,但它确实内建了绑定SOAP的支持,从而同SOAP建立了不可分割的联系。WSDL服务描述是一个XML文档,它与WSDL模式(schema)的定义一致。WSDL文档并不是完整的服 务描述,而只包括了服务描述任务的较低层次,即:服务接口的原始技术描述o WSDL是Web服务的接口 定义语言IDL (Interface Definition Language,),本质上,WSDL描述说明的是Web服务的以下三个基 本属性:服务做些什么

3、-服务所提供的操作(方法)。如何访问服务-数据格式详情以及访问服务操作的必要协议。服务位于何处-由特定协议决定的网络地址,如URL。二、WSDL 文档结构WSDL文档将Web服务定义为服务访问点或端口的集合。在WSDL中,由于服务访问点和消息的抽 象定义已从具体的服务部署或数据格式绑定中分离出来,因此可以对抽象定义进行再次使用:消息,指对 交换数据的抽象描述;端口类型指操作的抽象集合。用于特定端口类型的具体协议和数据格式规范构成了 可以再次使用的绑定。将Web访问地址与可再次使用的绑定相关联,可以定义一个端口,而端口的集合则 定义为服务。1、WSDL信息模型WSDL信息模型充分利用了抽象规范与

4、规范具体实现的分离,也就是分离了服务接口定义(抽象接口) 与服务实现定义(具体端点)。抽象接口规范描述了终端的处理能力,它在WSDL中表示为portType。束定 机制(binding mechanism)在WSDL中表示为binding元素,它使用特定的通信协议、数据编码模型和底 层通信协议,将Web服务的抽象定义映射至特定实现。若束定结合了实现的访问地址,抽象端点也就成为 可供服务请求者调用的具体端点(concrete endpoint),WSDL的port元素表示了这一结合。抽象接口可以支持任何数量的操作(operations)。操作是由一组消息(messages)定义,消息定义了操作

5、的交互定式。与抽象的消息、操作概念相对应的具体实现是由binding元素指定。与XML应用相同,WSDL 模式定义了几个高层元素,或称为主要元素。在WSDL中,Web服务描述中的主要元素如下:Types,定义了 Web服务使用的所有数据类型集合,可被元素的各消息部件所引用。它使用某种类型 系统(一般地使用 XMLSchema 中的类型系统)。Message,通信消息数据结构的抽象类型化定义。使用Types所定义的类型来定义整个消息的数据结构。Operation,对服务中所支持操作的抽象描述。一般单个Operation描述了一个访问入口的请求/响应消 息对。PortType,对于某个访问入口点类

6、型所支持操作的抽象集合。这些操作可以由一个或多个服务访问点 来支持。Bin di ng,包含了如何将抽象接口的元素(portType )转变为具体表示的细节,具体表示也就是指特定的 数据格式和协议的结合;特定端口类型的具体协议和数据格式规范的绑定。Port,定义为协议/数据格式绑定与具体Web访问地址组合的单个服务访问点。Service,这是一个粗糙命名的元素,代表端口的集合;相关服务访问点的集合。因此,portType(与message和type元素的细节相结合)描述了 Web服务是什么,binding元素描述了 如何使用Web服务,port及service元素描述了 Web服务的位置。1?

7、 service A号体瑙成吋(具4 message(抽象) messaget HA)nperatitiTiHit It吉0哑多个图1 WSDL信息模型图1体现了 WSDL信息模型的一个可能结构,它清楚反映了 portType元素包含的抽象消息/操作和 binding元素的具体消息/操作间的关系。图中的黑体字突出了 WSDL规范中的术语。WSDL使用的元素名 称有些含糊,由于不存在能够区分抽象和具体概念的一致命名原则,因此必须记住哪一个元素代表抽象概 念,哪一个元素代表具体的概念。2、WSDL 对象结构图从图2所示的WSDL对象结构图可知,一个WSDL文档中可以包含一个Types,多个Mess

8、age、PortType、Binding 和 Service。图2 WSDL对象结构图其中,Types是一个数据类型定义的容器,包含了所有在消息定义中需要的XML元素的类型定义。Message具体定义了在通信中使用的消息的数据结构,Message元素包含了一组Part元素,每个Part 元素都是最终消息的一个组成部分,每个Part都会引用一个DataType来表示它的结构。Part元素不支持 嵌套(可以使用DataType来完成这方面的需要),都是并列出现。PortType具体定义了一种服务访问入口的类型(传入/传出消息的模式及其格式),一个PortType可 以包含若干个Operation,

9、而一个Operation则是指访问入口支持的一种类型的调用。在WSDL里面支持四 种访问入口调用的模式:1) 单请求; 2) 单响应; 3) 请求/响应; 4) 响应/请求。在这里请求指的是从客户端 到Web服务端,而响应指的是从Web服务端到客户端。PortType的定义中会引用消息定义部分的一个到 两个消息,作为请求或响应消息的格式。Service描述的是一个具体的被部署的Web服务所提供的所有访问入口的部署细节,一个Service往往 会包含多个服务访问入口,而每个访问入口都会使用一个Port元素来描述。Port描述的是一个服务访问入口的部署细节,包括通过哪个Web地址(URL)来访问,

10、应当使用怎样的 消息调用模式来访问等。其中消息调用模式则是使用Bin di ng结构来表示。Bin di ng结构定义了某个PortType与某一种具体的网络传输协议或消息传输协议相绑定,从这一层次 开始,描述的内容就与具体服务的部署相关了。比如可以将PortType与SOAP/HTTP绑定,也可以将PortType 与 MIME/SMTP 相绑定等。3、WSDL 文档类型WSDL文档被分为两种类型:服务接口 (service in terface )和服务实现(service impleme ntatio ns)。 如下图 3 所示)图3 WSDL文档类型服务接口由 WSDL 文档来描述,这

11、种文档包含服务接口的 types、import、message、portType 和 binding等元素。服务接口包含将用于实现一个或多个服务的WSDL服务定义。它是Web服务的抽象定 义,并被用于描述某种特定类型的服务。通过使用一个 import 元素,一个服务接口文档可以引用另一个服务接口文档。例如,一个仅包含 message 和 portType 元素的服务接口可以被另一个仅包含此 portType 的绑定的服务接口引用。WSDL 服务实现文档将包含 import 和 service 元素。服务实现文档包含实现一个服务接口的服务的 描述。import元素中至少会有一个将包含对WSDL服

12、务接口文档的引用。一个服务实现文档可以包含对 多个服务接口文档的引用。WSDL服务实现文档中的import元素包含两个属性。namespace的属性值是一个与服务接口文档中 的targetNamespace相匹配的URL。location属性是一个用于引用包含完整的服务接口定义的WSDL文 档的 URL。 port 元素的 binding 属性包含对服务接口文档中的某个特定绑定的引用。服务接口文档由服务接口提供者开发和发布。服务实现文档由服务提供者创建和发布。服务接口提供 者与服务提供者这两个角色在逻辑上是分离的,但他们可以是同一个商业实体。一个完整的 WSDL 服务描述是由一个服务接口和一个

13、服务实现文档组成的。4、WSDL 工具你可以手工创建WSDL文件,不过,你还可以采用相当多的工具通过WSDL来为你自动处理和定义Web 服务。推荐工具软件如下:Omniopera图形用户界面的 WSDI、XML 和 XSD 编辑器。Microsoft的SOAP Toolkit-一种工具包,其中包括根据WSDL定义创建COM接口的向导程序,还包 括根据COM接口创建WSDL的向导程序。IBM的Web Services Toolkit-一种工具包,其中包括产生WSDL和SOAP部署说明的向导程序。三、WSDL扩展机制WSDL设计继承了以XML为基础的当代Web技术标准的开放设计理念。它允许通过扩展

14、使用其它的 类型定义语言(不光是XMI Schema),允许使用多种网络传输协议和消息格式(不仅是在规范中定义的 SOAP/HTTP、HTTP-GET/POST及MIME等)。WSDL也应用了当代软件工程中的复用理念,分离了抽象定 义层和具体部署层,使得抽象定义层的复用性大大增加。1、 SOAP 绑定WSDL包括用于SOAP 1.1终端的绑定,此绑定支持下列协议信息规范:需要指示出此绑定是针对SOAP 1.1协议的。为 SOAP 终端指定地址的方式。用于SOAPAction HTTP头的URI,而此头是绑定了 SOAP的HTTP头。作为 SOAP 封装一部分传送的头列表定义。SOAP绑定使用下

15、列扩展元素对WSDL进行扩展:(注意黑体标注) .1voperation . .2vi nputvsoap:body parts=nmtokens use=litera |encodeden cod in gStyle=uri-list n amespace=uri.3vsoap:header message=qname fault=qname/ .4v/i np utvsoap:body parts=nmtokens use=litera |encodedencodingStyle=uri-list? namespace=uri/.3 vsoap:header message=qname f

16、ault=qname/ .4.5 .6 1)soap:bindingSOAP绑定元素的目的是指出绑定是针对SOAP协议格式的:Envelope, Header和Body。这个元素没 有对编码或消息格式进行声明。在使用SOAP绑定时必须指出soap:binding元素。2)soap:operationsoap:operation 元素从整体上为操作提供信息。style属性指出操作是面向RPC (消息包含参数和返回值)的还是面向文档的(消息包含文档)。此信 息可用于选择合适的编程模板。此属性的值将影响SOAP消息体的构建方式,如果没有指定值,它默认为 soap:binding元素中指定的值。如果s

17、oap:binding元素没有指定样式,它假定为文档。soapAction属性为此操作的SOAPAction头指定了值。此URI应当被直接用作SOAPAction头的值,在 作出请求时不要试图将一个相对URI变成绝对URI。对于绑定了 SOAP的HTTP协议来说,此值是必需的 (它没有默认值)。对于其它的SOAP协议绑定,决对不能为其指定值,而soap:operation元素可以被忽 略。3)soap:bodysoap:body元素指出了消息部分应如何在SOAP Body元素中表现。消息的各个部分可以是抽象的类型定义,也可以是具体的模式定义。如果是抽象定义,根据编码格式 定义的一套规则将对类型

18、进行序列化。使用URI列表可以对每种编码格式进行标识,就象在SOAP规范中 的那样。由于某些编码格式如SOAP编码允许某种给定的抽象类型的消息格式发生变化,那么读者应理解 所有的格式变化: 读者决定正确性。为了避免对所有变化不必要的支持,可以对消息的定义具体化,然 后暗示它的原始编码格式(如果存在)。在这种情况下,消息的创建者必须严格遵循特定的规范: 作者决 定正确性。soap:body提供的信息用于决定如何在SOAP消息的Body元素中组合不同的消息部分。soap:body元 素可以用在面向RPC的消息也可以用在面向文档的消息中,但是封装操作的格式对Body节如何构建有重 要影响:如果操作格

19、式是RPC,那么每个部分将是一个参数,或者是一个返回值,并且它们出现在body中的 wrapper元素内。wrapper元素的名字与操作的名字相同,并且它的名称空间是namespace属性的值。每 个消息部分(参数)在封装器下出现,它是由与调用中相应参数名称相同的存储器表示的。各部分以与调 用参数相同的顺序进行排列。如果操作格式是文档,那么就没有额外的封装器(wrappers),消息的parts直接出现在SOAP Body 元素中。在定义Body的内容和参数存储器元素时使用了相同的机制。4)soap:headersoap:header元素允许在SOAP封装的头元素中对将要传送的头进行定义。它模

20、拟了 soap:body元素。 并不需要使用soap:header费力地列出出现在SOAP封装中的所有头元素。例如,对WSDL的扩展暗示特 定的头应加入到实际的有效负荷中,此时就不需要列出所有的头。5)soap:faultsoap:fault元素指出了 SOAP Fault Details元素的内容,它模仿了 soap:body元素。6)soap:addressSOAP地址绑定用于为端口指定地址。使用SOAP绑定的端口必须指定一个确切的地址,为地址指定的 URI 配制必须与 soap:binding 指定的传输相对应。2、 HTTP GET 与 POST 绑定为了描述Web浏览器与网站间的交互

21、作用,WSDL包含了 HTTP 1.1的GET和POST版本的绑定。 这种绑定允许应用程序而不浏览器与网站进行交互。可以指定下面的协议特定信息:使用了 HTTP GET 或 POST 绑定的标记端口地址 每种操作的相对地址(相对于端口定义的基地址)HTTP GET/POST绑定使用下列元素扩展WSDL:(注意黑体标注).l voperation . .2mime eleme nts -v/i np utvoutput . mime eleme nts -.31)http:bindinghttp:binding元素指出此绑定使用了 HTTP协议。必需的Verb属性的值指出了 HTTP的版本,其值

22、通 常是GET或POST,但也可以使用其它值。注意,HTTP版本是大小写敏感的。2)http:operationLocation属性为操作指定一个相对URI,此URI与http:address元素指定的URI结合在一起形成了 HTTP请求的完整路径。此URI必须是一个相对的URI。3)http:addresslocation属性为端口指定了基地址。其值是与http:operation绑定元素的位置(location)属性的值结 合在一起的。4)http:urlEncodedUrlEncoded元素指出所有的消息part都按照标准的URI编码规则(名字=值.)编码进HTTP请求URI 中。参数名

23、与消息part的名相对应。使用名字=值对对part提供的值进行编码。通常使用GET指示URL 编码,或使用POST指示一个FORM-POST。对于GET,字符?作为必需,将自动追加。5)http:urlReplacementhttp:urlReplacement元素指出所有的消息part都使用替代运算法则被编码进HTTP请求URI中: http:operation的相对URI值用于搜索一组探索方案。在http:operation的值与http:address的位置属性的值结合前开始搜索。每个消息part有一个搜索方式。搜索方式字符串是附加了(”和)的消息part的名字。对每个匹配, 相应消息p

24、art的值在匹配处替代匹配。匹配检查在任何值被替代前执行(已经替代的值不会引发另外的匹配检查)。消息part不能有重复值。 3、 MIME 绑定WSDL包含了以某种MIME格式将抽象类型与具体消息绑定在一起的方式。为下列MIME类型定义了 绑定:multipart/relatedtext/XMLapplication/x-www-form-urlencoded (此格式用于替代 HTML 中的表单)其它(由MIME类型字符串指定)对MIME类型的定义的工作量很大,且是发展的,因此为每种MIME类型费力地定义XML语法不是 WSDL的目标。在需要时,不排除增加额外的语法以定义另外的MIME类型。

25、如果MIME类型字符串提供 的信息足够描述内容,那么就可以使用下面定义的 mime 元素。MIME绑定使用下列元素扩展WSDL:(注意黑体标注).l.2 * .3mime eleme nt - .41)mime:content为了避免为每个MIME格式定义新的元素,如果不需要传送格式(而不是MIME类型字符串)的附加 信息,就可以使用mime:content元素。属性part用于指定消息part的名字。如果只有一个part,那么它的属性是可选的。属性type包含MIME 类型的字符串。类型的值是由斜杠(/),每个值可以是一个通配符(*)。如果没有指定类型属性,就表 示所有的 MIME 类型是可

26、选的。如果返回格式是XML,但模式事先并不知道,通用mime元素可用于指示text/XML:通配符可用于指定某类MIME类型,对所有文本类型如下例所示:下面两个例子都指定了所有的mime类型:2) mime:multipartRelatedmultipart/related MIME类型任意的MIME格式化部分聚集为一个使用MIME类型multipart/related 的消息。3) mime:part元素mime:part描述了 multipart/related消息的各个部分。在mime:part元素中出现的MIME元素用 于为各部分指定具体的MIME类型。如果在一个mime:part元素

27、中出现多个MIME元素,那么它们是可相 互替换的。4) mime:mimeXML为了指定与SOAP不兼容(没有SOAP封装)的XML负荷,但存在一个特殊的模 式,就可以使用mime:mimeXml元素指定具体的模式。属性part引用定义了根XML元素具体模式的消息 part。如果消息只有一个part,那么就可以忽略part属性。part使用element属性为单个part引用具体模 式,或者使用type属性为组合part进行引用。5) soap:body当SOAP请求使用MIME绑定时,将元素soap:body作为MIME元素使用是合法的。这指出内容的类 型是text/XML,并且存在SOAP封装。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!