可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言。
在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。早在1998年,W3C就发布了XML1.0规范,使用它来简化Internet的文档信息传输。
中文名称
可扩展标记语言
外文名称
Extensible Markup Language
中文缩写
可扩标言
类 型
标记语言
外语缩写
XML(也做文件扩展名)
其他称呼
可扩展置标语言、可扩展标识语言
XML,可扩展的标识语言(eXtensibleMarkupLanguage),其先驱是SGML和HTML。SGML,通用标识语言标准(StandardGeneralizedMarkupLanguage),是国际上定义电子文件结构和内容描述的标准,是一种非常复杂的文档结构,主要用于大量高度结构化数据的防卫区和其它各种工业领域,便于分类和索引。同XML相比,SGML定义的功能很强大,然而它不适于Web数据描述,而且价格非常昂贵。
XMLXMLXML与Access,Oracle和SQLServer等数据库不同,数据库提供了更强有力的数据存储和分析能力,例如:数据索引、排序、查找、相关一致性等,XML仅仅是展示数据。事实上XML与其他数据表现形式最大的不同是:他极其简单。这是一个看上去有点琐细的优点,但正是这点使XML与众不同。 XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、MacOS、Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。
为了使得SGML显得用户友好,XML重新定义了SGML的一些内部值和参数,去掉了大量的很少用到的功能,这些繁杂的功能使得SGML在设计网站时显得复杂化。XML保留了SGML的结构化功能,这样就使得网站设计者可以定义自己的文档类型,XML同时也推出一种新型文档类型,使得开发者也可以不必定义文档类型。
XML是W3C制定的,XML的标准化工作由W3C的XML工作组负责,该小组成员由来自各个地方和行业的专家组成。因为XML是个公共格式,(它不专属于任何一家公司),不必担心XML技术会成为少数公司的盈利工具,XML不是一个依附于特定浏览器的语言。
XML是从1996年开始有其雏形,并向W3C(全球信息网联盟)提案,而在1998二月发布为W3C的标准(XML1.0)。XML的前身是SGML(The Standard Generalized Markup Language),是自IBM从60年代就开始发展的GML(Generalized Markup Language)标准化后的名称。 文件中能够明确的将标示与内容区隔;所有文件的标签使用方法均一致。1978年,ANSI将GML加以整理规范,发布成为SGML,1986年起为ISO所采用(ISO8879),并且被广泛地运用在各种大型的文件计划中,但是SGML是一种非常严谨的文件描述法,导致过于庞大复杂(标准手册就有500多页),难以理解和学习,进而影响其推广与应用。
人们对SGML进行了简化衍生出HTML。HTML简单,在初期没有任何定义文档外观的相关方法,仅用来在浏览器里显示网页文件。而后,随着因特网的发展,人们为了控制其文件样式,扩充了描述如何显现数据的卷标。在Netscape与Microsoft之间的浏览器大战后,HTML标准权威性遭受重大的考验,所幸,到了HTML4.0时,W3C又恢复了其地位。
同时W3C意识到HTML的原罪:
不能解决所有解释数据的问题-像是影音文件或化学公式、音乐符号等其它型态的内容。
效能问题-需要下载整份文件,才能开始对文件做搜寻的动作。
扩充性、弹性、易读性均不佳。
为了解决以上问题,专家们使用SGML精简制作,并依照HTML的发展经验,产生出一套使用上规则严谨,但是简单的描述数据语言:XML。XML是在一个这样的背景下诞生的─是不是能有一个更中立的方式,让消费端自行决定要如何消化、呈现从服务端所提供的信息。而XML目的即在于提供一个对信息能够做精准描述的机制,藉以弥补HTML太过于表现导向的特质。
1、丰富文件(Rich Documents)-自定文件描述并使其更丰富; 2、属于文件为主的XML技术应用;
3、标记是用来定义一块数据应该如何呈现;
4、解释数据(Metadata)-描述其它文件或在线信息;
5、属于数据为主的XML技术应用;
6、标记是用来说明一块资料的意义;
7、组态档案(Configuration Files)-描述软件的组态参数。
SGML常用来定义针对HTML的文档类型定义(DTD),同时它也常用于编写XML的DTD。SGML的问题就在于,它允许出现一些奇怪的语法,这让创建HTML的解析器成为一个大难题: 1、某些起始标签不允许出现结束标签,例如HTML中标签。包含了结束标签就会出现错误。
2、某些起始标签可以选择性出现结束标签或者隐含了结束标签,例如HTML中标签,当出现另一个标签或者某些其他标签时,便假设在这之前有一个结束标签。
3、某些起始标签要求必须出现结束标签,例如HTML中标签。
4、标签可以以任何顺序嵌套。即使结束标签不按照起始标签的逆序出现也是允许的,例如,Thisisasamplestring是正确的。
5、某些特性要求必须包含值,例如中的src特性。
6、某些特性不要求一定有值,例如[td]中的nowrap特性。
7、定义特性的两边有没有加上双引号都是可以的,所以和都是允许的。
这些问题使建立一个SGML语言的解析器变成了一项艰巨的任务。判断何时应用以上规则的困难导致了SGML语言的定义一直停滞不前。以这些问题作为出发点,XML逐渐步入视野。
XML去掉了之前令许多开发人员头疼的SGML的随意语法。在XML中,采用了如下的语法:
8、任何的起始标签都必须有一个结束标签。
9、可以采用另一种简化语法,可以在一个标签中同时表示起始和结束标签。这种语法是在大于符号之前紧跟一个斜线(/),例如。XML解析器会将其翻译成。
10、标签必须按合适的顺序进行嵌套,所以结束标签必须按镜像顺序匹配起始标签,例如thisisasamplestring。这好比是将起始和结束标签看作是数学中的左右括号:在没有关闭所有的内部括号之前,是不能关闭外面的括号的。
11、所有的特性都必须有值。
12、所有的特性都必须在值的周围加上双引号。
这些规则使得开发一个XML解析器要简便得多,而且也除去了解析SGML中花在判断何时何地应用那些奇怪语法规则上的工作。仅仅在XML出现后的前六年就衍生出多种不同的语言,包括MathML、SVG、RDF、RSS、SOAP、XSLT、XSL-FO,而同时也将HTML改进为XHTML。XML已经是世界上发展最快的技术之一。它的主要目的是使用文本以结构化的方式来表示数据。在某些方面,XML文件也类似于数据库,提供数据的结构化视图。
XML是一种类似于HTML的标记语言,XML是用来描述数据的,XML的标记不是在XML中预定义的,你必须定义自己的标记,XML使用文档类型定义(DTD)或者模式(Schema)来描述数据,XML使用DTD或者Schema后就是自描述的语言,XML(eXtensibleMarkupLanguage)是可扩展标记语言,它与HTML一样,都是处于SGML,标准通用语言。Xml是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。扩展标记语言XML是一种简单的数据存储语言,使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,虽然XML占用的空间比二进制数据要占用更多的空间,但XML极其简单易于掌握和使用。
XML的简单使其易于在任何应用程序中读写数据,这使XML很快成为数据交换的唯一公共语言,虽然不同的应用软件也支持其它的数据交换格式,但不久之后他们都将支持XML,那就意味着程序可以更容易的与Windows、MacOS,Linux以及其他平台下产生的信息结合,然后可以很容易加载XML数据到程序中并分析他,并以XML格式输出结果。
因为XML是W3C制定的,XML的标准化工作由W3C的XML工作组负责,该小组成员由来自各个地方和行业的专家组成,他们通过email交流对XML标准的意见,并提出自己的看法(www.w3.org/TR/WD-xml)。因为XML是个公共格式,(它不专属于任何一家公司),你不必担心XML技术会成为少数公司的盈利工具,XML不是一个依附于特定浏览器的语言。
XML和HTML的不同可以归纳为3点:
一、XML扩展性比HTML强
XML(Extensible Markup Languages)是扩展标记语言的英语缩写,他可以创建个性化的标记语言,可以称之为元语言。XML的标记语言可以自定义,这样可以提供更多的数据操作,而不像HTML一样,只能局限于按一定的格式在终端显示出来。HTML的功能只有浏览器放入显示和打印,仅仅适合静态网页的要求。
二、XML的语法比HTML严格
由于XML的扩展性强,它需要稳定的基础规则来支持扩展。它的严格规则为:
①起始和结束的标签相匹配
②嵌套标签不能相互嵌套
③区分大小写
相对应XML的严格规则,HTML语言并没有规定标签的绝对位置,也不区分大小写,而这些全部由浏览器来完成识别和更正。
三、XML与HTML互补
XML可以获得应用之间的相应信息,提供终端的多项处理要求,也能被其他的解析器和工具所使用,在现阶段,XML可以转化成相应的HTML,来适应当前浏览器的需求。
每个XML文档都由XML序言开始,在前面的代码中的第一行便是XML序言。这一行代码会告诉解析器和浏览器,这个文件应该按照前面讨论过的XML规则进行解析。第二行代码,,则是文档元素(documentelement),它是文件中最外面的标签是起始标签和结束标签之间的内容)。所有其他的标签必须包含在这个标签之内来组成一个有效的XML文件。XML文件的第二行并不一定要包含文档元素;如果有注释或者其他内容,文档元素可以迟些出现。 页面再往下的一些地方,可以发现标签里有一些特殊的语法。代码用于表示无需进行解析的文本,允许诸如大于号和小于号之类的特殊字符包含在文本中,而无需担心破坏XML的语法。文本必须出现在之间才能合适地避免被解析。这样的文本称为Character Data Section,简称CDataSection。
虽然很像XML序言,但实际上是一种称为处理指令(processinginstruction)的不同类型的语法。处理指令(以下简称PI)的目的是为了给处理页面的程序(例如XML解析器)提供额外的信息。PI通常情况下是没有固定格式的,唯一的要求是紧随第一个问号必须至少有一个字母。在此之后,PI可以包含除了小于号和大于号之外的任何字符串序列。
结构良好的XML文档 如果某个文档符合XML语法规范,那么就说这个文档是“结构良好”的文档。XMLSpy2006工具就可以测试某文档是否为结构良好的XML文档。
有效的XML文档
所谓有效的XML文档是指通过了DTD的验证的,具有良好结构的XML文档,要明白XML文档可分为结构良好的XML文档和有效的XML文档,以及他们之间的关系。即具有结构良好的XML文档并不一定就是有效的XML文档,反之一个有效的XML文档必定是一个结构良好的XML文档。
l能使用预先定义标记。
l定义数据的层次。
l筛选我们只想得到的那部分数据。
l真正做到国际化。
l真正实现数据交互
l 可重用。