用于这个 WSDL 的 SOAP 消息如清单 7 所示:
清单 7. 用于 myMethod 的文档/文字 SOAP 消息
<soap:envelope>
<soap:body>
<xElement>5</xElement>
<yElement>5.0</yElement>
</soap:body>
</soap:envelope>
优点
没有类型编码信息。
您可以在最后用任何 XML 检验器检验此消息的有效性。soap:body 里面的所有内容都定义在 schema 中。
文档/文字是遵循 WS-I 的,但是有限制(参阅缺点)。
缺点
WSDL 有一点复杂。不过,这是一个非常小的缺点,因为 WSDL 并没有打算由人来读取。
SOAP 消息中缺少操作名。而如果没有操作名,发送就可能比较困难,并且有时变得不可能。
WS-I 仅仅允许 SOAP 消息中 soap:body 的一个子元素。正如你在清单 7 中所见的那样,该消息的 soap:body 有两个子元素。
文档/文字样式似乎只是重新排列了一下 RPC/文字模型中的优点和缺点。你可以验证该消息,但是你已经失去了操作名。有没有什么办法可以改进这一点呢?是的,它就是文档/文字包装模式。
文档/文字包装模式
在我描述文档/文字包装模式的规则之前,让我先向您展示 WSDL 和 SOAP 消息,如清单 8 和 清单 9 所示。
清单 8. 用于 myMethod 的文档/文字封装的 WSDL。
<types>
<schema>
<element name="myMethod">
<complexType>
<sequence>
<element name="x" type="xsd:int"/>
<element name="y" type="xsd:float"/>
</sequence>
</complexType>
</element>
<element name="myMethodResponse">
<complexType/>
</element>
</schema>
</types>
<message name="myMethodRequest">
<part name="parameters" element="myMethod"/>
</message>
<message name="empty">
<part name="parameters" element="myMethodResponse"/>
</message>
<portType name="PT">
<operation name="myMethod">
<input message="myMethodRequest"/>
<output message="empty"/>
</operation>
</portType>
<binding …/>
<!– I won’t bother with the details, just assume it’s document/literal. –>
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
SAP收购CallidusCloud 与Salesforce竞争
一直被称为后台办公巨头的SAP现在似乎也想在前台办公大展拳脚。 最新的迹象是SAP收购CallidusClou […]
-
API设计如龙生九子 各不相同
IT咨询管理公司CA Technologies对API产业做了个问卷调查,问卷内容涉及API设计风格以及管理部署的新动向。调查结果表明,JSON与XML可谓两分天下。
-
API设计:如何正确开发应用程序接口
在交互组件化软件的世界里,没有比让组件之间以及组件与移动设备和浏览器之间进行连接的应用程序接口(API)更重要的东西了。
-
从头开始实现领域驱动设计
领域描述业务;它是驱动企业的概念和逻辑的集合。如果遵循领域驱动设计(DDD)这一本质,那么领域就是应用程序中最重要的组成部分。