Web Services Description Language的缩写,是一个用来描述Web服务和说明如何与Web服务通信的XML语言。为用户提供详细的接口说明书。
目录
WSDL 简介
WSDL 历史
WSDL 功能
WSDL 元素
WSDL 文档结构
<script type="text/javascript"></script>
WSDL 简介
WSDL是Web Service的描述语言,用于描述Web Service的服务,接口绑定等
WSDL 历史
在 2001 年 3 月,WSDL 1.1 被 IBM、
微软作为一个 W3C 纪录(W3C note)提交到有关 XML 协议的 W3C XML 活动,用于描述网络服务。(W3C 纪录仅供讨论。一项 W3C 纪录的发布并不代表它已被 W3C 或 W3C 团队亦或任何 W3C 成员认可。)在 2002 年 7 月,W3C 发布了第一个 WSDL 1.2 工作
草案。
WSDL 功能
怎样向别人介绍你的Web service有什么功能,以及每个
函数调用时的参数呢?你可能会自己写一套文档,你甚至可能会口头上告诉需要使用你的Web service的人。这些非正式的方法至少都有一个严重的问题:当程序员坐到电脑前,想要使用你的Web service的时候,他们的工具(如Visual Studio)无法给他们提供任何帮助,因为这些工具根本就不了解你的Web service。解决方法是:用机器能阅读的方式提供一个正式的描述文档。Web service描述语言(WSDL)就是这样一个基于XML的语言,用于描述Web service及其函数、参数和返回值。因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处。一些最新的开发工具既能根据你的Web service生成WSDL文档,又能导入WSDL文档,生成调用相应Web service的代码。
WSDL 元素
WSDL 文件包含以下
元素:
Type:使用某种语法(如 XML
模式)的数据类型定义(string、int)
Message:要传递的数据
Part:消息参数
Operation:服务支持的操作的抽象描述
Port Type / Interface:一个或多个端点支持的操作的抽象集。此名称已更改,因此可能会遇到两者中的任何一个。
Binding:特定端口类型的具体协议和
数据格式规范
Port / Endpoint:绑定和网络地址的组合。此名称也已更改,因此可能会遇到两者中的任何一个。
Service:相关端点的集合,包括其关联的接口、操作、消息等。
WSDL 文档结构
WSDL 文档是利用这些主要的元素来描述某个 web service 的: 元素 定义 web service 执行的操作 <message> web service 使用的消息 <types> web service 使用的数据类型 <binding> web service 使用的通信协议 一个 WSDL 文档的主要结构是类似这样的: <definitions> <types> definition of types........ </types> <message> definition of a message.... </message> <portType> definition of a port....... </portType> <binding> definition of a binding.... </binding> </definitions>WSDL 文档可包含其它的元素,比如 extension 元素,以及一个 service 元素,此元素可把若干个 web services 的定义组合在一个单一的 WSDL 文档中。 如需完整的语法概述,请访问 WSDL 语法 这一节。同样要记住,与服务交互所需的所有细节都位于其 WSDL 文件中。 ●WSDL支持的消息交换方式? WSDL支持4种消息交换方式: 1)单向(One-way):服务端接收消息; 2)请求响应(Request-response):服务端点接收请求消息,然后发送响应消息; 3)要求应答(Solicit-response):服务访问端发送要求消息,然后接收应答消息。 4)通知(Notification):服务访问端点发送通知消息。
<script type="text/javascript"></script>
扩展阅读:
Class: Passport.php
class Passport {
const E_USERNAME_INVALID = 1;
public $username;
public $passwd;
public $emai;
public $verifycode;
/**
* user register service
*
* @param string $username
* @param string $passwd
* @param string $email
* @param string $verifycode
*
* @return boolean
*/
public function register($username, $passwd, $email, $verifycode){
// here is register code
return $username. "\n" .
$passwd . "\n" .
$email . "\n" .
$verifycode;
}
}
WSDL: PassportSerivice.wsdl
<?xml version='1.0' encoding='UTF-8'?>
<!-- WSDL file generated by Zend Studio. -->
<definitions name="Passport" targetNamespace="urn:Passport"
xmlns:typens="urn:Passport"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns="http://schemas.xmlsoap.org/wsdl/">
<message name="register">
<part name="username" type="xsd:string"/>
<part name="passwd" type="xsd:string"/>
<part name="email" type="xsd:string"/>
<part name="verifycode" type="xsd:string"/>
</message>
<message name="registerResponse">
<part name="registerReturn" type="xsd:string"/>
</message>
<portType name="PassportPortType">
<operation name="register">
<documentation>
Enter description here...
</documentation>
<input message="typens:register"/>
<output message="typens:registerResponse"/>
</operation>
</portType>
<binding name="PassportBinding" type="typens:PassportPortType">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="register">
<soap:operation soapAction="urn:PassportAction"/>
<input>
<soap:body namespace="urn:Passport" use="literal"/>
</input>
<output>
<soap:body namespace="urn:Passport" use="literal"/>
</output>
</operation>
</binding>
<service name="PassportService">
<port name="PassportPort" binding="typens:PassportBinding">
<soap:address location="http://home/webservices/soap/new_passport/server.php"/>
</port>
</service>
</definitions>
<?php
$client = new SoapClient("http://home/webservices/soap/new_passport/PassportService.wsdl",
array(
"trace"=>1,
"exceptions"=>0,
"soap_version" => SOAP_1_2
)
);
$result = $client->register('hezhiqiang','loveit','developerworks@163.com','H6mSkD');
var_dump($result);
?>
<?php
require_once 'Passport.php';
$server = new SoapServer(
"http://home/webservices/soap/new_passport/PassportService.wsdl"
,array(
'encoding'=>'utf-8',
'soap_version' => SOAP_1_2,
'uri' => 'Passport',
'style' => SOAP_RPC,
'use' => SOAP_LITERAL)
);
$server->setClass('Passport');
$server->handle();
?>
分享到:
相关推荐
WSDL4J是一个Java库,专门用于解析和操作Web服务描述语言(WSDL)文件。WSDL是一种XML格式,用于定义网络服务的接口,包括其输入、输出、操作和服务绑定等信息。理解WSDL4J的工作原理和使用方法对于开发和消费基于...
在IT行业中,WSDL(Web Services Description Language)是一种XML格式的规范,用于描述Web服务及其接口。它定义了服务提供商和消费者之间的交互方式,包括消息格式、操作、地址和协议等。当我们面对“WSDL调用测试...
JavaScript调用WSDL(Web Service Definition Language)是Web服务客户端编程的一个重要方面,尤其是在需要与SOAP(Simple Object Access Protocol)服务交互时。本示例主要介绍如何在JavaScript中使用不同的库和...
在IT行业中,Web服务是应用程序之间进行通信的一种标准方法,而WSDL(Web Services Description Language)则是一种XML格式,用于定义Web服务的具体操作、消息结构、接口和绑定。本篇文章将详细探讨“wsdl生成java...
Web服务描述语言(WSDL,Web Services Description Language)是一种XML格式,用于定义Web服务的接口,使得客户端和服务端能够理解如何交互。WSDL文件描述了服务的位置、服务使用的消息协议以及服务提供的操作。在...
WS-Discovery、WS-Profile、WS-Security等是ONVIF协议中的关键部分,其中WS-Device管理和WS-Video等服务使用WSDL(Web Services Description Language)文件来描述其接口和服务。 标题提及的“onvif所有 wsdl文件”...
在本压缩包“wsdl.rar”中,包含了若干个WSDL文档,这对于学习和理解WebService的开发者来说是一份宝贵的学习资料。 **1. WSDL基本结构** WSDL文档由一系列元素组成,包括服务、消息、操作、绑定、端口类型和接口。...
【javax.wsdl jar包】是Java Web服务定义语言(Web Services Description Language)的一个核心库,主要用在开发基于Java的Web服务中。这个jar包包含了处理WSDL文档所需的所有类和接口,允许开发者创建、读取和修改...
**WSDL2Java命令使用详解** 在Web服务开发中,WSDL(Web Service Description Language)是一种XML格式,用于定义服务接口、操作、消息结构等。它使得服务提供者和服务消费者可以进行互操作。Apache Axis是Java平台...
对于Web Service接口,尤其是基于WSDL(Web Services Description Language)的服务,Postman同样提供了强大的支持。本文将详细阐述如何在Postman中配置并调用WSDL接口。 首先,我们需要理解WSDL。WSDL是一种XML...
在IT行业中,Web服务是应用程序之间交互的一种标准方式,而WSDL(Web Services Description Language)则是用来定义这些服务接口的XML格式规范。本项目“WSDL.rar”提供了一个C#编写的WSDL解析器,旨在帮助开发者更...
赠送jar包:wsdl4j-1.6.3.jar; 赠送原API文档:wsdl4j-1.6.3-javadoc.jar; 赠送源代码:wsdl4j-1.6.3-sources.jar; 赠送Maven依赖信息文件:wsdl4j-1.6.3.pom; 包含翻译后的API文档:wsdl4j-1.6.3-javadoc-API...
WSDL(Web Services Description Language)是一种XML格式,用于定义网络服务的接口,描述了服务的位置、消息格式以及如何调用这些服务。对于iOS开发者来说,与Web服务交互时,通常需要将WSDL接口转换为Objective-C...
在IT行业中,尤其是在Web服务开发领域,WSDL(Web Service Description Language)是一种XML格式的规范,用于定义网络服务的接口。Java作为一种广泛使用的编程语言,提供了处理WSDL文档的能力,帮助开发者获取服务中...
在IT行业中,Web Service Description Language(WSDL)是一种XML格式的规范,用于描述网络服务,特别是Web服务的接口。WSDL文件定义了服务的位置、可用操作以及如何与这些操作进行通信。当开发人员想要调用一个基于...
标题中的“通过本地Java代码访问WSDL接口”指的是在Java编程环境中,利用WSDL(Web Service Description Language)文件来创建客户端代理类,从而调用远程Web服务。WSDL是一种XML格式,它定义了Web服务的接口,包括...
【标题】"javax.wsdl_1.6.2.v201012040545.jar" 是一个Java Web Services Description Language (WSDL) 的实现库,由Java Community Process (JCP) 提供,版本号为1.6.2,发布日期为2010年12月4日。 【描述】该jar...
### 手动生成WSDL代理类:深入理解与实践 在软件开发中,Web Service作为一种流行的分布式计算模型,允许不同应用程序之间进行数据交换和方法调用,而WSDL(Web Services Description Language)则作为描述Web ...
**WSDL(Web Service Description Language)详解** WSDL,全称Web服务描述语言(Web Service Description Language),是一种XML格式的规范,用于定义网络服务的接口。它为Web服务提供了标准化的描述方法,使得...