站内检索: 
您现在的位置:首页 >> 网络时代 >> 浏览文章

什么是XMl(可扩展标记语言)

 

 

定义

XMLExtensible Markup Language)即可扩展标记语言,是一种简单的数据存储语言,它使用一系列简单的标记描述数据,这些标记可以用方便的方式建立。XMLHTML一样,都是SGML(Standard Generalized Markup Language,标准通用标记语言)XmlInternet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。XML占用的空间比二进制数据占用的空间更多,但它极其简单,易于掌握和使用。

XML是什么,它可以做什么?——写给XML入门者

XML即可扩展标记语言(eXtensible Markup Language)。标记是指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种信息的文章等。如何定义这些标记,既可以选择国际通用的标记语言,比如HTML,也可以使用象XML这样由相关人士自由决定的标记语言,这就是语言的可扩展性。XML是从SGML中简化修改出来的。它主要用到的有XMLXSLXPath等。

上面这段是对XML的一个基本定义,一个被广泛接受的说明。简单说,XML就是一种数据的描述语言,虽然它是语言,但是通常情况下,它并不具备常见语言的基本功能——被计算机识别并运行。只有依靠另一种语言,来解释它,使它达到你想要的效果或被计算机所接受。

假如你是刚接触XML的新手,那么可能并无法从定义上是了解XML是什么。也许,你可以换个角度来认识XML是什么;从应用面来认识XML,从XML可以做些什么来认识它,这应该能比那更空洞的定义对你更有帮助。

XML应用面主要分为两种类型:文档型和数据型。下面介绍一下几种常见的XML应用:

1、自定义XML+XSLT=>HTML,最常见的文档型应用之一。XML存放整个文档的XML数据,然后XSLT[1]XML转换、解析,结合XSLT中的HTML标签,最终成为HTML,显示在浏览器上。典型的例子就是CSDN[2]上的帖子。

2XML作为微型数据库,这是最常见的数据型应用之一。我们利用相关的XML APIMSXML DOMJAVA DOM等)对XML进行存取和查询。留言板的实现中,就经常可以看到用XML作为数据库。同时,这里要告诉一些新人,数据库和数据库系统,这两个概念是不同的。这里顺便提一下XML对数据库系统的影响。在新版本的传统数据库系统中,XML成为了一种数据类型。和传统相对的就是一种新形态的数据库,完全以XML相关技术为基础的数据库系统。目前比较知名的eXist

3、作为信息传递的载体。为什么说是载体呢?因为这些应用虽然还是以XML为基本形态,但是都已经发展出具有特定意义的格式形态。最典型的就是WEB SERVICE,将数据包装成XML来传递,但是这里的XML已经有了特定的规格,即SOAP。不过这里还不得不说AJAXAJAX的应用中,相信也有一部分的应用是以自定义XML为数据,不过没有成为工业标准,这里不做详述。

4、应用程序的配置信息数据。最典型的就是J2EE配置WEB服务器时用的web.XML。这个应用估计是很容易理解的了。我们只要将需要的数据存入XML,然后在我们的应用程序运行载入,根据不同的数据,做相应的操作。这里其实和应用2,有点类似,所不同的在于,数据库中的数据变化是个常态,而配置信息往往是较为静态,缺少变化的。

5、其他一些文档的XML格式。如WORDEXCEL等。

6、保存数据间的映射关系。如Hibernate

这几种常见应用中,我们还可以根据其应用广泛程度,分为:自定义XML和特定意义XML。在12就是属于自定义XML的范畴;36则属于特定意义XML,或者说是XML的延伸。

这里介绍的6种应用,基本涵盖了XML的主要用途。总之,XML是一种抽象的语言,它不如传统的程序语言那么具体。要深入的认识它,应该先从它的应用入手,选择一种你需要的用途,然后再学习如何使用。

 

特性

XMLAccess,OracleSQL Server等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML仅仅是展示数据。事实上XML与其他数据表现形式最大的不同是:它极其简单。这是一个看上去有点琐细的优点,但正是这点使XML与众不同。

XMLHTML的设计区别是:XML是用来存储数据的,重在数据本身。而HTML是用来定义数据的,重在数据的显示模式。

XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与WindowsMac OS, Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。

