XML

XML 指可扩展标记语言(EXtensible Markup Language)(标记语言:是一种将文本以及文本相关的其他信息结合起来,展现出文档结构和数据处理细节的电脑文字编码)

XML历史

XML是从1995年开始有其雏形,并向W3C(万维网联盟)提案,而在1998年二月发布为W3C的标准(XML1.0)。XML的前身是SGML(The Standard Generalized Markup Language),是自IBM从1960年代就开始发展的GML(Generalized Markup Language)标准化后的名称。

GML的重要概念:

文件中能够明确的将标示与内容分开
所有文件的标示使用方法均一致

1978年,ANSI将GML加以整理规范,发布成为SGML,1986年起为ISO所采用(ISO 8879),并且被广泛地运用在各种大型的文件计划中,但是SGML是一种非常严谨的文件描述法,导致过于庞大复杂(标准手册就有500多页),难以理解和学习,进而影响其推广与应用。

同时W3C也发现到HTML的问题:

不能解决所有解释数据的问题 - 像是影音档或化学公式、音乐符号等其他形态的内容。
性能问题 - 需要下载整份文件,才能开始对文件做搜索。
扩充性、弹性、易读性均不佳。
为了解决以上问题,专家们使用SGML精简制作,并依照HTML的发展经验,产生出一套使用上规则严谨,但是简单的描述数据语言:XML。

XML是在一个这样的背景下诞生的——为了有一个更中立的方式,让消费端自行决定要如何消化、呈现从服务端所提供的信息。

XML被广泛用来作为跨平台之间交互数据的形式,主要针对数据的内容,通过不同的格式化描述手段(XSLT,CSS等)可以完成最终的形式表达(生成对应的HTML,PDF或者其他的文件格式)。

用途

XML设计用来传送及携带数据信息,不用来表现或展示数据,HTML则用来表现数据,所以XML用途的焦点是它说明数据是什么,以及携带数据信息。

  • 丰富文件(Rich Documents)- 自定文件描述并使其更丰富-
  • 属于文件为主的XML技术应用
  • 标记是用来定义一份资料应该如何呈现
  • 元数据(Metadata)- 描述其它文件或网络资讯
  • 属于资料为主的XML技术应用
  • 标记是用来说明一份资料的意义
  • 配置文档(Configuration Files)- 描述软件设置的参数

例子:

<?xml version="1.0"?>
<小纸条>
 <收件人>大元</收件人>
 <發件人>小張</發件人>
 <主題>問候</主題>
 <具體內容>早啊,飯吃了沒? </具體內容>
</小纸条>

什么是 XML?
* XML 指可扩展标记语言(EXtensible Markup Language)
* XML 是一种标记语言,很类似 HTML
* XML 的设计宗旨是传输数据,而非显示数据
* XML 标签没有被预定义。您需要自行定义标签。
* XML 被设计为具有自我描述性。
* XML 是 W3C 的推荐标准

结构

每个XML文档都由XML序言开始,在前面的代码中的第一行就是XML序言,<?xml version="1.0"?>。这一行代码会告诉解析器或浏览器这个文件应该按照XML规则进行解析。

但是,根元素到底叫<小纸条>还是<小便条>,则是由文档类型定义(DTD)或XML纲要定义的。如果DTD规定根元素必须叫<小便条>,那么若写作<小纸条>就不匹配要求。这种不匹配DTD或XML纲要的要求的XML文档,被称作不合法的XML,反之则是合法的XML。

XML文件的第二行并不一定要包含文档元素;如果有注释或者其他内容,文档元素可以迟些出现。

这个PI一般会直接放在XML序言之后,通常由Web浏览器使用,来将XML数据以特殊的样式显示出来。

XML的结构有一个缺陷,那就是不支持分帧(framing)。当多条XML消息在TCP上传输的时候,无法基于XML协议来确定一条XML消息是否已经结束。