`
mengdejun
  • 浏览: 400138 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

WSDL

    博客分类:
  • Web
阅读更多

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();
?>

 

分享到:
评论
1 楼 kreding 2011-11-22  
//长知识了!!

相关推荐

    wsdl4j-1.6.3-API文档-中文版.zip

    赠送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...

    wsdl4j 解析wsdl 文件

    wsdl4j 解析wsdl 文件wsdl4j 解析wsdl 文件wsdl4j 解析wsdl 文件

    wsdl例子wsdl例子wsdl例子

    wsdl例子wsdl例子wsdl例子wsdl例子wsdl例子wsdl例子wsdl例子wsdl例子wsdl例子wsdl例子wsdl例子wsdl例子wsdl例子wsdl例子wsdl例子

    wsdl2java工具

    wsdl2java工具 修改WSDL2Java(URL).bat后直接双击运行即可 编辑 WSDL2Java(URL).bat set Axis_Lib=.\lib //引用包 set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib% set Output_Path=.\source //输出目录 set Package...

    WSDL开发技术详解

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

    wsdl调用测试工具

    wsdl调用测试工具

    完整的WSDL解析,每一个标签都有得到

    之前有人写过,但是有点错误,并且描述不是很清晰。这是我的完整解析wsdl的方法 wsdl wsdl wsdl wsdl wsdl wsdl wsdl wsdl wsdl wsdl wsdl

    wsdl详解(webservice)

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

    wsdl生成java代码工具

    wsdl生成java代码的工具,运行wsdl2java.cmd ,可根据代码的实际需求修改成路径, wsdl生成java代码的工具,运行wsdl2java.cmd ,可根据代码的实际需求修改成路径

    利用wsdl.exe生成webservice代理类

    利用wsdl.exe生成webservice代理类: 根据提供的wsdl生成webservice代理类 1、开始-&gt;程序-&gt;Visual Studio 2005 命令提示 2、输入如下红色标记部分 D:\Program Files\Microsoft Visual Studio 8\VC&gt;wsdl /...

    WSDL.rar_C# 解析wsdl文件_WSDL_解析WSDL

    使用C#开发的一个WSDL解析器。可以从本地或网络获取WSDL文件进行分析。

    wsdl2java命令使用

    wsdl2java.bat使用方法 wsdl2java包 axis所有的包

    抛出无法找到主类:org.apache.axis.wsdl.WSDL2Java

    抛出无法找到主类:org.apache.axis.wsdl.WSDL2Java(Throws Could not find main class: org.apache.axis.wsdl.WSDL2Java)。 添加本文的jar包压缩包解压出来的所有jar包到当前使用的java.exe 命令的lib目录下的ext...

    JavaScript 调用wsdl示例

    JavaScript 调用wsdl示例,包含通过dot创建的ws示例

    cxf-rt-wsdl-3.0.1-API文档-中文版.zip

    赠送jar包:cxf-rt-wsdl-3.0.1.jar; 赠送原API文档:cxf-rt-wsdl-3.0.1-javadoc.jar; 赠送源代码:cxf-rt-wsdl-3.0.1-sources.jar; 赠送Maven依赖信息文件:cxf-rt-wsdl-3.0.1.pom; 包含翻译后的API文档:cxf-rt...

    ONVIF WSDL and XML Schemas Specifications

    Nov 2010 - ONVIF Device Management Service WSDL, ver 1.2 Nov 2010 - ONVIF Event Service WSDL, ver 1.2 Nov 2010 - ONVIF Display Service WSDL, ver 1.0 Nov 2010 - ONVIF Device_IO Service WSDL, ver 1.0...

    WSDL2Java工具包

    2、解压之后,编辑(包名,输出路径,wsdl)参数并运行WSDL2Java(URL).bat或者WSDL2Java(file).bat后,将在source中生成WebService客户端代码。 3、直接使用生成的代码调用WebService服务即可。

    最新联通VAC接口WSDL文件

    最新联通VAC接口WSDL文件 VacSyncService_SPClient_20091212.wsdl.xml

    onvif_wsdl下载方法

    很多人想下载onvif 的wsdl,但每次从官方网站点击进去都得到一个网页,而不是弹出一个下载页面,本文档简单说明一下onvif 的wsdl 文档下载方法。

    根据wsdl文件生成webservice客户端工具(java)

    根据对方提供的webservice地址,你先将对方webservice的wsdl文件描述文件保存到本地为后缀名为.wsdl的文件,然后保存到Tools的这个文件夹下,编辑WSDL2AxisClient.bat这个文件,将%Java_Cmd% org.apache.axis.wsdl....

Global site tag (gtag.js) - Google Analytics