WSDL1.1学习笔记
2015-08-05 09:29
155 查看
WSDL属于Web服务的描述层,定义了如何描述Web服务。根据WSDl提供的消息,Web服务的请求者可以构造相应的SOAP消息,以消费Web服务。
WSDL协议将其对服务的描述分为两部分:抽象定义和具体实现。
抽象定义描述了服务的操作和消息
具体实现则定义了诸如绑定等和具体的服务地址相关的消息。
下图是WSDL文档的基本结构:
下图是WSDL协议中各元素之间的主要关系图
<types>元素用来定义数据结构。定义的数据类型在消息中会被引用。这里要注意的是WSDL本身并没有提供定义数据类型的语言,而是利用已有的语言。如XML
Schema.
<message>元素定义了Web服务之间交换的消息类型。每一条消息可以分成多个部分<part>,<part>元素可以通过types属性来引用在<types>中定义的数据类型,也可以通过<element>元素引用全局定义的元素。
<portType>元素定义了Web服务支持的操作组。每一个操作由<operation>元素定义,其中又分别通过<input>和<output>元素定义了该操作的输入消息和输出消息。其实就是定义一个接口。
<binding>元素定义了如何将端口类型绑定到具体的传输协议用,如何格式化数据。应用最广泛的就是SOAP绑定(即xml转换成对象,对象转换成xml对应关系)。SOAP绑定规定如何抽取操作中的<message>元素来构造相应的SOAP消息。
<service>元素用来指明服务的地址。对于每一个定义的绑定,<service>元素包含一个<port>元素来指明它的具体地址。
WSDL1.1定义了和SOAP1.1的绑定,WSDL2.0则定义了和SOAP1.2的绑定。
WSDL2.0与WSDL1.1的改进主要有:
根元素为<description>,替代了1.1中的<definitions>
去掉了<message>元素,在定义操作时直接引用XML Schema定义的合局元素。
使用元素<interface>代替<portType>
引入了接口的继承,可以像面向对象一样,通过继承现有的接口来定义新的接口
使用元素<endpoint>代替了<port>元素
每个<service>只能实现一个接口,但可以包含不同的实现,即可以包含多个<endpoint>元素,分别对应不同的地址和实现。
WSDL协议将其对服务的描述分为两部分:抽象定义和具体实现。
抽象定义描述了服务的操作和消息
具体实现则定义了诸如绑定等和具体的服务地址相关的消息。
下图是WSDL文档的基本结构:
下图是WSDL协议中各元素之间的主要关系图
<types>元素用来定义数据结构。定义的数据类型在消息中会被引用。这里要注意的是WSDL本身并没有提供定义数据类型的语言,而是利用已有的语言。如XML
Schema.
<message>元素定义了Web服务之间交换的消息类型。每一条消息可以分成多个部分<part>,<part>元素可以通过types属性来引用在<types>中定义的数据类型,也可以通过<element>元素引用全局定义的元素。
<portType>元素定义了Web服务支持的操作组。每一个操作由<operation>元素定义,其中又分别通过<input>和<output>元素定义了该操作的输入消息和输出消息。其实就是定义一个接口。
<binding>元素定义了如何将端口类型绑定到具体的传输协议用,如何格式化数据。应用最广泛的就是SOAP绑定(即xml转换成对象,对象转换成xml对应关系)。SOAP绑定规定如何抽取操作中的<message>元素来构造相应的SOAP消息。
<service>元素用来指明服务的地址。对于每一个定义的绑定,<service>元素包含一个<port>元素来指明它的具体地址。
WSDL1.1定义了和SOAP1.1的绑定,WSDL2.0则定义了和SOAP1.2的绑定。
WSDL2.0与WSDL1.1的改进主要有:
根元素为<description>,替代了1.1中的<definitions>
去掉了<message>元素,在定义操作时直接引用XML Schema定义的合局元素。
使用元素<interface>代替<portType>
引入了接口的继承,可以像面向对象一样,通过继承现有的接口来定义新的接口
使用元素<endpoint>代替了<port>元素
每个<service>只能实现一个接口,但可以包含不同的实现,即可以包含多个<endpoint>元素,分别对应不同的地址和实现。
相关文章推荐
- wxPython--Python GUI编程参考链接
- LAMP自动安装脚本第三版
- 只会左键断点?是时候试试这样那样断点了
- VS2013编译安装VTK-6.2.0_支持Qt5.4.2
- 集合类型图
- 倾情大奉送--Spark入门实战系列
- 6、Concurrent-Mark-Sweep
- SURF算法
- C++中的单例模式
- 大数据的机遇与挑战:清华、复旦、中科院、春雨移动及考拉征信专家的观点
- Android4.0 Launcher拖拽原理分析
- ctime、mtime、atime
- 在安卓开发中实现退出App时销毁所有Activity
- FPGA+DSP视频监控
- Mac环境Sublime text2解决中文乱码的问题
- JavaScript实现删除,移动和复制文件的方法
- POJ 2594 Treasure Exploration【最小路径覆盖+缩点】
- DSP、CAN、USB、以太网系统
- 未能找到类型或命名空间名称“SYNCTMS”(是否缺少 using 指令或程序集引用?)
- 用Hexo搭建的博客中开启评论功能