鸿 网 互 联 www.68idc.cn

当前位置 : 主页 > 网站制作教程 > XML/RSS > >

XML入门之十一问答(1)

来源:互联网 作者:佚名 时间:2015-03-04 06:44
1.什么是XML? XML开发者们会告诉你,事实上XML并不是一种语言,而是一种用来定义其它语言的系统。可能你已经听过,或许甚至自己尝试过一些这样的语言??比如微软为推(push)技术所推出的频道定义格式(ChannelDefinitionFormat)。 W3C是互连网上一些公用

1.什么是XML?

XML 开发者们会告诉你,事实上XML并不是一种语言,而是一种用来定义其它语言的系统。可能你已经听过,或许甚至自己尝试过一些这样的语言??比如微软为推(push)技术所推出的频道定义格式(Channel Definition Format)。
W3C是互连网上一些公用标准的开发者,他推出了一系列和XML相关的标准和草案。他们把XML描叙成“一种用来表达结构化数据的通用语法”。所谓结构化数据是指被标签(tags)定义了其内容,意义和用法的数据。例如,在HTML的定义中,标签所定义的文本,将会用一种特定的字体和大小所显示出来。一个XML标签会明确的确定一种信息: 标签可能表示的是文档的作者,而则可能包含了产品的价格。与HTML中标签所不同的是:XML标签的含义是自定义的,如果你愿意,可以用来表示作者信息,而用来表示产品价格。虽然这看起来会很别扭,但绝对是正确的。
通过分离结构和数据,一份XML文档能够一经写出,就能应用在多种不同的用途:在计算机屏幕上显示出来,或者显示在手机屏幕上,又或者被转到为盲人设计的语音设备上,等等,诸多功用,不一而足。它几乎能够工作在任何可能的通讯设备上。这时候,一个XML文档的作用,已经远远超出了当初你所以为的那样,仅仅是用来显示内容的简单文档了。这样,XML就能够在除了互连网的其它地方也能够一展身手。
在一些大型的文档制作商中,SGML是他们用了很多年的语言,但是它实在是太复杂了,仅仅是定义就有400多页。XML的出现也为他们创造了一些契机。事实上XML是SGML的一个精简了的子集,SGML的大部分工作都可以由XML来完成,而XML比起SGML来却是简单了许多。
当然,平台无关的XML最初是为Web所设计的,它也将在在Web上产生最大的影响。
DOM(Domument Object Model)是一个编程接口,他定义了在一个文档中如何进行数据存取的机制。XML能够为Web所做的,很大程度上取决于它是如何同DOM(文档对象模型)进行交互。
使用DOM,程序员可以用一种标准的方法来动态的操作文档的内容和相关的一些属性。换句话说,程序员可以让在一个浏览器的文档对象树中的一段内容进行一些特定的动作。例如:当把鼠标移到一小段文字上面时,它会改变颜色。网景的Navigator和微软 Internet Explorer都定义了个不相容的DOM,但是这两个公司都宣布在他们下一个版本的浏览器中会支持W3C的标准DOM。这会给程序员带来很多的方便。

2.为什么XML很重要?

在Web上一条很重要的原则是:内容是一个网站最为首要的东西。但不幸的是,内容总是同如何将他们显示出来这个方面联系在一起的。你在浏览网页的时候,有多少次看到一个小小的标签,上面写着“最好在800*600解析度下浏览本网站”呢?数不胜数吧!
XML将有助于解决这个问题。因为在XML中,网站建设者不再是指定在网页的什么地方显示什么东西,他们需要做的是定义好一个文档的结构。例如,你需要定义的是文档的标题,作者,一系列相关链接等等。任何装备有XML 浏览器的设备??一个掌上电脑,或这是电视机顶盒,或者是一个高性能的工作站等等??就能够把XML文档的内容根据各个设备的显示特性显示出来。
或许XML最强的特性,在于其内在的可扩展性。任何的公司和组织都能够扩展XML 来实现新的应用。现在在乎联网上几乎每天都有关于XML的应用方案的提出。一些基于XML的语言已经开始被使用,像微软的频道定义格式??还有一些正在被开发之中,包括Resource Definition Format(资源定义格式)和Open Software Description(开放式软件描叙)等等。
XML还很有可能成为数据和文档交换机制的标准。例如,可以用XML来实现在Internet上不同数据库之间的信息交换。
到现在为止,要准确的说明XML的公用似乎还为时过早。但是它所带来的可能性是无限的,或许这就是为什么XML能够在其初期就能够如此引人关注的原因吧。

3. SGML,HTML和XML的关系是怎样的?

