<binding>和<operation>元素

  Binding栏是完整描述协议、序列化和编码的地方,Types, Messages和PortType栏处理抽象的数据内容,而Binding栏是处理数据传输的物理实现。Binding栏把前三部分的抽象定义具体化。

  把相关的数据制定和消息声明分开,这意味着同一类型服务的提供者可以把一系列的操作标准化。每个提供者可以提供定制的binding来互相区分。WSDL也有一个重要的结构,使抽象定义可以放在分离的文件中,而不是和Bindings和Services在一起,这样可在不同的服务提供者之间提供标准化的抽象定义,这很有帮助。例如,银行可以用WSDL文档来标准化一些银行的操作。每个银行仍然可以自由的订制下层的协议、串行优化,及编码。

  下面是重载的WSDL示例 的Binding栏,重复在此以便讨论:

<binding name="fooSampleBinding" type="wsdlns:fooSamplePortType">
<stk:binding preferredEncoding="UTF-8" />
<soap:binding style="rpc"
 transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="foo">
 <soap:operation soapAction="http://tempuri.org/action/foo1"/>
  <input name="foo1">
   <soap:body use="encoded" namespace="http://tempuri.org/message/"
         encodingStyle=
         "http://schemas.xmlsoap.org/soap/encoding/" />
  </input>
 </operation>
<operation name="foo">
<soap:operation soapAction="http://tempuri.org/action/foo2"/>
 <input name="foo2">
  <soap:body use="encoded"
          namespace="http://tempuri.org/message/"
        encodingStyle=
          "http://schemas.xmlsoap.org/soap/encoding/" />
 </input>
</operation>
</binding>

  <binding>元素已经取了一个名字(本例中"fooSampleBinding"),这样就可以被Services栏的<port>元素引用了。它有一个"type"的属性引用<portType>,本例中就是"wsdlns:fooSamplePortType"。第二行是MSTK2的扩展元素<stk:binding>,它指定了preferredEncoding属性为"UTF-8"。

  <soap:binding>元素指定了所使用的风格("rpc")和传输方式。Transport属性应用了一个namespace,正是这个namespace指明使用HTTP SOAP协议。

  有两个同以"foo"命名的<operation>元素。唯一不同的是它们各自的<input>名字,分别为"foo1"和"foo2"。两个<operation>元素中的<soap:operation>元素有同样的"soapAction"属性,是URI。soapAction属性是SOAP特定的URI,它只是简单的使用于SOAP消息。所产生的SOAP消息有一个SOAPAction头,而URI也仅在<soap:operation>元素里才起作用。soapAction属性在HTTP的binding中是必需的,但在其他非HTTP binding中却不要提供。目前它的使用并不清楚,但它似乎有助于本例中的两个"foo"操作。SOAP 1.1指明soapAction用来确定消息的"意图"。似乎服务器可以在不解析整个消息的情况下就能使用这一属性来发送消息。实际上,它的使用多种多样。<soap:operation>元素也可以包含另一属性,即"style"属性,在有必要冲突<soap:binding>元素指定的风格时可以使用。

  <operation>属性可以包含<input>, <output> 和<fault>的元素,它们都对应于PortType栏中的相同元素。只有<input>元素在上例中提供。这三个元素中的每一个可有一个可选的"name"属性,在本例中,我们用这种方法来区分同名操作。在本例的<input>元素中有一个<soap:body>元素,它指定了哪些信息被写进SOAP消息的信息体中。该元素有以下属性:

  Use

   用于制定数据是"encoded"还是"literal"。"Literal"指结果SOAP消息包含以抽象定义(Types, Messages, 和PortTypes)指定格式存在的数据。"Encoded"指"encodingStyle"属性决定了编码方式。

  Namespace

   每个SOAP消息体可以有其自己的namespace来防止命名冲突。这一属性制定的URI在结果SOAP消息中逐字使用。

  EncodingStyle

   对SOAP编码,它应该有以下URI值:

"http://schemas.xmlsoap.org/soap/encoding"

转载于:https://www.cnblogs.com/guodapeng/archive/2008/03/13/1103763.html

