可能你正在为很多事情一筹莫展,不管原因为何,你都需要了解一下XML以弥补你的不足之处。在本系列的第一篇文章中,我将要介绍XML和它的基本语句,后面的文章将会提到数据连接以及XML应用。
曾经与我一起共事的一个程序员一直认为XML是多余的,他曾经问我:“我们现在已经有了HTML,并且用起来效果很好,为什么还要用其他语言呢”?实际上,他忽略了一点,HTML是一种专有表述语言,浏览器的相互不兼容及扩展名的忽略,造成在多种平台上只能用同样的方式看同样的数据。
尽管大多数浏览器都能够显示XML(这正是让我那个朋友所不解的地方),但是实际上使用什么语言与所显示的数据无关。相反,编程语言却可以同时实现存储数据和描述数据内容,这时,你就需要用到XML。
作为一种数据交换技术,XML把数据同结构信息结合起来的能力简直让人难以置信。例如,如果想让两个不同的应用程序都按自己的专有格式存储数据,同时让程序间相互通信,那么你的大部分时间都要花在设计和编辑代码上,以实现A,B程序间的格式转换。XML可以只花费你最小的精力,却能非常完美的解决这一问题。
表A给出了用来描绘图书目录的XML经典例子,顺便提一句,XML格式的一些信息最好参考一下文档。
你首先能注意到的可能是XML是基于标签的。如果你以前见过HTML,你可能就不会太惊讶,但是,与HTML不同的是,XML的标签不需要预先指定含义,相反,它只是用来标记数据。下面的几点规则比较突出:
把XML文件想象成一棵树,只有一个树根,却有很多分支,IE可以自动按照此格式来显示XML,见图A
图 A
在IE中打开XML文件可以看得更清楚它的结构
每一个XML文件的开始都要定义一些用以强调数据的信息,此时就会出现很长的供选列表,如果你要用它,就必须要按照特定的顺序,你至少见过这样的开头:<?XML
version="1.0"?>
精彩的世界
还跟得上我吗?现在,翻过头来简单的看看attributes,attribute是与XML标签一起来说明标签的含义,如表A中的例子:
<book id="bk101">这一语句定义了书的唯一标识符,这也就是attribute要实现的功能——为element提供信息而又不需要element存储这一信息。
你可能要问:“为什么不把书元素的标识符作为自己的id呢?”很多人也都这样认为。通常,attribute只用在更改element而又不涉及到其内容时才使用,在这种情况下,Id在存储书信息的数据库列表中就会显得尤为重要。当然,如果不改变elment而只升级列表时,也可能会用到attribute。其他应用在讲到数据生效及转换会提到。
在这里我要指出的一点就是XML并没有预先假设存储在element中的数据,比如,回过头来看表A,实际上我并不一定非要把作者的名字放在出版日期的element中,这是因为在大多数基本格式中,XML表达的仅仅是所含数据的格式,而不是要设定数据格式。