IIWAB

WSDL 文档核心主要元素

IIWAB 1月前 ⋅ 113 阅读

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数据类型文件

层级逻辑总结(抽象 → 具体)

  1. types:数据长什么样
  2. message:方法传什么数据
  3. portType:有哪些方法(抽象接口)
  4. binding:方法用什么协议传输(SOAP/http)
  5. service:服务部署在哪,访问地址

常用子元素汇总

  • part:消息参数片段
  • operation:接口方法
  • input/output/fault:方法入参、出参、异常
  • port:服务访问端点
  • soap:binding / soap:body / soap:address:SOAP协议专用标签

全部评论: 0

    我有话说: