admin管理员组

文章数量:1530353

2024年7月30日发(作者:)

XML数据存储简介

如果仅按数据库这个术语的本质来看,XML文件就是数据库,它是数据的集

合。在许多方面看起来它和其他文件没什么区别,无论如何,每个文件都含有某种

类型的数据。作为一种“数据库”格式,XML有一些优势:例如,它是自描述的

(所用的标签描述了数据的结构和类型,尽管缺乏语义),可交换的,能够以树型

或图形结构描述数据。同样它也有缺点,例如,它显得有些繁琐,由于要对它进行

解析和文本转换,所以数据访问速度较慢。

因此,尽管在数据量小、用户少和性能要求不太高的环境下,可以将XML 文

档用作数据库,但是却不适用于用户量大、数据集成度高以及性能要求高的作业环

境。

XML适合于用作所谓“数据库”的一个好例子就是.ini文件。它包含应用程序

的配置信息。与其写一个处理以逗号分隔(Comma-Delimited)的文件的解析器,开发

一种小型的XML语言并写一个解释它的SAX程序要容易得多。此外,XML允许

使用嵌套的实体,而逗号分隔的文件(Comma-Delimited Files)很难做到这点。然而,

说它就是数据库还很勉强,因为它是线性读写的,而且仅用在程序开始和结束时。

比较适合于XML数据库的一些复杂的数据集就是个人通讯录(名字,电话号

码,地址等),或用于描述浏览器书签以及用Napster偷来的MP3。然而,由于dBase

和Access之类的数据库物美价廉,即使在这种情况下似乎也没有多少理由把XML

文件作为数据库使用。XML的唯一真正好处就是数据的可交换性(Portable),由于

有越来越多的工具可以用来对数据库进行XML序列化(Serializing),这一点好处似

乎也要打些折扣。

本书中将对XML的经验是可以使用普通的文件系统中的文档保持XML的持续

性。保存这些文档的方式与存储字处理文档或电子表格的方法相同———都保存为

文件。因为它们是XML,你可以使用众多专门的XML编辑工具中的某一个来编辑

它们。

1.文件系统的限制

在某些方面,基于文件的方法很好。然而,对于关键性的应用,这个文件系统

的方法就不是太好了。将在这里总结一下这种方法的一些局限并且建立一个用户想

实现的列表。

 大小

第一个局限是文档大小。如果在书的目录列表中有20个出版商,每一个出版

商有200本书和50个作者会怎么样?用户所传递的XML文件将变得非常不实用。

不仅仅是因为它太大了,而且如果你想维护文档的不同部分也变得难于操纵。例如,

用户想处理巨大的文档,并且想检查同其他部分分离的部分文档。

 并发性

正如用户可能想在文档不同部分间快速和简单地移动一样,用户也可能想让不

同的人在不同的时间更新不同的部分。也许图书的编辑负责增加书名目和作者,经

理考虑出版商。在一个文件系统中只有一个单一文档,在一个时间只能有一个人可

以处理信息。如果一个编辑需要增加新的书目,同时会计更新作者的信息,一个人

不得不等着其他人完成。的确,也可能两个人试图在同一时刻编辑同一文件,并且

其中一个人所作的改变会完全丢失。例如,用户想允许许多人在同一时刻处理同一

文档。

 做这项工作的合适工具

也可能是这种情况,一个XML 编辑器可能不是处理一个文档不同部分的合适

工具。用户可能让会计部门来维护作者信息,而不被文档的其他部分所牵扯,对于

他们来说所选择的工具可能是一个简单的表格。这个表格可能提供其他特性,如查

找电话号码或电话拨号。另一方面,维护书的列表工具可能需要包含书自身的草稿

文档。例如,用户想使用最适合处理数据的工具来维护文档的各个部分。

 版本

一个经常考虑的重要问题是控制同一文档的不同版本。用户想能够记录一个文

档不同版本的轨迹。

 安全

使用不同的工具处理文档的不同部分,并且允许不同的用户在同一时刻处理文

档的不同部分引发出安全问题。例如,用户想控制一个文档的某一部分只有某人可

以查看或修改。

 综合性

集中和重复也存在对数据的集中和重复的问题。会计部门可能已经有一个作者

的数据库,用于处理业务费用的支付。用户需要重复所有这些信息吗?当需要在目

录中生成作者列表时,或者用户应该能够产生包含许多源的数据的XML文档吗?

2.解决问题

用普通的文件系统来解决这些问题是非常困难的。尽管大部分的操作系统允许

许多用户同时打开一个文件,目前大部分的文本和XML编辑器不能很好地控制这

些文件,让用户编辑同一文档的不同部分,并且不会影响他人的工作。另外,操作

系统所应用的安全机制通常是在文件级的。这就意味着不同的人可被赋予不同的处

理权限处理不同的文档,但是不能处理同一文档的不同部分。

为了解决上面所提出的问题,需要理解关于XML文档的不同观点。实际上,

用户需要从用户基本的XML单元是一个文档的想法中脱离出来,而把它考虑成可

操作的节点集。

对于那些刚接触XML的人来说,经常困惑的是假设存储XML文档的基本单元

必须是在一个文件中的普通文本。因为一个文档必须是人可读的,所以假设就是文

件必需被存储为一个文本文件,或者在一个文件系统内,或者也许在一个数据库的

一个字段里。

换句话说,尽管用户花费了大量时间来看XML文档和它的结构,现实是用户应该

考虑的文档应根据文档所能够表示的节点结构。

本文标签: 文档用户数据文件处理