WSDL概述
- 在Web服务的世界里,应用程序基本上由远程的、XML驱动的组件构成,这些组件采用不同的语言编写,再采用标准的远程激活协议通过Web连接。服务提供者定义所提供服务需要用到的数据格式
- 同样的, 当在以上应用模式下接受Web服务时,也需要采取措施保证客户程序采用了服务器期望的数据格式。这正是WSDL(Web服务定义语言)大显身手的地方
- WSDL就是描述XML Web服务的标准XML 格式,WSDL由Ariba、Intel、IBM和微软等开发商提出。它用一种和具体语言无关的抽象方式定义了给定Web服务收发的有关操作和消息
- WSDL保持协议中立,但它确实内建了绑定SOAP的支持,从而同SOAP建立了不可分割的联系
用WSDL定义服务
- WSDL文档由服务用来描述数据类型的一组元素、服务可以收到的“消息”以及关联每条消息的SOAP绑定组成
- WSDL 规范 包括以下几个方面的内容:
- 数据交换模型(响应 请求、请求 响应、单向、多点 广播等)
- 输入信息和输出信息的类型(面向文档面向过程)
- 信息的大纲
- 错误信息
WSDL模型
- WSDLWSDL模型的三部分:
- 抽象接口
- 协议绑定
- 具体服务访问端口
用WSDL定义服务
- 步骤 1:服务接口
- 步骤 2:指定参数
- 步骤 3:消息传递和传输
- 步骤 4:概括
示例
MobilePhoneService ——一个移动电话销售公司的服务接口
- 步骤 1:有两个关于要使用 WSDL 表示的服务的方法:
- getListOfModels ()提供了一个字符串数组,其中每个字符串表示一种移动电话的型号
- getPrice (modelNumber)获得型号,然后返回它的价格
- 每个WSDL文件的根元素都是 ,必须在其中提供服务的完整描述。首先,必须在 元素中提供各种名称空间的声明。三个必须做的外部名称空间声明是 WSDL、SOAP 和XSD(XML 模式定义)。还有一个名称空间 ― TNS,它指MobilePhoneService(这表示 TNS(targetNamespace 的缩写)
- 元素包含一个或多个 元素,实际上,每个元素都是希望表示的一系列 operation 。或者,也可以将单个 portType 元素看作是将各种方法组成类的一个逻辑分组
- 必须为每个服务提供一个名称
- 在每个服务内可以有几个方法、或者operation ,WSDL 通过 元素来引用它们
- WSDL 文件
<?xml version="1.0" encoding="UTF-8" ?>
<definitions name="MobilePhoneService" targetNamespace="www.mobilephoneservice.com/MobilePhoneService-interface" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.mobilephoneservice.com/MobilePhoneService" xmlns:xsd="http://www.w3.org/1999/XMLSchema">
<portType name="MobilePhoneService_port">
<operation name="getListOfModels ">
.......
.......
</operation>
<operation name="getPrice">
.......
.......
</operation>
</portType>
</definitions>
- 步骤 2 :定义好操作(或方法)以后,现在需要指定将向它们发送和从它们返回的参数。在 WSDL 术语中,所有参数称为“消息”
- 步骤 3 :WSDL 编写的第三个步骤是描述将 SOAP 与 WSDL 文件绑定到一起的过程。把 元素包括到 元素内
- 步骤 4:WSDL 需要一个附加步骤来创建该 WSDL 文件的概要