采用文档/文字非包装的样式的理由
如果您已经重载了操作,就不能采用文档/文字包装的样式。
想象一下,除了我们一直在使用的方法之外,还有另一种方法,请参见清单 10。
清单 10. 用于文档/文字包装的有问题的方法
public void myMethod(int x, float y);
public void myMethod(int x);
WSDL 允许重载的操作。但是当你向 WSDL 上添加包装模式的时候,需要元素有与操作相同的名称,并且在 XML 中不能有两个名称相同的元素。所以您必须采用文档/文字非包装的样式或某种 RPC 样式。
采用 RPC/文字的样式的理由
由于文档/文字非包装的样式没有提供操作名,所以在有些情况下,您将需要采用某种 RPC 样式。比如说清单 11 中的一组方法。
清单 11. 用于文档/文字非包装的样式的问题方法
public void myMethod(int x, float y);
public void myMethod(int x);
public void someOtherMethod(int x, float y);
现在假设你的服务器接收到了文档/文字的 SOAP 消息,你可以回头看一下清单 7。服务器应该发送哪一种方法呢?所有您能确切知道的就是,它一定不是 myMethod(int x),因为消息有两个参数,而这种方法只需要一个参数。它可能是其他两种方法中的一种。采用文档/文字的样式,您没有办法知道是哪一种方法。
假定服务器接收到一个 RPC/文字的消息,而不是文档/文字的消息,如清单 5 所示。对于这种消息,服务器很容易决定把它发送到哪一种方法。你知道该操作名称是 myMethod,并且你知道你有两个参数,因此肯定是 myMethod(int x, float y)。
采用 RPC/编码的理由
使用 RPC/编码样式最重要的原因是为了数据图表。设想你有一个二进制树,如清单 12 所示。
清单 12. 二进制树节点 schema
<complexType name="Node">
<sequence>
<element name="name" type="xsd:string"/>
<element name="left" type="Node" xsd_nillable="true"/>
<element name="right" type="Node" xsd_nillable="true"/>
</sequence>
</complexType>
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
SAP收购CallidusCloud 与Salesforce竞争
一直被称为后台办公巨头的SAP现在似乎也想在前台办公大展拳脚。 最新的迹象是SAP收购CallidusClou […]
-
API设计如龙生九子 各不相同
IT咨询管理公司CA Technologies对API产业做了个问卷调查,问卷内容涉及API设计风格以及管理部署的新动向。调查结果表明,JSON与XML可谓两分天下。
-
API设计:如何正确开发应用程序接口
在交互组件化软件的世界里,没有比让组件之间以及组件与移动设备和浏览器之间进行连接的应用程序接口(API)更重要的东西了。
-
从头开始实现领域驱动设计
领域描述业务;它是驱动企业的概念和逻辑的集合。如果遵循领域驱动设计(DDD)这一本质,那么领域就是应用程序中最重要的组成部分。