XML语言

          XML语言

4.1         XML概述

XML是“可扩展标记语言(eXtensible Markup Language)”的简称。自从W 3C 19982月批准了XML1.0版本之后,XML已经成为MicrosoftNetscapeIBMOracleHPSUN等大型公司所采用的核心技术,各自提出了支持XML的方案和相关应用。

到底XML有哪些优势可以使它的发展速度速度如此之快?谈XML,不得不对比HTML,到目前为止,几乎所有的网页都是用HTML编写的。HTML简单易学通用的特点使得它在互联网上大显身手,但是随着Web应用的不断发展,HTML的局限性也越来越明显的体现出来了,互联网需要一种新的标记语言来解决HTML的不足。

下面我们首先来分析HTML的局限性,正是由于HTML固有的局限性,才导致了XML的产生。

4.1.1               HTML的缺点

HTML对带动WWW的蓬勃发展,可谓功不可没。想要在Internet上作点事情,几乎无HTML不行。但是HTML有一个致命的缺点,就是:只适合于人与计算机的交流,不适合计算机与计算机的交流。

前面我们已经介绍了HTML是通过标记来定义文档内容将以什么样的形式显现,即HTML是一种“显示描述”语言,它仅仅描述了Web浏览器应该如何在页面上布置文字、图形等,并没有对Internet上最重要的东西——信息的本身含义进行描述。这些通过HTML表现出来的文字、图形内容很容易被人理解,而要计算机去理解这些标记内的文字的含义,就很困难了。

举个例子来说,我们设计一个程序,它可以自动地到各大网上商场去将最新的价目抓回来。但问题是,每个网上商场可能在网页中写商品名称和价格时,都有他们自己的一套写法,如:甲用〈B〉价格〈/B〉,而乙用〈I〉价格〈/I〉,还有更为复杂的表格。那么我们的程序怎样才知道,哪种标记里面的东西才是要抓的价格信息呢?再比如:在HTML里,〈BApple/B〉只代表了Apple这个单词在Web浏览器里用粗体来表现,并没有指出Apple代表什么,是苹果?是苹果计算机公司?还是其它什么?这造成了HTML不能揭示文件中信息的含义。

另外,HTML的另一个问题就是它的标记的集合是固定的,用户不能增加自己的有意义的标记。而且各大浏览器的规格不尽相同,要使我们用HTML做的网页能够被所有浏览器正常显示,我们只能够使用W 3C 给我们定义好了的标准标记来创建网页。

在当今的网络世界里,随着电子商务的蓬勃发展和基于Web应用的日益广泛,大量的信息需要被快速地处理。互联网不仅需要存取和显示信息,它需要更进一步解读信息,建立一个共同的数据表示方式,让应用程序可以执行搜索、移动和显示功能并运用隐藏在文字背后的信息。HTML只是显示web数据的通用方法,着重描述网页的显示格式,无法实现这些管理数据的功能,正是为了解决HTML这种固有的局限性,XML应运而生了。

4.1.2               不同于HTMLXML

HTML一样,XML也是一种基于文本的标记语言,都是从SGMLStandard Generalized Markup Language,标准通用标记语言)发展而来的,XML保留了SGML 80%的功能,但是,使用它的复杂程度只有SGML20%的复杂程度。尤其重要的是,XML保留了SGML的可扩展功能,这使XML从根本上有别于HTMLXML要比HTML强大得多,且不再是固定的标记,允许用户自定义标记。XML是一个直接处理web数据的通用方法,着重描述网页的内容,它最大的优势就是在于对数据的管理上。

我们先来看一个简单的XML文件。看上去它和HTML非常相像,但这里的标记代表的不再是显示格式,而是对于鲜花信息数据的语义解释。

 

Flowers.xml: 一个简单的XML文件

<?xml version="1.0" encoding="gb2312"?>

<Flowers>

<Flower>

       <Vendor>shop1</Vendor>

       <Name>iris</Name>

       <Price>$4.00</Price>

</Flower>

<Flower>

       <Vendor>shop2</Vendor>

       <Name>iris</Name>

       <Price>$4.30</Price>

</Flower>