<binding>和<operation>元素相关推荐

  1. WSDL——Web Service Description Language

    让我们来看一个示例WSDL文件的结构及工作原理.请注意这只是一个十分简单的WSDL文档实例.我们的目的只是简单展示下最显著的特征,后面的章节有对其详细的讨论. <?xml version=&qu ...

  2. watir是如何定位元素的

    最近将watir更新到了1.9.1,忽然发现以前承诺的带大家读waitr源码的"夸夸其谈"还尚未实现,甚表歉意,暂且先说明一下watir定位(locate)元素的基本原来,聊以将功 ...

  3. 深入浅出WPF学习笔记之Binding

    深入浅出WPF之Binding Binding Binding基础 Binding模型 把控件作为Binding源与Binding标记扩展 Binding的(Path)路径 Binding支持多级路径 ...

  4. 了解下WSDL 绑定

    WSDL(网络服务描述语言,Web Services Description Language)是一门基于 XML 的语言,用于描述 Web Services 以及如何对它们进行访问.WSDL 绑定可 ...

  5. java webservice接口开发_php开发webservice服务端接口(wsdl)

    首先要创建两个文件Test.php Test.wsdl Test.php文件代码是处理具体业务的接口代码 Test.php代码: ?php ini_set("soap.wsdl_cache_ ...

  6. webservice(二)简单实例

    1.建立WSDL文件      建立WSDL的工具很多,eclipse.zendstudio.vs都可以,我个人建议自己写,熟悉结构,另外自动工具对xml schame类型支持在类型中可能会报错. 下 ...

  7. WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现[WS标准篇]

    元数据实际上是服务终结点的描述,终结点由地址(Address).绑定(Binding)和契约(Contract)经典的ABC三要素组成.认真阅读过<WCF技术剖析(卷1)>的读者相对会对这 ...

  8. Web Service学习笔记

    Web Service概述 Web Service的定义 W3C组织对其的定义例如以下,它是一个软件系统,为了支持跨网络的机器间相互操作交互而设计.Web Service服务通常被定义为一组模块化的A ...

  9. jbpm4.4基础知识

    对jBPM4.4数据库的几张表简单介绍: A.资源库和运行时表结构 JBPM4_DEPLOYMENT   流程定义表                                          ...

  10. WSDL中文版——详解

    为什么使用WSDL? 像Internet协议之类的标准有没有为权威所利用,或者人们这样看待它是因为顺之所获的好处远远超出了代价?曾经有许多试图建立的标准都流产了.有时候,那些还没有普遍使用的标准甚至由 ...

最新文章

  1. 在进行商业运算时解决BigDecimal的精度丢失问题
  2. 遗传算法对于神经网络的优生优育
  3. 《研磨设计模式》chap24 桥接模式bridge(1)基本概念
  4. Go语言,在Ubuntu9.10和Windows安装
  5. select的列子说明select内部实现原理
  6. mysql设置空值显示null_mysql的空值与NULL的区别
  7. oracle导出表统计信息,Oracle统计信息的导出与导入
  8. 特征提取、特征描述、特征匹配的通俗解释
  9. 常见移动机器人轮直径校准实现(ROS)方法
  10. 常见图片格式总结--网页设计必备
  11. windows +caffe+python2.7或者python3.5编译 。
  12. HCIE-RS的学习过程考证心得(面试过渡新版本)
  13. 开源协议(GPL,LGPL,BSD,MIT,Apache)
  14. CCF201809-3 元素选择器
  15. 《C程序设计》谭浩强
  16. linux环境中设定开机自启动与定时任务
  17. 两套工厂通用ERP系统【源代码免费分享】
  18. 探寻维纳控制论密码,解读“人工智能”各大学派
  19. ubantu18.10安装mysql
  20. Mysql常见面试题(进阶知识点)

热门文章

  1. 用shell批量修改文件名
  2. 2019 年 Spread.NET 产品路线图(Roadmap)
  3. python面向对象三大特性之继承
  4. 数据结构和算法分析 引论+算法分析
  5. BootStrap学习笔记,优缺点总结
  6. 非存储过程分页- 前台分页样式和控件
  7. installation of igraph for python2.7
  8. python中setup函数的用法_Vue 3 setup 函数
  9. 使用mail发送附件
  10. k8s中几种port介绍