`

XML中的消息交互绑定类型

阅读更多
小结一下XML中的消息交互绑定类型,首先是几个概念:





先说Literal与Encoding

Literal就是不在SOAP消息中表明数据类型,而通过其它方式获知数据类型,这种方式是开发包相关的,没有什么标准;如<x>50</x>,单从SOAP消息,你无法判断50是数字还是字符串,而具体的类型可以在开发包将SOAP请求映射到具体的Service类时来确定并完成转换,对于返回值也一样,客户端可已通过SetReturnValueType(...)之类的方法告知开发包自己期待什么类型

Encoding就是在SOAP消息中携带类型信息,并且依据某种规则将数据编码传递,接收端可以根据类型信息和编码规则完成解码,获得原始数据;如<x xsi:type="xsd:string">50</x>

再看RPC与literal
在 RPC 样式中,XML 有效负载包装在 SOAP 主体中的 operation 元素内。另一方面,Document 样式的消息将 XML 有效负载直接放置在 SOAP 主体中。RPC 和 Document 消息都可以为 Literal 或 Encoded 消息。比如RPC:

RPC:

<soap:Envelope >
   ...
        <soap:Body>
      <publishSomeData>
<SomeData>
<ID>123456789</ID>
<Value>33.99</Value>
</SomeData>
      </publishSomeData>
   </soap:Body>
</soap:Envelope>


其WSDL的:

<wsdl:binding name="PublishSomeData_Binding" type="tns:PublishSomeData">
    <soap:binding style="rpc"
     transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="publishSomeData">
      <soap:operation style="rpc" soapAction=
      "http://www.someCompany.com/soa/2005-03-06/publishSomeData"/>
      <wsdl:input>
        <soap:body use="literal" namespace=
        "http://www.someCompany.com/soa/2005-03-06/publishSomeData.wsdl"/>
        "http://www.someCompany.com/soa/2005-03-06/publishSomeData.wsdl"/>
      </wsdl:input>
      <wsdl:output>
        <soap:body use="literal" namespace=
        "http://www.someCompany.com/soa/2005-03-06/publishSomeData.wsdl"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>



在 Document-literal 样式的 SOAP 消息中,SOAP 主体仅包含 XML 有效负载,而不会包装操作名称。典型的 Document 样式 SOAP 消息与以下所示内容类似:

<soap:Envelope>
...
   <soap:Body>
<SomeData>
<ID>123456789</ID>
<Value>33.99</Value>
</SomeData>
   </soap:Body>
</soap:Envelope>


其WSDL为:

...
   <wsdl:binding name="PublishSomeData_Binding" type="tns:PublishSomeData">
    <soap:binding style="document"
     transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="publishSomeData">
      <soap:operation  style="document"
       soapAction=
       "http://www.someCompany.com/soa/2005-03-06/publishSomeData"/>
      <wsdl:input name="SomeData">
        <soap:body use="literal"/>
      </wsdl:input>
      <wsdl:output name="returnData">
        <soap:body use="literal"/>
      </wsdl:output>
    </wsdl:operation>
  </wsdl:binding>




1
0
分享到:
评论

相关推荐

    XML轻松学习手册--XML肯定是未来的发展趋势,不论是网页设计师还是网络程序员,都应该及时学习和了解

    你要在DTD中定义一个元素,然后在XML文档中使用。元素的定义语法为:&lt;!ELEMENT DESCRIPTION (#PCDATA, DEFINITION)*&gt; 说明: "&lt;!ELEMENT" 是元素的声明,说明你要定义的是一个元素; 声明后面的"DESCRIPTION",...

    SQL Server 2005的XML支持与异常处理

    SQL Server 2005的一组新功能以新的XML数据类型为中心,该数据类型在与SQL Server交互的企业应用程序中管理XML数据方面前进了一大部。现在,XML文档或片段可以存储于XML列、绑定到架构、还可以利用XQuery语法查询。...

    ajax本质源码javascript xml

    AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。 主要包含了以下几种技术 Ajax的定义 基于web标准XHTML+CSS的表示; 使用 DOM进行动态显示及...

    视频XML播放

    修改视频(这个传值过去绑定XML节点有点问题,待解决) 删除视频 栏目分类管理: 大类添加 小类添加 大类列表 小类列表 内容管理: 文章管理 文章添加 解决问题: 国内大多都是Win2003的主机,FLV格式文件...

    InteractiveHtmlBom-master-交互式bom表.zip

    此外,如果您通过网表文件或通过 Eeschema 可以从其内部 bom 工具生成的 xml 文件导出它,它可以从原理图中提取数据。该额外数据可以添加为 BOM 表中的附加列(例如制造商 ID),也可以用于指示应完全省略哪些组件...

    MSChart使用手册

    继续对MSChart学习:本次主要针对MSChart的图形交互和AJAX的应用。 22 二. AJAX(一)——Click Event 23 三. AJAX(二)——Chart as Trriger 29 四. AJAX(三)——AJAX更新 31 五. AJAX(四)——Real Time Chart 35 解决...

    安卓之绑定服务

    绑定服务提供了一个客户端–服务器接口,允许组件与服务进行交互、发送、请求、获取结果、甚至是利用进程间通信(IPC)跨进程执行这些操作,仅当与另一个应用程序绑定时,绑定服务才会执行,多个组件可以同时绑定...

    基于Java的XML解析与反射设计模式.doc

    关键词:xml java 在web中,多系统间数据交互一般使用webservice技术,它是一种构建应用程序的普遍模 型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的web应用程序分支, 是自包含、自描述、模块化的...

    实验四-Android基本组件交互实验.doc

    Broadcast Receiver组件 Broadcast Receiver同Service一样,并不提供与用户交互的表示层,其实是一种负责接收广播消息 并对消息作出反应的组件。在Android的系统中就存在许多这样的广播,比如电池电量过 低或信号过...

    JAVA_API1.6文档(中文)

    javax.xml.datatype XML/Java 类型映射关系。 javax.xml.namespace XML 名称空间处理。 javax.xml.parsers 提供允许处理 XML 文档的类。 javax.xml.soap 提供用于创建和构建 SOAP 消息的 API。 javax.xml.stream...

    &nbsp;Java解析XML的一种数据绑定技术

    文中为了进一步用Java语言有效地解析XML文件,提出了一套XML文件与Java程序的绑定技术,通过该技术方法能够使开发人员方便地将XML文件在不同平台之间进行交互,达到跨平台的目的,经过实际测试,该方法解析数据效率...

    Owl 学习笔记之六--表单输入绑定 我们经常需要能够从 html input(或 textarea, or select)中

    Owl 学习笔记之六--表单输入绑定 我们经常需要能够从 html input(或 textarea, or select)中读取值是很常见的(注意:它不需要在表单中!)。一种可能的方法是手动完成,如下: class Form extends owl....

    WebServices模式——第一部分:基本数据类型

    大多数web服务不与XML文档直接交互,而是通过web服务工具包的数据绑定转换层。这方便了应用开发人员,因为这意味着他们可以直接使用选定编程语言的数据结构。但是数据绑定过程需要处理模式数据类型、结构和编程语言...

Global site tag (gtag.js) - Google Analytics