




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、WSDL 概述WebServicesDescriptionLanguage(WSDLWeb 服务语言)是一个用于精确描述 WebService 的文档格式。WSDL 非常适合于用作代码生成器,它能够读取 WSDL 文档,并且可以为访问 Web 服务生成一个程序化的接口,大多数软件供应商和主要的标准机构(包括 W3C、WS-I 和 OASIS)都支持WSDLo 例如:JAX-RPCprovider(例如:BEAWeblogic)通过 API 用 WSDL 生成相应的占位程序;IBMWebSphere、Microsoft.NET 以及 ApacheAxis 都有自己的工具生成相关的代码。下图是一个
2、例子:ClicDtWebSenicc?HatfnrmEnJiuiidExvhsmgi?SOAP联,一、IntrrfacrITJCrfncrjtcJAXRPC)stubJhdHdp)intinlerfdtr1P,XCSDLIRedWSDLdneumem上面的例子 JAX-RPC 通过读取 WSDL 文档,创建 JAX-RPCRMI 接口(endpoint 接口)和实现此接口的网络占位程序(stub)。客户端程序通过 RMI 接口,Stub 和 WebService 服务端交换 SAOP 消息。二、WSDL 基本结构WSDL文档是一个遵循WSDLXML模式的XML文档(文档实例);类似于:SOAP
3、文档是一个遵循SOAPXML模式的XML文档(文档实例);一个WSDL文档的根元素是definitions元素,WSDL文档包含7个重要的元素:types,import,message,portType,operations,binding和service元素。、WSDL 声明3.1 XML 声明6Code(tilt.illWSDL的声明必须定义成使用:UTF-8或者UTF-16编码。3.2 definition 元素所有WSDL文档的根元素都是definition元素。2.%2definitionsname=BookQuoteWStargetNamespace=http:/www.Monso
4、n-H 元素中一般包括若干个 XML 命名空间;/wsdl/是默认的命名空间,这样就可以不用显式地定义每一个 WSDL 元素的命名空间了,例如:;文档中所有的元素缺省应该属于这个命名空间。definition 元素的的一个属性是 name,此属性不重要可以没有;定义了 targetNamespace命名空间,它为在模式中显式创建的所有新类型均声明了 XML 命名空间,而且上面的例子中赋予了 mh 前缀。3.%2!-messageelementsdescribetheinputandoutputparameters-4.%2messagename
5、=GetBookPriceRequest5.%2partname=isbntype=xsd:string/6.%2/message7.%2messagename=GetBookPriceResponse8.%2partname=pricetype=xsd:float/9.%2/message10.%2!-portTypeelementdescribestheabstractinterfaceofaWebservice-11.%2portTypename=BookQuote12.%2operationname=getBookPrice13.%2inputname=isbnmessage=mh:G
6、etBookPriceRequest/14.%2outputname=pricemessage=mh:GetBookPriceResponse/上面的例子中:message元素利用name属性指定了标签(例如:GetBookPriceRequest),这些标签会自动使用targetNamespace的命名空间,标签了的messages元素通常被称为定义。文档中的其他元素用标签和命名空间前缀去应用定义,例如上面的例子中:input元素是使用mh:GetBookPriceRequest来引用标签GetBookPriceRequest。15.%2.3Types 元素Types元素用作一个容器,定义了
7、自定义的特殊数据类型,在声明消息部分(有效负载)的时候,messages定义使用了types元素中定义的数据类型与元素。Types元素作为一个容器,用来定义XML模式内置的数据类型(即复杂类型和定制的简单类现,详细见WebServiceXML文章)中没有描述的各种数据类型。例如:ISBN。上面的例子中,types元素中直接嵌套了一个完整的W3CXML模式文档,档。16.%2 .4Import 元素Import元素可以让当前的文档使用其他WSDL文档中指定命名空间中的定义。WSDL的import元素必须声明两个属性, 即namespace属性和location属性。namespace属性必须和正
8、导入的WSDL文档中声明的targetNamespace相匹配。location属性必须指向一个实际的WSDL文档。四、WSDL 抽象接口MessageportType和operation元素用于描述Web服务的抽象接口,相当于JAVA或者C+中编程中的类的接口。其中portType相当于类接口的名称;operation相当于接口中包含的函数,message相当于函数的参数和返回值。partname=isbntype=xsd:string/止匕文档中targetNamespace必须是一个有效的非空值,而且必须属于由WSDL文RPC 式样的 Web 服务的 message 服务 GetBulk
9、BookPriceRequest 表示消息的输入(相当于函数的参数),GetBulkBookPriceResponse 表示消息的输出(相当于函数的返回值)WebService 的输入和输出参数可以是多个(一个特点),每一个输入或者输出使用 part 元素定义, RPC 样式必须使用 type 来定义类型 RPC 样式用类型来数据定义过程调用, 调用中的每一个元素表示某一个类型的参数。文档式样 Web 服务的 Messages 元素:当用户采用文档式样消息传递模式的时候,messages 元素要应用 types 定义中的顶级元素。具体顶级元素的定义和 XMLschema 详见 WebServe
10、rXML 文档。消息部分使用 element 属性定义文档式样的消息传递要交换 XML 文档,并且应用它们的顶级元素。注:Messages 元素的 RPC/Document 试样对应了 SOAPRPC/Document 消息传递模式,详细见 WebServerSOAP 相关文档xsd:elementname=conformance-rulestype=xsd:string/xsd:sequence/xsd:complexType/xsd:element/xsd:schema/types!-messageelementsdescribetheinputandoutputparameters-me
11、ssagename=GetBookPriceRequestpartname=isbntype=xsd:string/messagemessagename=GetBookPriceResponsepartname=pricetype=xsd:float/messagemessagename=InvalidArgumentFaultpartname=error_messageelement=mh:InvalidIsbnFaultDetail/message声明错误消息:错误使用的消息定义只能采用 Document/Literal 编码样式上面声明了匿名类型,InvalidIsbnFaultDeta
12、il 不需要 type 类型,complexType 中也不包括 name 属性,详细见 WebServiceXML 相关文档。portType 元素PortType元素定义了Web服务的抽象接口,它可以由一个或者多个operation元素,每个operation元素定义了一个RPC样式或者文档样式的Web服务方法。operation 元素Operation元素要用一个或者多个messages消息来定义它的输入、输出以及错误。messagename=GetBulkBookPriceRequestinputname=requestmessage=mh:GetBulkBookPriceReques
13、t/outputname=pricesmessage=mh:GetBulkBookPriceResponse/faultname=InvalidArgumentFaultmessage=mh:InvalidArgumentFault/Input 表示传递到 Web 服务的有效负载;output 表示返回给客户的有效负载;可以不包括,也可以包括一个或者多个 fault 错误消息。parameterOrder 定义了 input 和 output 消息采用的正确的顺序使用 parameterOrder 的时候,必须包含所有输入参数部分;并且只包含不是返回类型的输出部分,如果 output 只有一个
14、 part(上例),会假设返回值,所以不包括在 parameterOrder 中如果 parameterOrder 列出 output 中的 part 部分,那么这个将被作为OUT 参数,如果 input 元素和 output 元素使用相同的名称声明了一个部分的时候,此部分为 INOUT 参数4.4WSDL 消息交换模式(MEP)MessagingexchangePatterns(MEP)Web服务中使用了四种消息交换模式,即请求/响应、单向、通知以及恳求/响应模式。大多数基于WSDL的web服务使用请求/响应和单向两种模式。WSDL通过operation元素的input/output来定义使
15、用那种模式,如果有input+output+可选的fault参数,那就使用请求/响应模式;如果只使用input,那就使用单向模式。在通知模式中:Web服务将消息发送给客户,但不等待回复;般客户通过注册来接收通知;在恳求/响应模式中类似通知模式,唯一的区别要期待客户对partname=pricestype=mh:prices/messagemessagename=InvalidArgumentFaultpartname=error_messageelement/messageportTypename=GetBulkBookPriceoperationname=getBulkBookPrice/=mh:InvalidIsbnFaultDetail/parameterOrder=isbnquantityWeb服务的响应。五、WSDL 实现:Service 和 Port 元素servicename=BookPriceServiceportname=BookPrice_Portbinding=mh:BookPrice_Bindingsoa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 25年公司、项目部、各个班组安全培训考试试题及完整答案(名校卷)
- 2024-2025公司员工安全培训考试试题(全面)
- 2025年公司、项目部、各个班组安全培训考试试题附完整答案【典优】
- 2025公司级员工安全培训考试试题附答案可下载
- 2025年公司级安全培训考试试题含答案【达标题】
- 2025班组安全培训考试试题附答案AB卷
- 2024-2025企业管理人员安全培训考试试题及答案(夺冠系列)
- 2025公司职工安全培训考试试题及完整答案【夺冠系列】
- 智能家居设备使用中意外情况处理免责条款
- 区块链品牌传播打造全新用户体验
- NB-T 47015-2011(JB-T 4709) 压力容器焊接规程
- 五大策略成就燕赵零售王-记石家庄北国超市
- 建立世界贸易组织协定(中英)
- 乳腺病理学-课件
- 农民工法律维权知识讲座
- 《流感嗜血杆菌》课件
- 《禾字旁》名师课件
- 肺胀病(慢性阻塞性肺疾病)中医临床路径
- 中央分隔带填土规范
- 深基坑专项施工方案专家论证会议签到表
- 强化学习与联邦学习结合
评论
0/150
提交评论