WSDL(Web服务描述语言)详细解析

2023-11-06

 

    WSDL (Web Services Description Language,Web服务描述语言)是一种XML Application,他将Web服务描述定义为一组服务访问点,客户端可以通过这些服务访问点对包含面向文档信息或面向过程调用的服务进行访问(类似远程过程调用)。WSDL首先对访问的操作和访问时使用的请求/响应消息进行抽象描述,然后将其绑定到具体的传输协议和消息格式上以最终定义具体部署的服务访问点。相关的具体部署的服务访问点通过组合就成为抽象的Web服务。 本文将详细讲解WSDL文档的结构,并分析每个元素的作用。

一:WSDL定义

    WSDL是一个用于精确描述Web服务的文档,WSDL文档是一个遵循WSDL XML模式的XML文档。WSDL 文档将Web服务定义为服务访问点或端口的集合。在 WSDL 中,由于服务访问点和消息的抽象定义已从具体的服务部署或数据格式绑定中分离出来,因此可以对抽象定义进行再次使用:消息,指对交换数据的抽象描述;而端口类型,指操作的抽象集合。用于特定端口类型的具体协议和数据格式规范构成了可以再次使用的绑定。将Web访问地址与可再次使用的绑定相关联,可以定义一个端口,而端口的集合则定义为服务。

   一个WSDL文档通常包含7个重要的元素,即types、import、message、portType、operation、binding、service元素。这些元素嵌套在definitions元素中,definitions是WSDL文档的根元素。文章的下一部分将会详细介绍WSDL的基本结构。

二:WSDL的基本结构--概述

如第一部分最后描述的那样,一个基本的WSDL文档包含7个重要的元素。下面将分别介绍这几个元素以及他们的作用。

WSDL 文档在Web服务的定义中使用下列元素:

  • Types - 数据类型定义的容器,它使用某种类型系统(一般地使用XML Schema中的类型系统)。
  • Message - 通信消息的数据结构的抽象类型化定义。使用Types所定义的类型来定义整个消息的数据结构。
  • Operation - 对服务中所支持的操作的抽象描述,一般单个Operation描述了一个访问入口的请求/响应消息对。
  • PortType - 对于某个访问入口点类型所支持的操作的抽象集合,这些操作可以由一个或多个服务访问点来支持。
  • Binding - 特定端口类型的具体协议和数据格式规范的绑定。
  • Port - 定义为协议/数据格式绑定与具体Web访问地址组合的单个服务访问点。
  • Service- 相关服务访问点的集合。

  可以参考下图来理解一下WSDL的文档结构图:WSDL文档元素的结构图

WSDL的xml schema可以参照如下网址:http://schemas.xmlsoap.org/wsdl/

三:WSDL的基本结构--详述

