WSDL学习笔记
来源:互联网 发布:遴选数据库收录期刊 编辑:程序博客网 时间:2024/04/29 17:04
一、 WSDL简介
1. 什么是WSDL
ü 是网络服务描述语言
ü 使用XML编写
ü 也可以用于定位网络服务
二、 WSDL文档
1. WSDL文档结构
WSDL文档用这些主要元素描述web service(本文中建成ws):
<wsdl:portType> ws可以执行的操作
<wsdl:message> ws使用的消息?
<wsdl:types> ws使用的数据类型
<wsdl:binding> ws使用的通讯协议
一个WSDL文档的主要结构:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions>
<wsdl:types>
……
</wsdl:types>
<wsdl:message name="settleMessageRequest">
……
</wsdl:message>
<wsdl:portType name="WebServiceClientPortType">
……
</wsdl:portType>
<wsdl:binding>
……
</wsdl:binding>
<wsdl:service name="WebServiceClient">
……
</wsdl:service>
</wsdl:definitions>
WSDL文档可以包含其他元素
WSDL types元素定义ws使用的数据类型,为了达到平台中立性,WSDL使用XML Schema语法来定义数据类型
WSDL message元素定义一个数据操作的元素,类似于函数的参数
WSDL portType元素是最重要的WSDL元素,可以描述一个ws所有可执行的操作以及相关信息,类似于函数库
WSDL Binding为每个portType定义消息格式和协议细节
2. WSDL实例
简化的WSDL文档片段
<message name=”getNameRequest”>
<part name=”term” type=”xs:string”>
</message>
<message name=”getNameResponse”>
<part name=”value” type=”xs:stirng”>
</message>
<portType name=”glossaryTerms”>
<operation name=”getTerm”>
<input message=”getNameRequest”/>
<output message=”getNameResponse”/>
</operation>
</portType>
在这个例子中,glossaryTerms为portType名称,getTerm为操作名称,getTerm拥有一个名为getNameRequest的输入消息,一个名为getNameResponse的输出消息
<message>可以定义每个message的部件part,以及相关联的数据类型
三、 WSDL端口portType
WSDL的portType描述ws所有的操作
1. 操作类型
WSDL定义了四种操作类型
One-way 此操作服务端接受消息,但不会返回响应
Request-response 服务端接受一个消息,并返回给客户端一个响应
Solicit-response 服务端发起一个请求,客户端返回一个响应 ?
Notification 服务端发送给客户端一个通知。?
2. One-way操作
<message name="newTermValues">
<part name="term" type="xs:string"/>
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="setTerm">
<input name="newTerm" message="newTermValues"/>
</operation>
</portType >
3. Request-Response 操作
<message name="getTermRequest">
<part name="term" type="xs:string"/>
</message>
<message name="getTermResponse">
<part name="value" type="xs:string"/>
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest"/>
<output message="getTermResponse"/>
</operation>
</portType>
4. Solicit-response操作
<wsdl:definitions .... >
<wsdl:portType .... > *
<wsdl:operation name="nmtoken" parameterOrder="nmtokens">
<wsdl:output name="nmtoken"? message="qname"/>
<wsdl:input name="nmtoken"? message="qname"/>
<wsdl:fault name="nmtoken" message="qname"/>*
</wsdl:operation>
</wsdl:portType >
</wsdl:definitions>
先定义output,再定义input
个人理解:client实现nmtoken方法,供server端调用。
四、 WSDL绑定
1. 绑定到SOAP
<message name="getTermRequest">
<part name="term" type="xs:string" />
</message>
<message name="getTermResponse">
<part name="value" type="xs:string" />
</message>
<portType name="glossaryTerms">
<operation name="getTerm">
<input message="getTermRequest" />
<output message="getTermResponse" />
</operation>
</portType>
<binding type=” glossaryTerms” name=”bl”>
<soap:binding style=”document” transport=” http://schemas.xmlsoap.org/soap/http" />
<operation>
<soap:operation soapAction="http://example.com/getTerm" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</soap:binding>
</binding>
binding元素有两个属性,type指示要绑定的port(函数库)glossaryTerms
soap:binding元素有两个属性,style和transport
style可以取值为document或者rpc
transport定义SOAP使用的传输协议
soap:body 的use属性可以取值为literal或者encoded
对于style和use,推荐使用document和literal
详细区别见 http://www.ibm.com/developerworks/cn/webservices/ws-whichwsdl
transport取值范围?
五、 WSDL和UDDI
略
六、 完整的WSDL语法
略
- WSDL学习笔记
- WSDL学习笔记
- WSDL学习笔记-01
- WSDL学习笔记
- WSDL学习笔记(一)
- WebService学习笔记之WSDL
- WebService学习笔记-WSDL文档分析
- webservice学习笔记(5)--WSDL文档
- WSDL笔记
- WSDL学习
- WSDL学习
- wsdl 学习
- wsdl学习
- wsdl学习
- WSDL学习
- c# Web Services学习笔记(六、WSDL概述)
- c# Web Services学习笔记(七、WSDL文档的结构)
- 【转帖】XML Schema学习笔记详解WSDL types
- Flex+blazeds实现与mySQL数据库的连接
- VC橡皮筋绘图技术的实现
- Oracle维护常用SQL语句
- vsphp for visual studio 2008 2.6.3.5601 引发 vs2008异常
- 请问如何获取字符串在数组中的位置
- WSDL学习笔记
- 【C#】c#中 uint--byte[]--char[]--string相互转换汇总
- ruby学习小程序整理
- oracle-merge用法
- Asp.Net中global.asax文件的描述
- ZigBee网络中的设备信息
- Windows server 2003上手动安装MySQL 5.4.1
- 人生学会随缘,才能活得自在
- 协调器网络的建立