Google

谈谈XML

Wednesday, March 08, 2006
Ore : 10:23 AM

XML(eXtensible Markup Language)是目前一个相当火红的名字,相信每个IT人都会接触或听过这个名字。不过,要真正了解XML的用途那可不简单了,因为用途太广了,目前的所有软件里几乎都可以找到他的踪影。那,他到底是干什么用的?

我们先来看一下这个Microsoft Excel的图表:













以上图表代表了一个简单数据库的表单结构,有4行纪录,4个数据项。以Microsoft Excel文件来说可以轻易表示这样的一个结构,不过,要是用纯文本文件(Plain Text File)来记录呢?我们大可以用一下方法:

id:1,2,3,4;name:Dave,Mary,Peter,Bill;age:25,20,25,30;class:B,B,C,A

以上是表示之前Excel数据的方法之一,不过,这种做法的缺点很多,包括可读性底,可容纳度底,格式不统一等等。这个时候XML就可以派上用场了,等等,XML和纯文本文件有什么关系?其实XML文件就是属于纯文本文件的一种,你可以利用普通的文本编辑器,例如:notepad,就可以编写或修改XML文件了。以下为用XML表达的方式:

<?xml version="1.0"?>
<students>
<student id="1">
<name>Dave</name>
<age>25</age>
<class>B</class>
</student>
<student id="2">
<name>Mary</name>
<age>20</age>
<class>B</class>
</student>
<student id="3">
<name>Peter</name>
<age>25</age>
<class>C</class>
</student>
<student id="4">
<name>Bill</name>
<age>30</age>
<class>A</class>
</student>
</students>

用纯文本的表达方法,后者虽然文件体积较大,不过非常完整地表达了数据结构,可读性也非常好。就因为XML有这种优点,所以在编程上常常被用作沟通媒介,或数据描述的用途。谈到这里也许你会有一些头晕,我就举一个简单的例子:

你是一个送货员,现在你必须将10种不同的货物送往目的地。有两架货车让你选择:
文本货车 -- 只有一个储存柜,车型较小,你必须用自己的记忆将货物分类。
XML货车 -- 有无数个储存柜,车型较大,提供标签(Tag)让你进行货物分类,而且每一个储存柜里还有很多小的储存柜,全部都有标签服务。
你会选择哪一个呢?答案很明显吧?当然是XML货车,XML货车不管是在储存或运输方面都有很大的优点,就和XML文件一样,让我们在储存或传输一些简单或临时的资料都很方便。

现在,你应该了解了XML火红的原因了吧?好,让我们来谈谈实际的用途。

网络服务(Web Service)

网络服务是Web 2.0时代的重要革命,以往我们要在自己的网页写一个货币转换程序,得花功夫做整理程序的逻辑,更新货币数据库这一些耗时耗力的工作。不过,现在有了XML这个媒介,网络服务的概念就诞生了。想想看,现在在你网页里的货币转换程序,直接和一个大型的货币转换网站沟通!你不必更新数据库也不必编写转换程序,你所需要做的就是把选项传送到货币转换网站,然后他们会将转换结果传回给你。除了以上例子,网络服务甚至可以当作服务器和服务器之间的沟通的方法。

RSS(Really Simple Syndication)

相信有写网上日志的人应该对这个不陌生,所谓的RSS feed,其实就是一个XML文件。利用XML的优点,RSS可以将一个网站最新的消息或文章透过网络让其他人不必浏览该网站也能看到最新的消息。

XUL(XML User-interface Language)

XUL是Mozilla浏览器所采用的用户界面语言。由于XML本身可以描述数据结构,因此Mozilla就利用它来描述用户界面分布,大小,位置等等。

XSL(eXtensible Stylesheet Language)

一般上XML内只含有数据,没有界面。不过,透过XSL(也是一种以XML为基础的语言) 我们可以将XML文件以HTML输出,直接显示在浏览器中。XSL文件内包含了HTML的模板(template),当它与XML结合后,就会把XML的数据注入到模板中,然后输出完整的HTML界面。

其他逐渐普及的XML技术还有VoiceXML, MathML, SMIL(Synchronize Multimedia Integration Language), SVG(Scalable Vector Graphics), XMTP(XML Mail Transport Protocol), AJAX(Asychronous Javascript And XML)等等。

XML在科技发展方面可以说是小兵立大功,尤其是目前以通讯为主流的科技,XML更是功不可没。虽然,许多开发者嫌XML的文件体积太大,用来做通讯媒介有点占网络流量资源;不过,宽频网络的普及使到XML不至于因为这个缺点而被遗弃,而且通过压缩,XML的文件大小将大大被减低,下载的时间可以更短。

posted by *+_NiX_+* at 10:23 AM | Permalink | 0 commenti

[ Ö÷Ò³ ]

Comments for 谈谈XML
About me
Name:
Location: 古晋, Malaysia
Feed Back
Message Box
Del.icio.us Tags
Credits

Powered by Blogger

Get the latest update of my blog!

¿Æ¼¼ÐÂÎŹ㲥Íø

Top