wsdl绑定样式与soap消息结构.doc_第1页
wsdl绑定样式与soap消息结构.doc_第2页
wsdl绑定样式与soap消息结构.doc_第3页
wsdl绑定样式与soap消息结构.doc_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Wsdl绑定样式与soap消息结构Wsdl的绑定样式有四种:RPC/encoded、RPC /literal、document/literal、document/literal wrapped其中RPC /encoded基本要被淘汰。下面结合例子阐述下后四种样式的的优缺点和结构:例子中的wsdl是通过java2wsdl生成的。该java类包含两个方法:public StringBean complex(StringBean a,StringBean b,int beginIndex,int endIndex);public String complexStr(String a,String b,int cutBegin,int cutEnd)。其中StringBean是另一个java类,它有三个属性和一些get/set方法。complex()方法的四个参数有两个对象向类型的,两个基本类型的;而complexStr()的四个参数都是基本类型的。RPC /encoded 的wsdl绑定样式:Wsdl的RPC/encoded的绑定样式与其对应的SOAP消息结构映射如下图所示:图表 1 RPC /encoded 的wsdl与SOAP消息对应关系图中左方是wsdl部分服务描述,右边是其相应的SOAP消息。SOAP消息体(soapenv:body)下第一个元素对应wsdl中定义的操作(wsdl:operation),接下来的元素就是操作需要的输入消息(wsdl:message),他们分别与wsdl:part相对应。如果消息的某个part是复杂类型如a,则要列出a的每个属性,这些属性从a的类型,本例中是str:StringBean读出,StringBean类型在wsdl中的定义如下图所示:图表 2 wsdl中的StringBean类型定义与SOAP消息对应关系图2左侧是StringBean类型在wsdl中的定义,右侧是根据其生成的SOAP消息。通过以上两幅图我们可以看出RPC/encoded编码的优缺点:优点: WSDL 基本达到了尽可能地简单易懂的要求。 操作名出现在消息中,这样接收者就可以很轻松地把消息发送到方法的实现。 缺点: 类型编码信息(比如 xsi:type=xsd:int )通常就是降低吞吐量性能的开销。 不能简单地检验此消息的有效性,因为只有 部分内容包含在 Schema 中定义中;其余的 soap:body 内容都来自 WSDL 定义。RPC /literal 的wsdl绑定样式:下图中左边是wsdl描述文件片段,从自动生成的wsdl可以看出complexType可以用来定义复杂的消息类型,比如说对应java中的一个类,其sequence标签中就定义了对应java类的各个属性;在定义消息时,消息的part部分就对应java类方法中的参数。图表 3 RPC /literal 的wsdl与SOAP消息对应关系 图的右边是wsdl对应的SOAP消息结构,RPC /literal的SOAP消息的格式为:操作名称(如str:complex)下面包括它的参数如(如a、b、beginIndex、endIndex)如果,参数是复杂类型的其下面还要包括参数的属性(如a下面的cut、length、str)。优点: WSDL 还是基本达到了尽可能地简单易懂的要求。 操作名仍然出现在消息中。 去掉了rpc/encoded中的类型编码。 缺点: 不能简单地检验此消息的有效性,因为soap:body中的部分内容不在Schema 中,而是来自wsdl。Document/literal 的wsdl绑定样式:Document/literal与RPC不同的是所有的消息类型都在schema中有定义,而在其SOAP消息中不会出现operation的操作名。图表 4 Document/literal与其SOAP消息对应格式从上图可以看出,document/literal的SOAP消息中,只能看到操作的四个参数,而其他的信息如操作名称就看不到了。优点: 没有编码信息 。 可以在最后用任何 XML 检验器检验此消息的有效性。 soap:body中每项内容都定义在 Schema 中。 缺点: WSDL 变得有些复杂。不过,这是一个非常小的缺点,因为 WSDL 并没有打算由人来读取。 SOAP 消息中缺少操作名。而如果没有操作名,发送就可能比较困难,并且有时变得不可能。 文档/文字的样式看起来似乎只是重新安排了 RPC/文字的模型的优点和缺点。您可以检验消息的有效性,但是您失去了操作名。Document/literal wrapped的wsdl绑定样式:图表 5 Document/literal wrapped与其SOAP消息的对应关系如上图所示,在Document/literal wrapped样式中,定义了一个name与操作名相同的element,这个element是复杂类型的,它包括操作需要输入的所有参数,这样它的SOAP消息看起来就与RPC/literal一样了,SOAP中包含了操作名称。文档/文字包装的样式的特征有: 输入消息只有一个组成部分。 该部分就是一个元素。 该元素有与操作相同的名称。 该元素的复杂类型没有属性。文档/文字包装的样式的优缺点:优点

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论