为了使得SGML显得用户友好,XML重新定义了SGML的一些内部值和参数,去掉了大量的很少用到的功能,这些繁杂的功能使得SGML在设计网站时显得复杂化。XML保留了SGML的结构化功能,这样就使得网站设计者可以定义自己的文档类型,XML同时也推出一种新型文档类型,使得开发者也可以不必定义文档类型。

因为XMLW3C制定的,XML的标准化工作由W3CXML工作组负责,该小组成员由来自各个地方和行业的专家组成,他们通过email交流对XML标准的意见,并提出自己的看法 (www.w3.org/TR/WD-xml)。因为XML 是个公共格式, (它不专属于任何一家公司),你不必担心XML技术会成为少数公司的盈利工具,XML不是一个依附于特定浏览器的语言。

 

作用

丰富文件(Rich Documents- 自定文件描述并使其更丰富

属于文件为主的XML技术应用

标记是用来定义一块数据应该如何呈现

解释数据(Metadata- 描述其它文件或在线信息

属于数据为主的XML技术应用

标记是用来说明一块资料的意义

组态档案(Configuration Files- 描述软件的组态参数

 

简明语法

XML中,采用了如下的语法:

1 任何的起始标签都必须有一个结束标签。

2 可以采用另一种简化语法,可以在一个标签中同时表示起始和结束标签。这种语法是在大于符号之前紧跟一个斜线(/),例如<tag />XML解析器会将其翻译成<tag></tag>

3 标签必须按合适的顺序进行嵌套,所以结束标签必须按镜像顺序匹配起始标签,例如this is a samplestring。这好比是将起始和结束标签看作是数学中的左右括号:在没有关闭所有的内部括号之前,是不能关闭外面的括号的。

4 所有的特性都必须有值。

5 所有的特性都必须在值的周围加上双引号。

如今,XML已经是世界上发展最快的技术之一。它的主要目的是使用文本以结构化的方式来表示数据。在某些方面,XML文件也类似于数据库,提供数据的结构化视图。

 

文档结构

每个XML文档都由XML序言开始,在前面的代码中的第一行便是XML序言,<?xml version="1.0"?>。这一行代码会告诉解析器和浏览器,这个文件应该按照前面讨论过的XML规则进行解析。第二行代码,<books>,则是文档元素(document element),它是文件中最外面的标签(我们认为元素(element)是起始标签和结束标签之间的内容)。所有其他的标签必须包含在这个标签之内来组成一个有效的XML文件。XML文件的第二行并不一定要包含文档元素;如果有注释或者其他内容,文档元素可以迟些出现。

范例文件中的第三行代码是注释,你会发现它与HTML中使用的注释风格是一样的。这是XMLSGML中继承的语法元素之一。

页面再往下的一些地方,可以发现<desc>标签里有一些特殊的语法。<![CDATA[ ]]>代码用于表示无需进行解析的文本,允许诸如大于号和小于号之类的特殊字符包含在文本中,而无需担心破坏XML的语法。文本必须出现在<![CDATA[]]>之间才能合适地避免被解析。这样的文本称为Character Data Section,简称CData Section

下面的一行就是在第二本书的定义之前的:

<?page render multiple authors ?>

虽然它看上去很像XML序言,但实际上是一种称为处理指令(processing instruction)的不同类型的语法。处理指令(以下简称PI)的目的是为了给处理页面的程序(例如XML解析器)提供额外的信息。PI通常情况下是没有固定格式的,唯一的要求是紧随第一个问号必须至少有一个字母。在此之后,PI可以包含除了小于号和大于号之外的任何字符串序列。

 

XML文档有效性

1.结构良好的XML文档:如果某个文档符合XML语法规范,那么我们就说这个文档是结构良好的文档。使用本书讲到的XMLSpy 2006工具就可以测试某文档是否为结构良好的XML文档。

2.有效的XML文档:所谓有效的XML文档是指通过了DTD的验证的,具有良好结构的XML文档,在此大家要明白XML文档可分为结构良好的XML文档和有效的XML文档,以及他们之间的关系。即具有结构良好的XML文档并不一定就是有效的XML文档,反之一个有效的XML文档必定是一个结构良好的XML文档。

 

XML文档的解析方式

当前有两种解析方式:dtd (文档类型定义)和schemaXML 模式)

DTD实际上可以看作一个或多个XML文件的模板,这些XML文件中的元素、元素的属性、元素的排列方式/顺序、元素能够包含的内容等,都必须符合DTD中的定义。

DTD的分类:

DTD可以是一个完全独立的文件,也可以在XML文件中直接设定。所以,DTD分为外部DTD(在XML文件中调用另外已经编辑好的DTD)和内部DTD(在XML文件中直接设定DTD)两种。比如,有几十家相互联系的、合作伙伴关系的公司、厂商,他们相互之间的交换电子文档都是用XML文档。那么我们可以将这些XML文档的DTD放在某个地方,让所有交换的XML文档都使用此DTD,这是最方便的做法,同时也适用于公司内部的XML文件使用。

XML Schema是以XML语言为基础的,它用于可替代DTD。 一份XML schema文件描述了XML文档的结构。 XML Schema语言也被称为XML Schema Definition (XSD)XML Schema定义)我们认为XML Schema很快就会替代DTD在大多数的网络应用程序中被广泛使用。 XML Schema针对将来的额外内容是可扩展的; XML Schema内容比DTD丰富,作用也更大 ; XML Schema是以XML语言编写而成的 ; XML Schema支持数据类型 ; XML Schema支持名称空间(namespaces);XML Schema200152成为W3C推荐使用的标准,在W3C 教程中你能阅读到更多关于XML Schema标准。

 

XML文档对网站的重要性

《互联网论坛收录开放协议》是搜索引擎制定的网站内容收录标准,可在网站根目录制作成遵循此开放协议的XML格式的网页供搜索引擎索引,将网页信息主动、及时地告知各大搜索引擎。 采用了《互联网论坛收录开放协议》,就相当于网页被搜索引擎订阅,通过搜索引擎平台,网民将有可能在更大范围内更高频率地访问到您的网站,进而为您的网站带来潜在的流量。

以百度搜索引擎为例,将制作好的XML文件命名为sitemap_baidu.xml上传到您网站根目录下,并保证文件所在的url地址能够被百度spider正常访问。例如,网站为post.baidu.com,则将xml文件上传至post.baidu.com/sitemap_baidu.xml。当百度spider发现了xml文件后,会根据上面提供的参数自动对xml文件进行更新,并抓取高质量的内容。

 

XMLHTML的差异

XMLHTML的不同可以归纳为3点:

1.XML扩展性比HTML

XMLExtensible Markup Languages)是扩展标记语言的英语缩写,他可以创建个性化的标记语言,可以称之为元语言。XML的标记语言可以自定义,这样可以提供更多的数据操作,而不像HTML一样,只能局限于按一定的格式在终端显示出来。HTML的功能只有浏览器放入显示和打印,仅仅适合静态网页的要求。

