清单 7. 采用 Venetian Blind 模式的示例 XSD
<xs:element name=”Employee” type=”EmployeeType”/>
<xs:complexType name=”EmployeeType”>
<xs:sequence>
<xs:element name=”ErpPerson” type=”ErpPersonType”/>
<xs:element name=”ErpAddress” type=”ErpAddressType”/>
</xs:sequence>
</xs:complexType>
<xs:complexType name=”ErpPersonType”>
<xs:sequence>
<xs:element name=”lastName” type=”xs:string”/>
<xs:element name=”firstName” type=”xs:string”/>
<xs:element name=”mName” type=”xs:string”/>
</xs:sequence>
</xs:complexType>
<xs:complexType name=”ErpAddressType”>
<xs:sequence>
<xs:element name=”streetNumber” type=”xs:string”/>
<xs:element name=”streetName” type=”xs:string”/>
<xs:element name=”suiteNumber” type=”xs:string”/>
<xs:element name=”city” type=”xs:string”/>
<xs:element name=”stateOrProvince” type=”xs:string”/>
<xs:element name=”country” type=”xs:string”/>
<xs:element name=”postalCode” type=”xs:string”/>
</xs:sequence>
</xs:complexType>
此模式可以用于在 WSDL 中定义 Document 和 RPC 样式的 Employee 消息,因为其中既包括全局级别的元素,也包括类型。不过,它并不支持 ErpPerson 和 ErpAddress 的 Document 样式的消息,因为二者都仅定义为了“complexType”。采用 Venetian Blind 模式的 Employee 模式可用于使用以下消息定义 WSDL:
Document 绑定样式的 Employee 消息
RPC 绑定样式的 Employee 消息
RPC 绑定样式的 ErpPerson 消息
RPC 绑定样式的 ErpAddress 消息
对应的 WSDL <message> 和 <binding> 定义如下:
清单 8. Document 样式的 Employee 消息的 WSDL 定义
…
<wsdl:message name=”publishEmployeeServiceRequest”>
<wsdl:part name=”employee” element=”typeIn:Employee”>
<wsdl:documentation>publish employee information</wsdl:documentation>
</wsdl:part>
</wsdl:message>
…
<wsdl:binding … >
<soap:binding … />
<wsdl:operation name=”publishEmployeeService”>
<soap:operation style=”document”/>
<wsdl:input name=”employee”>
<soap:body use=”literal”/>
</wsdl:input>
….
</wsdl:operation>
</wsdl:binding>
清单 9. RPC 样式的 Employee 消息的 WSDL 定义
…
<wsdl:message name=”publishEmployeeServiceRequest”>
<wsdl:part name=”employee” type=”typeIn:EmployeeType”>
<wsdl:documentation>publish employee information</wsdl:documentation>
</wsdl:part>
</wsdl:message>
…
<wsdl:binding … >
<soap:binding … />
<wsdl:operation name=”publishEmployeeService”>
<soap:operation style=”rpc”/>
<wsdl:input name=”employee”>
<soap:body use=”literal”
namespace=”http://someCompany.com/soa/2006-07-01/publishEmployeeService”/>
</wsdl:input>
….
</wsdl:operation>
</wsdl:binding>
清单 10. RPC 样式的 ErpPerson 消息的 WSDL 定义
…
<wsdl:message name=”publishErpPersonServiceRequest”>
<wsdl:part name=”erpPerson” type=”typeIn:ErpPersonType”>
<wsdl:documentation>publish employee data</wsdl:documentation>
</wsdl:part>
</wsdl:message>
…
<wsdl:binding … >
<soap:binding … />
<wsdl:operation name=”publishErpPersonService”>
<soap:operation style=”rpc”/>
<wsdl:input name=”erpPerson”>
<soap:body use=”literal”
namespace=”http://someCompany.com/soa/2006-07-01/publishErpPersonService”/>
</wsdl:input>
….
</wsdl:operation>
</wsdl:binding>
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
相关推荐
-
SAP收购CallidusCloud 与Salesforce竞争
一直被称为后台办公巨头的SAP现在似乎也想在前台办公大展拳脚。 最新的迹象是SAP收购CallidusClou […]
-
API设计如龙生九子 各不相同
IT咨询管理公司CA Technologies对API产业做了个问卷调查,问卷内容涉及API设计风格以及管理部署的新动向。调查结果表明,JSON与XML可谓两分天下。
-
API设计:如何正确开发应用程序接口
在交互组件化软件的世界里,没有比让组件之间以及组件与移动设备和浏览器之间进行连接的应用程序接口(API)更重要的东西了。
-
从头开始实现领域驱动设计
领域描述业务;它是驱动企业的概念和逻辑的集合。如果遵循领域驱动设计(DDD)这一本质,那么领域就是应用程序中最重要的组成部分。