网络编程
位置:首页>> 网络编程>> XML编程>> XML简易教程之一

XML简易教程之一

 来源:互联网 发布时间:2008-09-05 17:19:00 

标签:

在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中却是致命的 - 应用程序将拒绝处理没有组织好的
文件。

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


 

0
投稿

猜你喜欢

  • ASP与存储过程(Stored Procedures)的文章不少,但是我怀疑作者们是否真正实践过。我在初学时查阅过大量相关资料,发现其中提供
  • 代码如下:<% Rem xml缓存类 '----------------------------
  • 如何限制重复订阅邮件或投票?一、准备子程序和函数。1、初始化数据,在Session对象中保存两个变量:Sub InitializeFID()
  • 描述event代表事件的状态,例如触发event对象的元素、鼠标的位置及状态、按下的键等等。event对象只在事件发生的过程中才有效。eve
  • 平时在PL/SQL中的编程中遇到一些问题,这里以问答的形式来进行把它们总结下来,以供大家分享。1、当需要向表中装载大量的数据流或者需要处理大
  • 代码如下:Function getTreeRootId(pNodeId) getSQL = "select note_id,par
  • 采集开始第一步是分析要采集的页面。使用浏览器打开要采集的页面(如:http://sports.sina.com.cn/k/2008-09-1
  • 近日,有关微软Open XML标准的问题又引发了某些业内人士的关注。其一是因为日前ISO(国际标准组织)成员南非和巴西相继就ISO批准微软的
  • 一般来说,一个真正的、完整的站点是离不开数据库的,因为实际应用中,需要保存的数据很多,而且这些数据之间往往还有关联,利用数据库来管理这些数据
  • 在了解了XHTML 2的进展之后,我们再来看看X/HTML 5 的进展。X/HTML 5酷在什么地方章节元素的构想X/HTML 5引入新的元
  • 以下是SQL连接代码: 代码如下:Function Open_conn() dim Conn,Strconn&
  • 下一代的 web 已经开始上路了,就在这个星期,MySpace 集成了 Google Gears,雅虎发布了新的 BrowserPlus,G
  • 代码如下:--相信大家肯定经常会把数据导入到数据库中,但是可能会有些记录行的所有列的数据是null,这为null的数据是我们不需要 --现在
  • 昨天我突发奇想,想用display:inline来实现三列的布局可是搞了半天就是不行。但是理论上是可以的呀(后来才发现是不理解的不深刻,我的
  • 使用ENUM代替字符串类型有时候, 可以通过使用ENUM来代理常规的字符串类型。一个ENUM列能够存储65535个不同的字符串值,MySQL
  • 假设你的变量叫做 MyArray,我们可作如下处理:Dim strDim strDelimiterstrDelimite
  • 一:什么是数据库镜像?Robidoux:数据库镜像是将数据库事务处理从一个SQL Server数据库移动到不同SQL Server环境中的另
  • 折纸是日本著名的折叠纸张的艺术。折纸艺术只是使用一些不同的折叠方式,却能被用各种各样的方式组合成错综复杂的设计。而受折纸启发的logo设计则
  • “占位图形”顾名思义是在准备好将最终图形添加到 Web 页之前使用的临时图形。使用它可以在没有理想的图形的情况下先行制作Web页面——在需要
  • 以下插件是我在项目中经常使用的jQuery插件,不见得是最好的,但是我目前接触到的jQuery插件中最适合我的。01. jQuery.Fle
手机版 网络编程 asp之家 www.aspxhome.com