了解 XML 架构(XML与OO)

三年前就已经开始学习和了解XML了,可到如今对这个XML也没有一个清醒的认识。以前听同事说,XML是一种可以定义其它语言的语言。所以也就一直那样认为了。而在实际的使用中,又会有什么必要自己去定义一种语言呢?

XML可以取代小的桌面数据库。这是最近的认识,它的强大功能在于数据关系的平台及语言无关性,它的标准可以让XML文件在任何支持XML的程序中使用。然而,又听到这样的问题:XML的效率太低了。而对于今天这样速度如此之快的PC机而言,可以在0.几秒钟之内就加载数十K甚至数百K的XML文件时,这似乎不是一个问题了。

然而同事的项目在PDA上却无法运作了,因为数K的文件在PDA上加载要花上几分钟。而且还是在C++下的。分析问题的主要原因就是对XML文件的DOM对象的全文加载,使得内存不够而无法完成任务。就算是XML文件本身不大,而分析它的结构,操作它的数据元素,这都是一件很头疼的事。于是大家又讨论到 .net下来处理XML文件,因为大家觉得在.net下对XML的支持可能会好一些。

我前几天才认真的看了一下关于XML的书,这几天也在网上找到了一些文章,但大多数的文章就是简单的XML结构。一个例子,看了数百次的例子,无非就是一个Person的实例,用什么Name,age等来定义一个数据结构。然而我也实在是无法明白它在我们的项目里会起一个什么样的角色。如果说因为XML文件的数据结构统一性,可让我的同事的项目使用我的XML文件,而XML文件的数据结构还是我们自己定义的一个私有结构。那这几乎没有什么意义的,因为我完全可以不用什么XML,而用其它任何的文件结构,只在我告诉这个结构,让同事来分析并处理它就行了。正如很早以前我们用的一个文本数据库文件一样。

我不甘心XML就是这样的一个结局,于是花了一些时间在XML的学习上。试图找到一种XML与我们所开发的项目之间的关系。而这里正是我所找到的一点可以让自己高兴一下的信息:http://www.microsoft.com/china/MSDN/library/data/xml/dnsqlpro04L.mspx

这里一篇讲解XML架构的文章,它说明了XML到底是一个什么结构,为什么它可以取代桌面数据,为什么它可以在不同的开发环境里共同使用。我觉得正真让我理解到它的本质的,还是这样的一张图:

edcb0101

图 2. OO 与 XML 概念

这正是我所想要的,而这样结构,就使得一方面我们以前所做的工作都是有效的,而且可以在以前的基础上,增加XML功能。

这里的架构类型,就是XML Schema,这一内容我和同事都讨论过,然而他们好像并不大喜欢XML Schema,我不知道为什么,然而如果在不知道XML Schema的时候,想用好XML真的是很困难的,这也就是为什么很多人在最开始使用XML的时候都会遇到我前面所提到的一些问题一样:不是觉得没有必要,就是觉得效率不高,或者觉得.net下的架构太复杂不想用。然而看到上面这张图以后,还会这样想吗?我在看到XML的这种结构时,真的太兴奋了。

相信读者可以在这个页面上找到和我一样想要的东西。
http://www.microsoft.com/china/MSDN/library/data/xml/dnsqlpro04L.mspx

原文地址:https://www.cnblogs.com/WuCountry/p/340971.html