简介
可扩展标记语言扩展名.xml互联网媒体类型application/xmltext/xml统一类型标识public.xmlUTI结构public.text开发者万维网联盟格式类型标记语言扩展自SGML扩展为XHTMLRSSAtomKML标准1.0(第五版)(2008年11月26日,14年前(2008-11-26))1.1(第二版)(2006年8月16日,16年前(2006-08-16))免费格式?是可扩展标记语言(英语:Extensible Markup Language,简称:XML)是一种标记语言。XML是从标准通用标记语言(SGML)中简化修改出来的。它主要用到的有可扩展标记语言、可扩展样式语言(XSL)、XBRL和XPath等。
历史
1960年代,IBM开始发展的GML(Generalized Markup Language)。
GML的重要概念:
文件中能够明确的将标示与内容分开
所有文件的标示使用方法均一致
1978年,ANSI将GML加以整理规范,发布成为SGML(The Standard Generalized Markup Language)。1986年,XML的前身起为ISO 8879,当时被广泛地运用在各种大型的文件计划中,但是SGML是一种非常严谨的文件描述法,导致过于庞大复杂,其标准手册就有500多页,这使它难以理解和学习,进而影响了推广与应用。
同时W3C也发现到HTML的问题:
不能解决所有解释资料的问题 – 像是影音档或化学公式、音乐符号等其他形态的内容。
性能问题 – 需要下载整份文件,才能开始搜索文件中的内容。
扩展性、弹性、易读性均不佳。
为了解决以上问题,专家们使用SGML精简制作,并依照HTML的发展经验,产生出一套使用上规则严谨,但是简单的描述资料语言:XML。XML从1995年开始有其雏形,并向W3C(万维网联盟)提案,而在1998年二月发布为W3C的标准(XML1.0)XML是在一个这样的背景下诞生的——为了有一个更中立的方式,让客户端自行决定要如何消化、呈现从服务端所提供的信息。
XML被广泛用来作为跨平台之间交互数据的形式,主要针对数据的内容,通过不同的格式化描述手段(XSLT,CSS等)可以完成最终的形式表达(生成对应的HTML,PDF或者其他的文件格式)。
用途
RecipeBook的例子,一种基于XML语法上的烹饪技术书刊。此标签可转换为:HTML, PDF以及Rich Text Format并使用编程语言或XSL。
XML设计是用来传送和携带数据信息,不用于表现和展示数据,HTML则用来表现数据,所以XML用途的焦点是在于说明数据是什么以及携带数据信息。
富文档(Rich Documents)- 自定文件描述并使其更丰富
属于文件为主的XML技术应用
标记是用来定义一份资料应该如何呈现
元数据(Metadata)- 描述其它文件或网络资讯
属于资料为主的XML技术应用
标记是用来说明一份资料的意义
配置文档(Configuration Files)- 描述软件设置的参数
重要术语
字符(characters)
XML 1.0规范允许的(转义后的最终解码值)合法字符: #x9(水平制表符)、#xA(回车符)、#xD(换行符)、#x20-#xD7FF、#xE000-#xFFFD、#x10000-#x10FFFF。即任何Unicode字符,不包含surrogate blocks, FFFE, FFFF。
XML规范定义了5个”预定义实体”来表示特殊字符. XML也允许在每个文档定义任意数量的其它命名实体.
下表列出了5个XML预定义实体. 通过名字引用这些实体的格式为&name;
,例如, &
将绘制为&.
quot”U+0022 (34)XML 1.0双引号amp&U+0026 (38)XML 1.0&apos’U+0027 (39)XML 1.0撇号ltU+003E (62)XML 1.0大于号
处理器(Processor)与应用(application)
XML处理器(Processor,也称作XML parser)分析标记语言并传递结构化信息给应用(application)。
标记(Markup)与内容(content)
XML文档的字符分为标记(Markup)与内容(content)两类。标记通常以<
开头,以>
结尾;或者以字符&
开头,以;
结尾。不是标记的字符就是内容。但是CDATA部分,分解符号是标记,二者之间的文本为内容。 最外界的空白符是标记。
标签(Tag)
一个tag属于标记结构,以<
开头,以>
结尾。Tag名字是大小写敏感,不能包括任何字符 !”#$%&'()*+,/;?@^`{|}~, 也不能有空格符, 不能以”-“或”.”或数字开始。可分为三类:
start-tag,如
end-tag,如
;
empty-element tag,如.
元素(Element)
元素是文档逻辑组成,或者在start-tag与匹配的end-tag之间,或者仅作为一个empty-element tag。例如:Hello, world!
. 另一个例子是: .
单个根(root)元素包含所有的其他元素。
属性(Attribute)
属性是一种标记结构,在start-tag或empty-element tag内部的“名字-值对”。例如:。每个元素中,一个属性最多出现一次,一个属性只能有一个值。
如果属性有多个值,这需要采取XML协议以外的方式来表示,如采用逗号或分号间隔,对于CSS类或标识符的名字可用空格来分隔。
XML 声明(declaration)
XML文档如果以XML declaration开始,则表述了文档的一些信息。如.
例
XML定义结构、存储信息、传送信息。下例为小张发送给大元的便条,存储为XML。
大元收件人> 小张发件人> 问候主题> 早啊,饭吃了没? 具体内容> 小纸条>
这XML文档仅是纯粹的信息标签,这些标签意义的展开依赖于应用它的程序。
结构
每个XML文档都由XML声明开始,在上面的代码中的第一行就是XML声明,。这一行代码会告诉解析器或浏览器,这个文件应该按照XML规则进行解析。
但是,根元素到底叫还是,则是由文档类型定义(DTD)或XML纲要(XML Schema)定义的。如果DTD规定根元素必须叫,那么若写作就不符合要求。这种不符合DTD或XML纲要的要求的XML文档,被称作不合法的XML,反之则是合法的XML。
XML文件的第二行并不一定要包含文档元素;如果有注释或者其他内容,文档元素可以迟些出现。
最常见的PI(processing instruction,像XML序言, 却是不同类型的语法)是用来指定XML文件的样式表, 这个PI一般会直接放在XML序言之后,通常由Web浏览器使用,来将XML数据以特殊的样式显示出来。
XML的结构有一个缺陷,那就是不支持分帧(framing)。当多条XML消息在TCP上传输的时候,无法基于XML协议来确定一条XML消息是否已经结束。