<Flower>

       <Vendor>shop3</Vendor>

       <Name>iris</Name>

       <Price>$3.50</Price>

</Flower>

</Flowers>   

      

此文件在浏览器中的显示效果如 4.1所示。

4.1 在浏览器中查看XML文件

不过,仅仅标记数据还不够。为了让别人读懂这些数据,标记语言中还需定义标记的语法,以及如何显示这些XML数据等。

具体地说,浏览器如何知道怎样显示上面的这段XML文件?标记<Price>是什么含义?它究竟是不是一个合法的标记?它又应该以什么方式表现?因此,我们的标记语言必须能够告诉应用程序它所采用的标记的语法,以便于应用程序对其处理。在XML中,标记的语法是通过DTDDocument Type Definition,文件类型定义)或Schema来描述的。除了定义标记的语法外,还需解决如何显示这些XML数据的问题,XML使用样式单(StyleSheet)来向应用程序(比如浏览器),提供如何处理显示的说明。

因此,一份完整的XML主要有三个部分:

n         数据部分:XML的核心内容;

n         标记说明:说明标记的常有方法有DTDDocument Type Definition,文件类型定义)和Schema两种。DTD Schema规定了XML文档的逻辑结构,定义了XML文档中的元素、元素的属性以及元素和元素的属性之间的关系,它能够帮助XML的解析器校验XML文档标记是否合法;

n         数据显示:样式单规定了数据的显示形式。样式单目前有CSSXSLeXtensible Stylesheet Language,可扩展样式语言)两种,XSL是特别为XML设计的用来规定XML文档表现形式的语言,同CSS类似;

 

关于如何使用DTD Schema定义语法?如何使用CSSXSL显示数据?我们将在后面的内容中详细介绍。

4.1.3               XML的主要特性

XML的主要特性有自描述性、内容和形式分离和可扩展性等。

 

n         自描述性

HTML标记的主要功能是告诉浏览器关于字体、表格等排版信息,不能传达数据的语义。

XML可以让我们根据我们要表现的文档,自由地定义标记来表现具有实际意义的文档内容,比如:<姓名>李明</姓名>XML的标记具有语义,这种自描述性使得XML文档容易被人理解,而且标记所包含的信息对于数据的检索,交换等起着巨大的作用。

 

n         内容和形式分离

HTML中,数据的内容和表现形式是混在一起的,当改变数据的表现形式时,更新文档的工作量会很大。

而在XML中,显示样式从数据信息中抽取出来,放在样式单文件中。这样,如果需要改动数据的表现方式,无须改动数据内容本身,只要改动样式单文件就够了。另外,如果XML文件只用于计算机与计算机之间交流信息,仅仅需要一个XML文件即可,而当需要将XML文件中的信息以某种形式显示出来或进行处理时,只要套用相应的样式表或应用程序就可以了。

 

n         可扩展性

XML不像HTML那样具有固定的标记集合,它实际上是一种元语言,也就是说它是定义语言的语言,使用XML可以定义无穷的标记来描述文档中的任何数据元素,突破了HTML固定标记集合的约束,将文档的内容组织成丰富复杂的完整的信息体系。在XML中,用户按照需要来制定标记,不同的行业也可以在彼此协议的基础上,自由的制定适用的标记。

 

       尽管XML具有上述的种种优势,但是它要成为未来Internet的主流语言,还有许多困难需要克服,主要是产业标准制定比较困难,再者与HTML网页相比,XML网页制作技术门槛较高。

就目前来讲,XML不会取代HTML成为新的网页制作标准,从数据处理的角度来看,这两种语言对于数据的处理层次是不同的,XML用来结构化web数据并描述数据的内容,它是被特地设计用来储存和传输数据的,而HTML则用于数据的格式化。

4.1.4               XMLASP.NET的联系

XMLASP.NET中的应用主要体现在数据访问和web应用程序方面。

XML数据资源是ASP.NET的数据来源之一,在ASP.NET中,XML除了可以作为数据资源的格式之外,更重要的作用是作为服务器和客户端的信息交换语言。XML文档通过API接口动态地被应用程序生成,然后由指定的解析器解析文档,将得到的信息传给其它的应用程序,从而达到信息交换的目的。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值