本节将通过一个例子详细描述WSDL文档每个元素的作用。下面一个例子是一个简单的WSDL文档的内容,该文档的产生可以参见我的另外一篇文章:xfire开发实例--HelloWorld篇 (http://blog.csdn.net/juxtapose/archive/2007/09/10/1779849.aspx)。

一个简单的Web Service的WSDL文档,该服务支持名为sayHello的唯一操作,该操作通过在http上运行SOAP协议来实现的。该请求接受一个字符串name,经过处理后返回一个简单的字符串。文档如下:

<? xml version="1.0" encoding="UTF-8"  ?>
< wsdl:definitions
    
targetNamespace ="http://com.liuxiang.xfireDemo/HelloService"
    xmlns:tns
="http://com.liuxiang.xfireDemo/HelloService"
    xmlns:wsdlsoap
="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:soap12
="http://www.w3.org/2003/05/soap-envelope"
    xmlns:xsd
="http://www.w3.org/2001/XMLSchema"
    xmlns:soapenc11
="http://schemas.xmlsoap.org/soap/encoding/"
    xmlns:soapenc12
="http://www.w3.org/2003/05/soap-encoding"
    xmlns:soap11
="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:wsdl
="http://schemas.xmlsoap.org/wsdl/" >
    
< wsdl:types >
        
< xsd:schema  xmlns:xsd ="http://www.w3.org/2001/XMLSchema"
            attributeFormDefault
="qualified"  elementFormDefault ="qualified"
            targetNamespace
="http://com.liuxiang.xfireDemo/HelloService" >
            
< xsd:element  name ="sayHello" >
                
< xsd:complexType >
                    
< xsd:sequence >
                        
< xsd:element  maxOccurs ="1"  minOccurs ="1"
                            name
="name"  nillable ="true"  type ="xsd:string"   />
                    
</ xsd:sequence >
                
</ xsd:complexType >
            
</ xsd:element >
            
< xsd:element  name ="sayHelloResponse" >
                
< xsd:complexType >
                    
< xsd:sequence >
                        
< xsd:element  maxOccurs ="1"  minOccurs
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WSDL(Web服务描述语言)详细解析 的相关文章

随机推荐

  • Element ui table获取当前索引值 index

    使用 scope index来获取当前索引值
  • CSS/HTML静态购物网站项目源码解析(品优购)——该项目包含主页、注册页、列表页三个网页

    注 该项目所涉及的素材文件请QQ联系作者 Etui 3416252112 首先 上图 index html 主页 register html 注册页 list html 列表页 摘要 作为一个前端初学者 这是我学完html和css基础后做的
  • [Rpackage]R无法安装包的终极解决方法,附详细步骤

    作为R的新使用者 我曾经也经常碰上某些R包死活无法安装的问题 例如机器学习调参的caret包等 网上很多方法也都没法解决 除却少数个别包之外 大部分的包都支持最新的R版本 一 下载最新的R包 https cran r project org
  • Hooks API 在 Vue 中的实现分析

    作者 长峰 初次听到 React Hooks 是在其刚发布的那几天 网上铺天盖地的文章介绍它 看字面意思是 React 钩子 就想当然地理解应该是修改 React 组件的钩子吧 React 延伸的概念非常多 高阶组件 函数式 Render
  • BearPi-IoT Std学习笔记9——使用I2C读取BH1750光强度传感器数据

    1 BH1750模块 E53 SC1扩展板 BH1750FV1是两线式串行总线接口 IIC 的16位数字输出型环境光强度传感器 利用它的高分辨率可以探测较大范围内的光照强度变化 1lx 65535lx BH1750的原理图如下 2 配置 首
  • 解决XShell和Xftp远程连接Ubuntu失败,报找不到匹配的key exchange算法的错误

    我下载的linux系统是当前最新的Ubuntu 20 04的 使用的远程连接工具是XShell 5和Xftp 4 XShell可以连上 但是Xftp就一直报下图这个错误 尝试了删除ssh host的各种key 然后重新生成 重启ssh服务
  • 个人wiki搭建资料整理

    个人wiki搭建 一 大型企业级wiki Confluence Confluence是一个专业的企业知识管理与协同软件 也可以用于构建企业wiki 使用简单 但它强大的编辑和站点管理特征能够帮助团队成员之间共享信息 文档协作 集体讨论 信息
  • Java中NIO和IO的比较

    NIO是为了弥补IO操作的不足而诞生的 NIO的一些新特性有 非阻塞I O 选择器 缓冲以及管道 管道 Channel 缓冲 Buffer 选择器 Selector 是其主要特征 概念解释 Channel 管道实际上就像传统IO中的流 到任
  • m3u8格式的视频链接怎么在自己电脑上播放

    本文接上篇文章 网页播放器 CKplayer 的视频怎么下载 m3u8简单探索 上篇文章提到 怎么到视频网站通过浏览器抓包分析 得到视频的源地址 看这篇文章之前 最好可以去先看一看上篇博文的介绍 上篇文章我们介绍到我们能够得到视频的源地址
  • SpringBoot 之数据源配置

    文章目录 市面上的几种数据源比对 SpringBoot自动装配DataSource原理 HiKariCP 数据源配置 Druid 数据源配置 SpringBoot集成Druid连接池 Druid 多数据源配置 不同Mapper操作不同数据源
  • 初等模型---光盘的数据容量

    问题分析 光盘的外观尺寸是由些大公司成立的联盟决定的 如CD DVD等盘片的外径为120mm 并且沿外边缘留有2mm宽的环形区域不存储信息 CLV光盘存储信息的内圈直径为45mm 在内外圈之间的环形区域 经过编码的数字信息 以一定深度和宽度
  • MySQL 8用户及权限管理

    文章目录 参考文档 查看权限 安装后 登录测试 添加帐户 分配特权和删除帐户 扩展 创建远程访问新用户并授权 参考文档 官方链接 https dev mysql com doc refman 8 0 en create user html
  • 简单的扫雷程序的实现

    define CRT SECURE NO WARNINGS include
  • js操作时间过当天晚上00:00清除本地存储

    const end new Date new Date new Date toLocaleDateString getTime 24 60 60 1000 1 getTime 当天23 59 59秒 转换成的毫秒数 const start
  • banner切换

    html代码 div div a img src imgs p1 png alt a a img src imgs p2 jpg alt a a img src imgs p3 jpg alt a a img src imgs p4 jpg
  • 【javascript】导航栏

    要实现这样的效果主要有两点 第一 当鼠标经过主导航栏里面的内容就会被放大 鼠标离开后就会恢复原来的样子 第二 当鼠标经过主导航时对应的副导航的内容就会呈现
  • 一个完美的自动化测试框架应该怎么写?

    一 什么是自动化测试框架 自动化测试框架是为自动化测试用例或者脚本提供执行环境而搭建的基础设施 自动化测试框架有助于有效地开发 执行和报告自动化测试用例 优点 代码复用 提高测试效率 更高的测试覆盖率 维护成本低 更早发现和记录bug 二
  • Oracle RAC 更改网卡名称

    如 原网卡eth1 为增加网卡可靠性 把eth1和eth3绑定为bond0 主备模式提供服务 更改名称后RAC会无法启动网络服务 还需要更改的操作如下 u01 app 11 2 0 grid bin oifcfg getif u01 app
  • C#中的this

    一 C 中的this C 中的保留字this仅限于在构造函数 类的方法和类的实例中使用 在类的构造函数中出现的this作为一个值类型 它表示对正在构造的对象本身的引用 在类的方法中出现的this作为一个值类型 表示对调用该方法的对象的引用
  • WSDL(Web服务描述语言)详细解析

    WSDL Web Services Description Language Web服务描述语言 是一种XML Application 他将Web服务描述定义为一组服务访问点 客户端可以通过这些服务访问点对包含面向文档信息或面向过程调用的服