WSDL中、、是定义Web服务接口契约的三个核心元素:用XSD定义数据类型,描述消息结构,声明抽象操作集合。
, , 是什么">
WSDL 中的 、、 是定义 Web 服务接口契约的三个核心元素,分别负责数据类型定义、消息结构描述和操作抽象声明。
:定义服务用到的数据类型
它相当于服务的“数据字典”,通常用 XML Schema(XSD)描述请求和响应中涉及的所有数据结构。比如一个用户查询服务可能需要 User 类型,这里就用 XSD 定义它的字段(如 id、name、email)。WSDL 不强制用 XSD,但绝大多数实际场景都使用它。
- 只描述类型,不涉及传输或实现细节
- 可以内联定义,也可以通过
引用外部 XSD 文件
-
作用域是整个 WSDL 文档,被 和 引用
:描述一次通信中传递的消息结构
每个 表示一个逻辑消息(比如“查询用户请求”或“返回用户信息”),由一个或多个带名称的 组成。每个 关联一个在 中定义的类型(或原语如 string、int)。
- 不是网络层的实际报文,而是抽象的消息“形状”
- 常见组合:一个输入消息(input) + 一个输出消息(output),对应一个操作
- 例如:
表示该消息含一个整型 userId 字段
:定义服务提供的操作集合(接口契约)
它是一组抽象操作()的容器,每个操作声明输入消息、输出消息、可选的错误消息(fault),但不指定协议或地址。你可以把它理解为 Java 中的 interface 或 C# 中的 contract —— 只说“能做什么”,不说“怎么传、在哪做”。
- 每个 必须关联已定义的 (via
input、output、fault 属性)
- 支持四种消息模式:one-way、request-response、solicit-response、notification(最常用 request-response)
- 与 分离: 定义“做什
么”, 定义“怎么传(SOAP/HTTP?)”
基本上就这些。这三个元素共同构成 WSDL 的抽象层,让客户端能在不接触具体实现前,准确理解服务能接收什么、返回什么、支持哪些动作。