一个完整的WSDL文档及各标签详解
<?xml version="1.0" encoding="UTF8" ?>
<wsdl:definitions targetNamespace="http://www.57market.com.cn/HelloService" xmlns:soapenc12="http://www.w3.org/2003/05/soapencoding" xmlns:tns="http://www.57market.com.cn/HelloService" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap11="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc11="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soap12="http://www.w3.org/2003/05/soapenvelope">
/**
* type元素,定义了交换信息的数据格式。
* 为了实现最大的互操作性(interoperability)和平台中立性(neutrality),WSDL选用XML Schema DataTypes
* 简称XSD作为标准类型系统,并将它作为固有类型系统。
* 下面是数据定义部分,该部分定义了两个元素,一个是sayHello,一个是sayHelloResponse:
* sayHello:定义了一个复杂类型,仅仅包含一个简单的字符串,将来用来描述操作的参入传入部分;
* sayHelloResponse:定义了一个复杂类型,仅仅包含一个简单的字符串,将来用来描述操作的返回值;
*/
<wsdl:types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://www.57market.com.cn/HelloService">
<xsd:element name="sayHello">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="in0" nillable="true" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="sayHelloResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="1" name="out" nillable="true" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
/**
* message元素指定XML 数据类型组成消息的各个部分。message元素用于定义操作的输入和输出参数。
* 该部分是信息格式的抽象定义:定义了两个消息sayHelloResponse和sayHelloRequest:
* sayHelloRequest:sayHello操作的请求消息格式,由一个消息片断组成,名字为parameters,
* 元素是我们前面定义的 types中的元素;
* sayHelloResponse:sayHello操作的响应消息格式,由一个消息片断组成,名字为parameters,
* 元素是我们前面定义 *的types中的元素;
* 如果采用RPC样式的消息传递,只需要将文档中的element元素应以修改为type即可。
*message:用來定義消息的結構
*part:指定引用types中定義的標籤片斷
*/
<wsdl:message name="sayHelloRequest">
<wsdl:part name="parameters" element="tns:sayHello" />
</wsdl:message>
<wsdl:message name="sayHelloResponse">
<wsdl:part name="parameters" element="tns:sayHelloResponse" />
</wsdl:message>
/**
* portType元素中定义了Web服务的操作。操作定义了输入和输出数据流中可以出现的XML消息。
* 一些抽象操作的集合。每个操作关联一个输入消息和一个输出消息。
* portType定义了服务的调用模式的类型,这里包含一个操作sayHello方法,同时包含input和output表明
* 该操作是一个 请求/响应模式,请求消息是前面定义的sayHelloRequest,
* 响应消息是前面定义的 sayHelloResponse。input表示传递到Web服务的有效负载,
* output消息表示传递给客户的有效负载。
*portType:用來定義服務端的SEI
*operation:用來指定SEI中的處理請求的方法
*input:指定客戶端應用傳過來的數據,會引用上面的而定義的<message>
*output:指定服務端返回給客戶端的數據,會引用上面的而定義的<message>
*/
<wsdl:portType name="HelloServicePortType">
<wsdl:operation name="sayHello">
<wsdl:input name="sayHelloRequest" message="tns:sayHelloRequest" />
<wsdl:output name="sayHelloResponse" message="tns:sayHelloResponse" />
</wsdl:operation>
</wsdl:portType>
/**
* binding 元素描述特定服务接口的协议、数据格式、安全性和其它属性。
* 针对操作和portType中使用的消息指定实际的协议和数据格式规范。
*binding:用於定義SEI的實現類
*type屬性:引用上面的<portType>
*<soap:operation style="document" /> 綁定的數據是一個document(xml)
*operation:用來定義實現的方法
*<soap:operation style="document" /> 傳輸的是document(xml)
*input:指定客戶端應用傳過來的數據
*<soap:body use="literal" />:文本數據
*output:指定服務器端返回客戶端的數據
*<soap:body use="literal"/>:文本數據
*/
<wsdl:binding name="HelloServiceHttpBinding" type="tns:HelloServicePortType">
<wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="sayHello">
<wsdlsoap:operation soapAction="" />
<wsdl:input name="sayHelloRequest">
<wsdlsoap:body use="literal" />
</wsdl:input>
<wsdl:output name="sayHelloResponse">
<wsdlsoap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
/**
* service元素。服务元素包含一组port元素。端口将端点与来自服务接口定义的binding 元素关联起来。
* port指定一个绑定的地址,这样定义一个通信的终端。
*service:一個webservice的容器
*name:屬性:它用以指定一個服務器端處理請求的入口(就是SEI的實現)
* binding屬性:引用上面定義的<binding>
*address:當前webservice的請求地址
*/
<wsdl:service name="HelloService">
<wsdl:port name="HelloServiceHttpPort"binding="tns:HelloServiceHttpBinding">
<soap:address location="http://localhost:8080/xfire/services/HelloService" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
一个完整的WSDL文档及各标签详解的更多相关文章
- elasticsearch系列三:索引详解(分词器、文档管理、路由详解(集群))
一.分词器 1. 认识分词器 1.1 Analyzer 分析器 在ES中一个Analyzer 由下面三种组件组合而成: character filter :字符过滤器,对文本进行字符过滤处理,如 ...
- 使用vs code编写Markdown文档以及markdown语法详解
首先安装vscode工具,下载地址如下: https://code.visualstudio.com/ 在vs code的扩展中安装: Markdown Preview Enhanced 这款插件,安 ...
- MongoDB开发深入之一:文档数据关系模型详解(一对多,多对多)
文档关联模型通常有3种方式: 嵌入式(一对一.一对多) 后期手动统一ID处理(一对多.多对多) References引用(一对一.一对多) 文档树模型通常有3种方式: 父引用(Parent Refer ...
- 逆向分析一个完整的C++程序包含寄存器与参数传递详解
最近在分析C++ dump 文件的时候觉得有必要将一些必要的反汇编东西总结一下以备别人参考,自己有时间的时候也可以进行更多的改进.下面通过一个简单的C++代码转成汇编代码后的详细解释说明一下C++和汇 ...
- 文档学习 - UILabel - 属性详解
#import "ViewController.h" @implementation ViewController - (void)viewDidLoad { [super vie ...
- 利用wsdl.exe自动将wsdl文档转换为C#代码
1.获取完整的wsdl文档 获取下面这个博客中提到的wsdl http://www.cnblogs.com/LCCRNblog/p/3716406.html 将获取到的wsdl放到一个文本中,改后缀( ...
- WSDL 文档-一个简单的 XML 文档
WSDL 文档是利用这些主要的元素来描述某个 web service 的: <portType>-web service 执行的操作 <message>-web service ...
- 最近学习工作流 推荐一个activiti 的教程文档
全文地址:http://www.mossle.com/docs/activiti/ Activiti 5.15 用户手册 Table of Contents 1. 简介 协议 下载 源码 必要的软件 ...
- WSDL 文档解析
学习webservice,就离不了WSDL文档,他是我们开发WebService的基础,虽说,现在现在有许多WebService的开源框架使得我们可以根据WSDL生成客户端代码,但是,了解WSDL文档 ...
随机推荐
- [C#] 谈谈异步编程async await
为什么需要异步,异步对可能起阻止作用的活动(例如,应用程序访问 Web 时)至关重要. 对 Web 资源的访问有时很慢或会延迟. 如果此类活动在同步过程中受阻,则整个应用程序必须等待. 在异步过程中, ...
- [Solution] 1分钟使用log4net
log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台.文件.数据库等)的工具 官网:http://logging.a ...
- Cookie 和 Session 的区别
[[ from 老生常谈session,cookie的区别,安全性 ]] 一,为什么session,cookie经常会有人提到 做web开发的人基本上都会用session和cookie,但是仅仅只是会 ...
- CCFlow SDK模式开发
需求: 1.业务数据要保存在我们自己的数据库里 2.CCFlow有保存草稿的功能,但是领导要求每个业务都要有草稿箱,流程从草稿箱发起,每个业务单独查询,而不要在CCFlow的统一界面查询,所以每 ...
- 循序渐进开发WinForm项目(1) --数据库设计和项目框架的生成
随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...
- ASP.NET中使用DropDownList实现无刷新二级联动详细过程
Demo.sql create table Car( [id] int identity, ) not null, ) not null ) go insert into Car ([brand],[ ...
- knockoutjs+jquery.gridgroup 实现table数据加载和行合并
目标 使用ajax获取到json数据后,通过ko绑定到表格,然后通过jquery.gridgroup插件实现行合并,效果如下: 步骤 1.引入插件 <script src="~/Scr ...
- 【C++】第1章 在VS2015中用C++编写控制台应用程序
分类:C++.VS2015 创建日期:2016-06-12 一.简介 看到不少人至今还在用VC 6.0开发工具学习C++,其实VC 6.0开发工具早就被淘汰了.这里仅介绍学习C++时推荐使用的两种开发 ...
- Oracle 查询并删除重复记录的SQL语句
查询及删除重复记录的SQL语句 1.查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断select * from peoplewhere peopleId in (select ...
- 屏幕字段结构SCREEN的字段含义
在SAP屏幕中,一个字段就像.NET中的一个控件,这个字段对应一个SCREEN结构,就像控件的多个属性. SE11可以查看SCREEN结构中的字段,只是没有备注. 名称 长度 说明 NAME 屏幕字段 ...