WSDL是Web服务的接口文档,用于定义服务的操作、参数、协议和地址;它通过types、message、portType、binding和service元素描述服务,支持SOAP等协议,使跨平台系统可互操作;主流版本为WSDL 1.1和2.0,虽受REST冲击,仍在企业集成中广泛应用。

WSDL(Web Services Description Language,即 Web 服务描述语言)是一种基于 XML 的语言,用于描述 WebService 的功能、接口、消息格式以及通信协议。它让客户端清楚地知道如何调用某个 Web 服务,包括该服务提供了哪些操作、需要传递什么参数、使用什么传输协议等信息。
WSDL 的核心作用
WSDL 文件相当于 WebService 的“说明书”或“接口文档”。它定义了服务的访问方式,使得不同平台、不同语言开发的系统之间可以实现互操作。有了 WSDL,客户端可以通过工具自动生成调用代码,简化集成过程。
主要功能包括:
- 说明服务提供哪些操作(方法)
- 定义每个操作所需的输入和输出参数结构
- 指定服务使用的通信协议(如 SOAP over HTTP)
- 标明服务的网络地址(endpoint URL)
WSDL 的基本结构
一个标准的 WSDL 文件通常包含以下几个关键部分:
- types:定义服务中使用到的数据类型,通常使用 XML Schema(XSD)来声明复杂对象结构。
- message:描述一次通信中传递的消息内容,分为输入消息和输出消息,每条消息可包含多个参数。
- portType:定义服务的操作集合,类似于编程语言中的接口。每个操作指定输入和输出消息。
- binding:指定 portType 使用的具体协议和数据格式,比如 SOAP 1.1 或 SOAP 1.2,并说明编码方式。
- service:定义服务的实际部署地址(URL),也就是客户端调用时要连接的 endpoint。
这些元素共同构成完整的服务描述,使客户端能准确构建请求并解析响应。
WSDL 的版本演进
目前主流的 WSDL 版本是 WSDL 1.1 和 WSDL 2.0。
- WSDL 1.1:由 IBM、Microsoft 等公司提出,应用广泛,但未成为 W3C 标准。
- WSDL 2.0:被 W3C 正式采纳为推荐标准,改进了语法清晰度,增强了对 REST 风格服务的支持,且更易于使用。
尽管 WSDL 2.0 更先进,但由于兼容性问题,许多系统仍在使用 WSDL 1.1。
实际应用场景举例
假设有一个查询天气信息的 WebService,其 WSDL 文件会描述如下内容:
- 服务名称:WeatherService
- 操作名:getWeather
- 输入参数:cityName(字符串类型)
- 输出结果:temperature、humidity 等字段组成的复合类型
- 通信协议:SOAP over HTTP
- 服务地址:http://example.com/weather
开发者可通过此 WSDL 地址在 IDE 中添加服务引用,自动生成客户端代理类,直接调用 getWeather 方法。
基本上就这些。WSDL 是传统 SOAP WebService 实现跨平台交互的基础,虽然近年来随着 REST 和 JSON 的流行有所弱化,但在企业级系统集成中仍具有重要地位。理解 WSDL 有助于深入掌握 WebService 的工作机制。










