清单 11. RPC 样式的 ErpAddress 消息的 WSDL 定义
…
<wsdl:message name=”publishErpAddressServiceRequest”>
<wsdl:part name=”erpAddress” type=”typeIn:ErpAddressType”>
<wsdl:documentation>publish employee address data</wsdl:documentation>
</wsdl:part>
</wsdl:message>
…
<wsdl:binding … >
<soap:binding … />
<wsdl:operation name=”publishErpAddressService”>
<soap:operation style=”rpc”/>
<wsdl:input name=”erpAddress”>
<soap:body use=”literal”
namespace=”http://someCompany.com/soa/2006-07-01/publishErpAddressService”/>
</wsdl:input>
….
</wsdl:operation>
</wsdl:binding>
尽管 ErpPerson 和 ErpAddress complexType 都可以在 RPC 样式的 WSDL 中引用,但将其定义为没有对应模式元素的 complexType 的做法并不太好,因为 complexType 无法由有效负载进行实例化。
例如,模式中的 ErpPersonType complexType 为 ErpPerson 提供了一个数据类型,包括 lastName, firstName 和 mName。它旨在用于创建以下所示的 XML 有效负载:
清单 12. 示例 ErpPerson 消息有效负载
<ErpPerson>
<lastName>Smith</lastName>
<firstName>John</firstName>
<mName>K</mName>
</ErpPerson>
不过,Venetian Blind 样式的 XML 模式无法用于生成或验证此类有效负载,因为在模式中缺乏匹配的全局元素。为了在这种情况下解决此问题,请同时为 ErpPerson 定义元素和 complexType。
混合模式
您并不必完整地定义以上列出的所有三种模式。可以在需要的情况下混合使用这些模式。例如,某些组件可以定义为元素,而其他的仅定义为 complexType。从 XML 有效负载的角度而言,一个原则是,如果组件需要在 XML 有效负载中进行实例化,则应该将其定义为元素。否则,就可以将其定义为类型。
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
BEST:SOAP/XML和REST的替代方案
虽然拥有大量的机架服务器,以及大量软件开发人员的组织,基于web和集成服务的SOAP和REST很适合他们,但也会出现问题。
-
Spring 烂!差!
有些人可能对Spring的第一印象不太好,它真的很烂,很差吗,也许这只是你的一种偏见,它也有是自己的优点的。
-
基于SOA架构的业务安全性研究
SOA在提供价值链上企业之间信息共享和业务流程自动化的同时,也给业务信息安全带来了负面影响,且存在安全隐患,这些你知道吗?
-
Java读取配置文件的几种方法
在现实工作中,我们常常需要保存一些系统配置信息,大家一般都会选择配置文件来完成,那么在Java怎样读取配置文件呢?