Web Services Description Language的缩写,是一个用来描述Web服务和说明如何与Web服务通信的XML语言。为用户提供详细的接口说明书。
编辑本段WSDL 简介
WSDL是
Web Service的描述语言,是一种接口定义语言,用于描述Web Service的接口信息等。
WSDL文档可以分为两部分。顶部分由抽象定义组成,而底部分则由具体描述组成
编辑本段WSDL 历史
在 2001 年 3 月,WSDL 1.1 被 IBM、
微软作为一个
W3C
纪录(W3C note)提交到有关
XML
协议的 W3C XML 活动,用于描述网络服务。(W3C 纪录仅供讨论。一项 W3C 纪录的发布并不代表它已被 W3C 或 W3C 团队亦或任何 W3C 成员认可。)在 2002 年 7 月,W3C 发布了第一个 WSDL 1.2 工作
草案。
编辑本段WSDL 功能
怎样向别人介绍你的Web service有什么功能,以及每个
函数调用时的参数呢?你可能会自己写一套文档,你甚至可能会口头上告诉需要使用你的Web service的人。这些非正式的方法至少都有一个严重的问题:当程序员坐到电脑前,想要使用你的Web service的时候,他们的工具(如Visual Studio)无法给他们提供任何帮助,因为这些工具根本就不了解你的Web service。解决方法是:用机器能阅读的方式提供一个正式的描述文档。Web service描述语言(WSDL)就是这样一个基于XML的语言,用于描述Web service及其
函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的Web service生成WSDL文档,又能导入WSDL文档,生成调用相应Web service的代码。
编辑本段WSDL 元素
Type(消息类型):
数据类型定义的容器,它使用某种类型系统(如XSD)。
Message(消息):通信数据的抽象类型化定义,它由一个或者多个part组成。
Part:消息参数
Operation(操作):对服务所支持的操作进行抽象描述,WSDL定义了四种操作: 1.单向(one-way):端点接受信息;2.请求-响应(request-response):端点接受消息,然后发送相关消息;3.要求-响应(solicit-response):端点发送消息,然后接受相关消息;4.通知(notification
):端点发送消息。
Port Type (端口类型):特定端口类型的具体协议和
数据格式规范。
Binding:特定端口类型的具体协议和
数据格式规范
Port :定义为绑定和
网络地址组合的单个端点。
Service:相关端口的集合,包括其关联的接口、操作、消息等。
编辑本段WSDL 文档结构
WSDL 文档是利用这些主要的
元素来描述某个 web service 的:
元素
定义
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 文件中。
●WSDL支持的消息交换方式?
WSDL支持4种消息交换方式:
1)单向(One-way):服务端接收消息;
2)请求响应(Request-response):服务端点接收请求消息,然后发送响应消息;
3)要求应答(Solicit-response):服务访问端发送要求消息,然后接收
应答消息。
4)通知(Notification):服务访问端点发送通知消息。
抽象部分以独立于平台和语言的方式定义SOAP消息,它们并不包含任何随机器或语言而变的元素。这就定义了一系列服务,截然不同的网站都可以实现。随网站而异的东西如序列化便归入底部分,因为它包含具体的定义。
l 抽象定义
Types
独立与机器和语言的类型定义
Messages
包括函数参数(输入与输出分开)或文档描述
PortTypes
引用消息部分中消息定义来描述函数签名(操作名、输入参数、输出参数)
2 具体定义
Bindings
PortTypes部分的每一操作在此绑定实现
Services
确定每一绑定的端口地址