XML简易教程之一

来源:互联网 时间:1970-01-01

在Intel的早期,Andy Grove遇到一个雇员 - 他

建议公司在芯片的基础上开发个人计算机。Andy

Grove疑问道“个人计算机能做什么呢?”,这个

雇员举例说,它可以存储处方。Grove考虑到整个

研究、开发和市场费用要数百万美圆,最终决定

以为红绿灯提供芯片作为开始。

每个人都是事后诸葛亮。Andy Grove,不管你怎样看他,被普遍

认为是一个非常聪明的人 - 能够做出发展公司的重大决定。但

是在七十年代,不可能强求他预见到个人计算机的潜力。如果

他当时见过Excel、Quark、photoshop、Oracle或者网络,他就会

理解把强大的处理器放在桌面上会允许软件做任何事。

但是如果没亲眼见过,谁能想到呢。在用打字机、加法机和铅

笔作为计算的工具的时代,你能解释PC和它的用途吗?


这个例子可以用在解释扩展标记语言(xml - eXtensible Markup

Language)上。现在还没有和它相似的东西,所以很难做出比

较。你可能听说过XML是HTML的替代物或XML与HTML相似,可以

定义自己的标记符。这两种说法都不全对,就象说PC是存储处

方的机器一样。


我妈妈是一个训练有素的厨师,如果我用她的配方,我的家庭

会省下很大一笔钱。


我以简单的开始。因此我打开文本编辑器,开始写一些HTML

代码:


<HTML>


<H1 ALIGN=CENTER>Recipe</H1>


<FONT FACE size=2>Chocolate Chip Bars</FONT>


在写完上面几行后,我想接着写我妈妈 的精妙菜谱。那么怎么

做呢?一份老式的Web页面。接下来呢?把我的页面的URL送给

对这个菜谱感兴趣的人们,然后让他们剥掉其中的<P>和<FONT

FACE size=2>吗?这得花些时间,我想得到实际的内容。


看看下面可能的XML标记:


<author>Carol Schmidt</author>


<recipe_name>Chocolate Chip Bars</recipe_name>


在XML中,标记符可以最好地描述内容。以这种方式,我可以肯

定任何查找出现在<recipe_name>标记符中的“Chocolate Chip”

的人都可以得到妈妈_的菜谱。进一步说,如果我的信息被象这

样的标记符(有意义的标记符)包围 - 我可以告诉其它程序如

何使用它们。我还可以通过编码把<recipe_name>标记符中的内

容放入数据库的某个域中,然后把它输出到一本书的硬拷贝中。

还有,我可以用一个支持XML的字处理器使网页的出版轻而易举。


这就是XML的本质:使标记对人和机器都可读。但是在实现这个

目标之前,应该理解用XML编码所涉及的东西。


文档要组织良好

一个XML文件必须满足两点:组织良好和有效。我们以一个组

织良好的文档开始。


我发明了一些描述菜谱的标记符,并把它们组织成一种合理

和可读的方式。它可能不是最好的标记,但是在下面的例子

中工作得很好。

 

<?xml version="1.0"?>

<list>

<recipe>

<author>Carol Schmidt</author>

<recipe_name>Chocolate Chip Bars</recipe_name>

<meal>Dinner

<course>Dessert</course>

</meal>

<ingredients>

<item>2/3 C butter</item>

<item>2 C brown sugar</item>

<item>1 tsp vanilla</item>

<item>1 3/4 C unsifted all-purpose flour</item>

<item>1 1/2 tsp baking powder</item>

<item>1/2 tsp salt</item>

<item>3 eggs</item>

<item>1/2 C chopped nuts</item>

<item>2 cups (12-oz pkg.) semi-sweet choc. chips</item>

</ingredients>

<directions>

PReheat oven to 350 degrees. Melt butter;

combine with brown sugar and vanilla in large mixing bowl.

Set aside to cool. Combine flour, baking powder, and salt;

set aside.Add eggs to cooled sugar mixture; beat well.

Stir in reserved dryingredients, nuts, and chips.

Spread in greased 13-by-9-inch pan.

Bake for 25 to 30 minutes until goldenbrown;

cool. Cut into squares.

</directions>

</recipe>

</list>


这就是一份可以接受的XML文档 - 告诉你XML是什么:把数据

以一种有实际意义的方式进行组织。


虽然这些标记符看起来有点象HTML,但是有很大的区别:文件

中没有指出数据如何表示的信息。版面指令,当我们准备好时,

就会从其它地方出现。这和把地址簿的信息放在数据库的字段

和记录中而不是放在字处理器产生的清单中的道理一样。数据

库可以让你把地址簿中的信息合成到标签、信封、信件或其它

任何想要的载体上面。最后,就是把这份菜谱文件合成到一种

表现语言中,如HTML或CSS。


前面说过,XML文档必须组织良好。这意味着文件必须满足以下

三项基本规则:


文档以XML定义<?xml version="1.0"?>开始。

有一个包含所有其它内容的根元素,如上面例子中的<list>

和</list>标记符。

所有元素必须合理地嵌套,不允许交叉嵌套。

上面的例子中,几个<item>元素被合理地嵌套<ingredients>和

</ingredients>标记符中。但是下面的标记却有严重的问题:


<ingredients><item></ingredients>chocolate chips</item>


于是"chocolate chips"没有被包含在ingredients清单中。因此

这份文档就没有组织好。这在HTML中可能不算什么,因为浏览器

已经被设计成可以处理这种问题。


但是在XML中却是致命的 - 应用程序将拒绝处理没有组织好的

文件。


我们现在知道组织良好非常重要,但是还不止这些




相关阅读:
Top