快速业务通道

在业务流程中融合J2EE和.NET技术 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
技巧的主要目的之一,就是说明如何为消息和数据类型谨慎地设计 XML schema,以避免出现互操作性问题。

要构建 .NET Web 服务,您需要使用稍微有些不同的方法。但通常都应该首先设计 XSD schema。

假设 Supplier B 对保存它的库存产品信息有不同的需求。与 Supplier A 中列出库存产品名称不同,Supplier B 保存了产品信息清单,例如生产日期、库存日期或是重新进货日期等。

图 6.Supplier B Web 服务的接口图

在业务流程中融合J2EE和.NET技术 - 编程入门网

在 UML 图中,Product 有 _dates 属性,该属性是 DateInfo

的集合,DateInfo 都是复杂类型。在编程语言中,UML 集合转化成为数组。但在另一个端,如何用 XML schema 或是 XSD 类型来表示 Product 和 DateInfo 之间的关系呢?此时,需要另一个复杂类型的属性 ArrayOfDateInfo 用来描述两者之间的关系。ArrayOfDateInfo 类型有 DateInfo 类型元素的未绑定序列。因此,要正确序列化 .NET Web 服务中的 Product 对象,需要在 XML Schema 中定义三种复杂类型:DateInfo、ArrayOfDateInfo 和 Product。

和先前演示的步骤类似,首先用目标命名空间 http://schema.b.supplier 创建 SupplierBSchema.xsd 并定义复杂类型 DateInfo,如清单 4 所示。

清单 4. 定义复杂类型 DateInfo

<complexType name="DateInfo">   <sequence>     <element name="_date" type="dateTime"/>     <element name="_desc" type="string"/>   </sequence> </complexType>

在业务流程中融合J2EE和.NET技术(6)

时间:2011-03-14

接下来,通过 SupplierBSchema.xsd 中 DateInfo 类型元素的未绑定序列来添加复杂类型 ArrayOfDateInfo。

在 Outline 视图中,右键单击 SupplierBSchema.xsd 并单击 Add Complex Type。

将新的复杂类型重命名为 ArrayOfDateInfo。

右键单击 ArrayOfDateInfo 并单击 Add Content Model。

右键单击 content model icon 并单击 Add element。

将新元素重新命名为: DateInfo。

设置用户定义的复杂类型:SupplierBSchema:DateInfo。

将 minOccurs 属性设置为零,并将 maxOccurs 属性设置为 unbounded。

ArrayOfDateInfo schema 的结果如 清单 5 所示。

清单 5. ArrayOfDateInfo schema

<complexType name="ArrayOfDateInfo">   <sequence>     <element maxOccurs="unbounded" minOccurs="0"       name="_dateInfo" type="SupplierBSchema:DateInfo"/>   </sequence> </complexType>

按照如定义 complexType Product 类似的步骤进行,如以下清单 6 所示。

清单 6. complexType Product

<complexType name="Product">   <sequence>     <element name="_name" type="string"/>     <element name="_qty" type="int"/>     <element name="_price" type="float"/>     <element name="_dates" type="SupplierBSchema:ArrayOfDateInfo"/>   </sequence> </complexType>

在 .NET Framework 1.1 中,XML Schema Definition 工具(Xsd.exe)可通过 XSD 文件生成运行时类。Xsd.exe 实用程序通过 XSD schema 中生成一组 C# 类模板。通过模板,您可以提供具体的实现并生成整个项目。然而,Xsd.exe 实用程序需要在 schema 中定义至少一个顶级元素,因此您需要定义一个全局元素:productItem。

在 Outline 视图中,右键单击 SupplierBSchema.xsd 并单击 Add Glob

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号