利用XML配置文档动态的创建DataSet对象

ZDNet软件频道 时间:2002-11-13 作者:BUILDER.COM |  我要评论()
本文关键词:
这篇文章描述了使用Singleton工厂类创建表示数据库视图的数据集(DataSet)对象的一种机制。

这篇文章描述了使用Singleton工厂类创建表示数据库视图的数据集(DataSet)对象的一种机制。这里视图代表一个特殊用户角色感兴趣的数据,它包含一些表和SQL语句的集合。每个视图在基于XML的配置文档中表示为一个结点,它的结构用Schema来描述,数据存储在XML文档中。通过基于XPath的查询语句来查找存储在XML文档中视图的结点配置信息,工厂类可以依据配置信息创建数据集。由于可以动态的增加结点,工厂类也具有了在运行时动态扩展的能力。

动机

设想一个Web应用程序有管理经销商的功能,每个经销商在他或她自己的Web站点中存有一些关于产品数量的信息,并且经销商要求控制显示的格式和内容。在这种情况下,系统可能有很多种类型的用户(例如客户、经销商、总部办公室管理员、下属办公人员等),他们中的每个人需要自己的DataSet。DataSet是用来表示数据层的一个特殊视图。由于在多层的应用程序中提倡尽可能的降低层与层之间的耦合性,所以应当尽量隔离数据存取层( Data Access Layer )和数据的存储层(Data Storage Layer)。有一种机制是从DataSet派生特殊的子类,但这样增加了层之间的耦合性。我在这篇文章中描述的方法使用了一个字符串类型的关键字(在这个例子中,关键字是角色名字),XPath使用此关键字在配置文档中查找相应的结点,通过此结点的配置信息来构造一个DataSet,从相应的数据源装入数据到DataSet中并将DataSet该返回给调用者。数据存取层通过抽象的DataSet与其上面的层进行交互。在外部的XML配置文档中的信息表明应该如何定制DataSet。这种机制可以动态按配置信息来创建DataSet。

现在假定需要增加一个新的DataSet,该DataSet要求增加到应用程序中的数据以不同的顺序排列,这就要求我们修改配置信息。由于修改一个现成的XML文档不是一件困难的事情,所以在DataSetFactory配置文档中增加一个新的结点是相当容易的,当增加新结点并按要求配置SQL语句后,就可以支持一个新类型的DataSet了。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134