2.XML的语法比HTML严格

由于XML的扩展性强,它需要稳定的基础规则来支持扩展。它的严格规则为:(1)起始和结束的标签相匹配;(2)嵌套标签不能相互嵌套;(3)区分大小写。

相对应XML的严格规则,HTML语言并没有规定标签的绝对位置,也不区分大小写,而这些全部由浏览器来完成识别和更正。

3.XMLHTML互补

XML可以获得应用之间的相应信息,提供终端的多项处理要求,也能被其他的解析器和工具所使用,在现阶段,XML可以转化成相应的HTML,来适应当前浏览器的需求。

 

注释

有些时候,希望在XML文档中加入一些用做解释的字符数据,并且希望XML处理器不对他们进行任何处理。这种类型的文本称作注释文本。在XML中,注释的方法与HTML完全相同,使用"<!--""-->"将注释文本括起来,注释还有以下规定:

·注释不能被嵌套;

·在注释文本中不能出现字符"-""—";

·不要把注释文本放在标记之中,同样不要把注释文本放在实体声明之前或实体声明中。

 

处理指令PI

处理指令(Processing Instruction)是用来给处理XML文档的应用程序提供信息的,XML解析器把这些信息原封不动地传给应用程序,由应用程序来解释这个指令,遵照它所提供的信息进行处理。处理指令应该遵循下面的格式:

<? 处理指令名处理指令信息?>

下面是一个例子,它是描述辞典信息的XML文档:

<?xml version="1.0"encoding="UTF-8" standalone="no"?>

<?xml-stylesheet type="text/xsl"href="mystyle.xsl"?>

<辞典>

<词条>

<?targetProgram SaveUseful Information about XML?>

<词目>XML</词目>

