Michael's Space

Technology changes the world, serves the people.
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

XML浅谈

Posted on 2006-09-24 14:40 奔跑的阿甘 阅读(301) 评论(0)  编辑 收藏 引用 所属分类: XML/Data Service

XML的由来

Michael 2006/07/30

一 HTML是种界面标识语言

第一次听到"XML"的人,如果对网页知识略知一二的话,应该会自然而然地联想到"HTML",并发问:这个新事物的出现是不是和"HTML"有 着某种联系?
的确,从名称我们就可以知道,他们都是属于"标记语言(Markup Language)",顾名思义,该语言采用某些"标签"来描述对象并呈现出某
种含义。XML是可扩展标记语言(eXtensible Markup Language)的简写,HTML是超文本标记语言(Hypertext Markup Language)的简 写。
HTML虽然是种标记语言,但是它标记的实际上是"界面(Presentation)"的描述,并通过HTML解释器解释后呈现出一种界面效果。比如:
<!-- HelloWorld.html -->
<html>
<body>
Hello, world!
</body>
</html>

<!-- HelloWorldBold.html -->
<html>
<body>
<B>Hello, world!</B>
</body>
</html>

第二个网页在添加了"<B>"标签后显示出来的是粗体的"Hello, world!"。
HTML定义了大量的标签用来呈现各式各样的界面效果,它不关注被显示的具体内容,而只关心用哪种效果或者样式来显示这个内容。在实际
应用中,这些具体内容通常都以数据库的形式储存在服务器中,HTML利用嵌入其中的CGI/ASP/PHP等脚本读取数据库内容并以定义的样式通 过网页呈现出来。所以,简单地说,HTML是种界面标识语言。
当然,HTML也定义了部分标签用于表达内容的含义,比如"title"表示网页的标题,但是这些标签很少,不是HTML的核心。

二 为什么有XML?

XML的出现是互联网高速发展的产物。互联网的出现使得多个网络实体之间的信息通讯变得更加频繁,这种信息通讯要求跨平台跨网络跨硬 件,古老的HTML可以满足信息传递的要求,但是前面提到,HTML的核心在于被传递信息的呈现,而非信息本身。最初在信息服务方所拥有的 信息架构在通过HTML传递后完全丧失了结构,而被当作简单的信息串以某种格式显示出来,造成信息接收方对杂乱无章的信息没有足够的认 知。
XML横空出世,它完美的描述了信息的结构性,把焦点置在了信息内容本身,从而解决了信息的无损耗承载(信息的"内容"和"含义"都被正
确传载),而且XML格式简单易用。这给了信息接收方更多的访问空间,比如网络搜索,有了XML利器变得简单。
XML是这么一种语言,和HTML类似的语法,通过大量的"标签"来标记元素,和HTML不同的是,这些"标签"完全是由用户自行定义,所以它是
一种元语言(Meta Language),可以把HTML想象成由XML定义出来的包含一组固定样式"标签"(比如<B>, <HR>等)的语言。
在前面的HelloWorldBold.html例子中,可以视为传递这么一种信息:
<XML version="1.0"><greeting>Hello, world!</greeting></XML>
这个XML脚本告诉我们"Hello, world!"是一种问候,而不像HTML语言定义的只是一个简单的普通的字符串,XML赋予了字符串的含义。
当我想知道这个世界上不同国家的人如何表达这种问候时,我只需要搜索"greeting"字符串就可以获得想要的信息(比如"Hello,
world!"和"你好,世界!")。
不同于HTML,XML通过CSS(Cascading Style Sheets)或XSL(Extensible Stylesheet Language)来呈现它所要表达的内容。CSS在
HTML中只是做为一种补充的样式,在XML中则完全充当显示样式的全职角色。XSL则允许用户在原XML文档的基础上采用XSL语句对源文档进 行特定的转化,生成一个新的XML文档,这个文档的结构已经根据我们自己编写的规则发生变化,并且会呈现出各种各样的效果(在"XSLT原 理"一文详细介绍)。
如果我们深入理解和应用XML的话,会发现它和数据库表的描述是多么类似。然而,数据库产品多式多样,彼此通讯变得昂贵,XML作为一种
网络通讯数据标准逐渐浮现。
总之,XML是一种比HTML更抽象的用来描述结构化数据的语言,它是一种跨平台的数据标准。它将成为互联网络家族的一个关键成员。

【完】


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理