SGML,标准通用标记语言(Standard Generalized Markup Language)最早是用来再字处理程序中描叙数据用的。像RTF(富文本)文件,Word的DOC文件等等,都可以看成是应用SGML的例子。如果你用记事本打开一个RTF文件,就可以看到同HTML相近的一些东西,那就是RTF的源数据描叙,也是通过SGML定义的。SGML从诞生到现在已经有上10年的时间了,可以说已经发展的十分成熟。XML和HTML都可以算的上是SGML的徒子徒孙了,他们都是从SGML发展而来的文档格式描叙语言。因此他们都有一些共通的特性,比如相近的语法,都使用尖括号标签等等。但是准确的说来,HTML是SGML的一个应用,而XML是SGML的一个精简子集。
这其间的差别是本质上的。简单的说来,HTML不能够用来定义(或者说衍生)一个新的应用,而XML却能够做到。例如,资源描叙格式和频道定义格式就是由XML定义出来的新的应用。理论上讲,甚至可以用XML来重新改写HTML。
XML事实上是与SGML相兼容的??XML文档能够被任何的SGML编辑和浏览器所解析。但是,XML比SGML要简单的多,并且他是特别的为传输带宽有限的Internet所设计的。Tim Bray是XML标准的编制人员之一,根据他的说法,XML就是要继承SGML的优点,但去处SGML的复杂性,并使之能够在网上很好的工作。
HTML,SGML,和XML都将在一定时间内守住自己的岗位,暂时不会有哪一种会被其他的所淘汰。HTML仍然是网上发布信息的最为快捷的方式。如果要发布的数据有长期的应用价值并且需要一些结构化的内容,网站建设者应该考虑转而使用XML。和HTML与XML不同,SGML将不会在网上得到广泛的赞同,因为它并不是为网上传输而特别设计的。但对于高端的应用,那些高度结构化的文档应用,SGML仍将发挥起作用。

4.XML是如何被实现的?

XML能够被应用到许多不同的方面。其中之一是用来在人和机器之间交换信息,比如把信息从一个网站服务器解释了在传递给用户浏览器共用户浏览。在有就是在不同的机器,不同的系统,不同的应用程序之间进行数据交换。
在上面的两种应用中,你可能都需要一种三层模式各构架:一个数据库服务器是一层,用来存贮数据。一个作为中间层的服务器,用来对数据进行适当的解释和表达,然后就是客户端,数据被显示出来,并能够做进一步的应用。数据库服务器能够从多个数据源接收信息,或许它们已经是作为XML格式存在了的。中间层能够把所有的数据整合起来,然后发送到客户端去。
现在,很多的Web网页就是这样被生成的。并且,一个构造的比较好的XML文档,能够允许客户端程序修改文档的外端来显示在不同的媒介中,比如在打印机中打印出来。

5.什么是DTD?

一个文档类型定义(Document Type Definition)是一套标签的语法定义。它告诉你在一个XML文档中你能够使用那些标签,标签出现的顺序以及能够使用那些属性等等。DTD最先是在SGML中工作的,在XML中也引入了DTD,但它不是构成一个XML文档所必需的。而且,它通常也并不与XML一起出现在一个文档中(当然也可以在一起),而是在一个单独的DTD文件中,这样,一个单独的DTD就可以被多个XML文件所引用了。
因为XML本身并不是一个语言,而是用来定义其他语言的标准方法,因此他并没有一个像HTML那用的通用的DTD。因而,每个想用XML的公司和个人,都可以定义其合适的DTD,来满足不同的要求。
关于DTD也有很多的争论。一些人认为它为很重要,是最为实质性的东西。一些人为它限制了创造性,还有一些人认为它很有用,但还不是足够的好。微软试图用他的XML-Data来结束这些争论,但批评家们认为应该从DTD的本质定义上对其进行改进。
微软的schema包括微软在内的一些公司,针对DTD的一些问题提出了一个DTD的代替方案,称为schema,并且已经作为XML-Data提交给W3C。和DTD相似,一个schema提供了关于文档的一些规则,并给出了能够使用的标签,属性以及标签之间的属性,等等。
但与DTD所不同的是,schema能够用来定义数据类型。例如,如果在DTD中定义了一个名为的标签,此时包含在标签中的内容可以是数字或者字符串。但是如果使用schema,就可以强制其中输入的内容只能是数字,而不能够输入其他类型的数据。
这种方法显然是有效的,特别是在不同的应用程序,对象或者数据库之间交换数据的时候。唯一的问题就是:schema能否成为DTD标准的一部分,或着仅仅是一个独立的XML的扩展。

网友评论