WSDL 文档核心主要元素
WSDL(Web Services Description Language)基于 XML,完整文档根标签为 <definitions>,内部包含7大顶层核心元素,外加子级辅助元素。
一、顶层根元素:definitions
整个WSDL文档的根节点,所有其他元素都包裹在内部。 属性:
targetNamespace:服务目标命名空间(必选)xmlns系列:引入xsd、soap等命名空间
<definitions targetNamespace="http://xxx/service" ...>
<!-- 所有其他元素写在这里 -->
</definitions>
二、五大核心顶层元素(顺序规范)
1. 数据类型定义
作用:定义接口传输的复杂数据结构,基于 XML Schema(xsd)。
- 存放
<schema>,自定义复杂类型、简单类型、数组、对象 - 简单参数可省略types,直接使用xsd原生类型(string、int等)
2. 消息定义
作用:描述单次交互的输入/输出报文,定义传输数据块。
- 每个message由多个
<part>组成,part代表一个参数 - 分两类:请求消息(input)、响应消息(output)、异常消息(fault) 示例:
<message name="loginRequest">
<part name="username" type="xsd:string"/>
<part name="pwd" type="xsd:string"/>
</message>
3. 端口类型 / 接口(核心抽象层)
作用:抽象服务接口,类比 Java 接口,定义一组业务操作。
- 内部包含多个
<operation>(业务方法) - operation 绑定消息:
<input>:入参,引用message<output>:出参,引用message<fault>:异常返回消息 示例:
<portType name="UserServicePortType">
<operation name="login">
<input message="tns:loginRequest"/>
<output message="tns:loginResponse"/>
</operation>
</portType>
4. 绑定(协议绑定层)
作用:将抽象 portType 绑定到具体传输协议(SOAP HTTP/soap12),定义报文封装格式。
- 关键字段
type:关联上面的 portType - 子标签
<soap:binding>指定传输风格(document/rpc)、传输方式http - 每个operation内配
<soap:operation>、<soap:body>控制报文封装
5. 服务(实际访问入口)
作用:暴露服务真实访问地址,给客户端调用。
- 内部包含
<port>:绑定地址 + binding关联 <port>属性binding指向binding元素- 子标签
<soap:address location="http://xxx/xxx?wsdl"/>提供服务URL
三、辅助顶层元素
引入外部WSDL文件,拆分大型服务(多文件模块化)
在types内部使用,引入外部xsd数据类型文件
层级逻辑总结(抽象 → 具体)
- types:数据长什么样
- message:方法传什么数据
- portType:有哪些方法(抽象接口)
- binding:方法用什么协议传输(SOAP/http)
- service:服务部署在哪,访问地址
常用子元素汇总
- part:消息参数片段
- operation:接口方法
- input/output/fault:方法入参、出参、异常
- port:服务访问端点
- soap:binding / soap:body / soap:address:SOAP协议专用标签
注意:本文归作者所有,未经作者允许,不得转载