翻译自 The Difference Between RPC and Document Style WSDL
rpc和document到底是什么意思?他们如何同"encoded/literal"相关联?二者的冲突来自哪里?
binding的style和use
通常情况下,web服务是由一个wadl文件来描述的的。在这个文件中,抽象的描述所支持的web服务操作和消息,然后关联到一个具体的网
络歇息和消息格式。典型的wsdl文件由这个几个元素组成:tyoes,message.porttype用来描述抽象的定义;biding和service指定具体的实
现。所有的这些元素包装在definitions元素中。
在binding元素中,rpc和document是最值得我们关注的元素。wsdl 的 binding描述了如何将service关联到消息协议;这些消息协议是
http,mime,soap中的任意一种。不过,实际中,soap是最常用的协议;rpc和document的区别也是在soap的下的区别(it is SOAP that
the RPC/document distinction refers to)。通常http(s)是传输soap消息的协议。
<wsdl:binding>元素包含一对参数,style(rpc|document)和use(encoded|literal),他俩会影响到soap消息的格式.他们的使用方式如下
:
<wsdl:binding name="Config1Binding" type="prt0:CreditLimitLocalWebServiceVi_Document">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" />
<wsdl:operation name="creditLimitCheck">
<soap:operation soapAction="" />
<wsdl:input>
<soap:body use="literal" parts="parameters" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
style属性:
wsdl1.1要求binding的style要么是rpc要么是doucment。这个选择与如何组织soap的负荷相关。下面是分别他们如何影响<soap:body>内
容的细节。
document:<soap:body>的内容由定义在<wsdl:type>中的xml模式指定。他不需要遵循特定的soap规范。简言之,soap消息是通过
<soap:body>中的document发送出去,而没有额外的要遵循的格式规则。document style是一种默认的选择。
rpc: <soap:body>元素的结构需要遵循特定的规则(soap1.1规范第7部分有细节)。根据这些规则,<soap:body>可以包含唯一一个元素
,这个元素在operation后被命名,所有的参数都必须写成这个元素的子元素。
因为可以自由的选择哪种消息格式,遵循document格式的soap消息看上去很像rpc格式。
现在,决定性的问题是:选择其中任意一个选项后的结果是什么样?为何要选择rpc或者document?很多情况下,选择他们后,soap消息
的格式看起来很相像,那么为什么还要提供这种选择呢?原因要从soap标准化的历程中寻找。
use属性
这个属性指定了soap消息的编码规则。他同样在<wsdl:binding>元素中完成。他的值为encoded或者literal.
他引用了一系列规则,soap客户端和soap服务端都遵循这些规则以解释<body>元素中的内容。
use="literal" 意味着type定义遵循xml模式定义
use="encoded" 参考xml中已有的应用数据,通常指的是soap1.1规范中的soap编码规则。如果文档中没有自定义数据,就可以选择
encoded。
分享到:
相关推荐
xmlns:soapbind="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/"> ``` - **name** 属性:定义了WSDL文档的名称。 - **...
命名空间定义 `xmlns:soapbind` 和 `xmlns:xsd` 都用于分别指定 SOAP 绑定的具体信息及 XSD 数据类型。 WSDL 的默认命名空间是 `http://schemas.xmlsoap.org/wsdl/`,SOAP 绑定的命名空间是 `...
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
铅酸电池失效仿真comsol
Java小程序项目源码,该项目包含完整的前后端代码、数据库脚本和相关工具,简单部署即可运行。功能完善、界面美观、操作简单,具有很高的实际应用价值,非常适合作为Java毕业设计或Java课程设计使用。 所有项目均经过严格调试,确保可运行!下载后即可快速部署和使用。 1 适用场景: 毕业设计 期末大作业 课程设计 2 项目特点: 代码完整:详细代码注释,适合新手学习和使用 功能强大:涵盖常见的核心功能,满足大部分课程设计需求 部署简单:有基础的人,只需按照教程操作,轻松完成本地或服务器部署 高质量代码:经过严格测试,确保无错误,稳定运行 3 技术栈和工具 前端:小程序 后端框架:SSM/SpringBoot 开发环境:IntelliJ IDEA 数据库:MySQL(建议使用 5.7 版本,更稳定) 数据库可视化工具:Navicat 部署环境:Tomcat(推荐 7.x 或 8.x 版本),Maven
Java小程序项目源码,该项目包含完整的前后端代码、数据库脚本和相关工具,简单部署即可运行。功能完善、界面美观、操作简单,具有很高的实际应用价值,非常适合作为Java毕业设计或Java课程设计使用。 所有项目均经过严格调试,确保可运行!下载后即可快速部署和使用。 1 适用场景: 毕业设计 期末大作业 课程设计 2 项目特点: 代码完整:详细代码注释,适合新手学习和使用 功能强大:涵盖常见的核心功能,满足大部分课程设计需求 部署简单:有基础的人,只需按照教程操作,轻松完成本地或服务器部署 高质量代码:经过严格测试,确保无错误,稳定运行 3 技术栈和工具 前端:小程序 后端框架:SSM/SpringBoot 开发环境:IntelliJ IDEA 数据库:MySQL(建议使用 5.7 版本,更稳定) 数据库可视化工具:Navicat 部署环境:Tomcat(推荐 7.x 或 8.x 版本),Maven
springboot124中药实验管理系统设计与实现,含有完整的源码和报告文档
解除劳动合同协议书
快速过滤图像融合Matlab代码.rar
强调图像中内核形状(例如直线)的过滤器Matlab代码.rar
在内网linux服务器安装redis 在Linux环境中离线安装Redis是常见的需求,尤其是在内网服务器上,由于无法直接访问公网,我们需要提前下载Redis的源码包并手动安装。下面将详细解释如何进行这一过程。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
微信小程序StartKitw_xapp-startkit
座位选择微信小程序版本
机械臂代码_Mechanical_arm
图像分割测试视频river-light.mp4
前端分析-2023071100789
labview源码参考示例,可供参考学习使用
MPC跟踪轨迹圆形(以后轴为基准)