<解释>XML是一种可扩标记语言,它可用以规定新的标记规则,并根据这个规则组织数据。</解释>

<示例>

<!--XML示例>

<![CDATA[

<商品>

<类型>食品类</类型>

<价格>80</价格>

</商品>

]]>

</示例>

</词条>

</辞典>

其中的内容,

<?targetProgram SaveUseful Information about XML?>

即为PI部分:将指令SaveUseful Information about XML传递给应用程序targetProgram

处理指令很少使用,而且XML团体并不赞成使用处理指令,特别不赞成随意地使用处理指令。尽管如此,如果有足够的理由使用它,也无需犹豫。利用处理指令,正好可以使用在HTML里只能用在注释里的信息。用户对注释中的信息能否传递给应用程序没有把握,但是处理指令一定会传递给应用程序。

 

XML的优势

XML 的优势有以下六个方面:

1.XML可以从HTML中分离数据。通过XML,你可以在HTML文件之外存储数据。在不使用XML时,HTML用于显示数据,数据必须存储在HTML文件之内;使用了XML,数据就可以存放在分离的XML文档中。这种方法可以让你集中精力去到使用HTML做好数据的显示和布局上,并确保数据改动时不会导致HTML文件也需要改动。这样可以方便维护页面。XML数据同样可以以数据岛的形式存储在HTML页面中。你仍然可以集中精力到使用HTML格式化和显示数据上去。

2.XML用于交换数据。通过XML,我们可以在不兼容的系统之间交换数据。在现实生活中,计算机系统和数据库系统所存储的数据有N^N种形式,对于开发者来说,最耗时间的就是在遍布网络的系统之间交换数据。把数据转换为XML格式存储将大大减少交换数据时的复杂性,并且还可以使得这些数据能被不同的程序读取。

3.XMLB2B。使用XML,可以在网络中交换金融信息。在不远的将来,我们可以期望看到很多关于XMLB2B(BusinessToBusiness)的应用。XML正在成为遍布网络的商业系统之间交换金融信息所使用的主要语言。许多与B2B有关的完全基于XML的应用程序正在开发中。

4.XML可以用于共享数据。通过XML,纯文本文件可以用来共享数据。既然XML数据是以纯文本格式存储的,那么XML提供了一种与软件和硬件无关的共享数据方法。这样创建一个能够被不同的应用程序读取的数据文件就变得简单了。同样,我们升级操作系统、升级服务器、升级应用程序、更新浏览器就容易多了。

XML可以用于存储数据。利用XML,纯文本文件可以用来存储数据。大量的数据可以存储到XML文件中或者数据库中。应用程序可以读写和存储数据,一般的程序可以显示数据。

5.XML可以充分利用数据。使用XML,你的数据可以被更多的用户使用。既然XML是与软件、硬件和应用程序无关的,所以可以使你的数据可以被更多的用户、更多的设备所利用,而不仅仅是基于HTML标准的浏览器哦。别的客户端和应用程序可以把你的XML文档作为数据源来处理,就像他们对待数据库一样,你的数据可以被各种各样的阅读器处理,这时对某些人来说是很方便的,比如盲人或者残疾人。

    6.XML可以用于创建新的语言。XMLWAPWML语言的母亲。无线标记语言,用于标识运行于手持设备上的Internet程序。



[1]在计算机科学中,XSLT是扩展样式表转换语言(Extensible Stylesheet Language Transformations)的简称,这是一种对XML文档进行转化的语言,XSLT中的T代表英语中的转换transformation)。它是XSLExtensiblestylesheetlanguage)规范的一部分。XSLT用于将一种XML文档转换为另外一种XML文档,或者可被浏览器识别的其他类型的文档,比如HTMLXHTML。通常,XSLT是通过把每个XML元素转换为(X)HTML元素来完成这项工作的。

[2]CSDNChinese software develop net的缩写,中国软件开发联盟。中国最大的开发者技术社区。它是集新闻、论坛、群组、Blog、文档、下载、读书、Tag、网摘、搜索、.NETJava、游戏、视频、人才、外包、第二书店、《程序员》等多种项目于一体的大型综合性IT门户网站,它有非常强的专业性,其会员囊括了中国地区百分之九十以上的优秀程序员,在IT技术交流及其周边国内中第一位的网站。

上一篇:什么是config文件 / 下一篇:网页常用标签