计算机科学

首页 > 计算机科学

XML

2018-09-06 14:05:22     所属分类:标记语言
XML
扩展名 .xml
互联网媒体类型
  • application/xml
  • text/xml[1]
统一类型标识 public.xml
UTI结构 public.text
开发者 万维网联盟
格式类型 标记语言
延伸自 SGML
延伸成
  • XHTML
  • RSS
  • Atom
  • KML
标准
  • 1.0(第五版)
    (2008年11月26日,​9年前​(2008-11-26)
  • 1.1(第二版)
    (2006年8月16日,​12年前​(2006-08-16)
自由格式?

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

目录

  • 1 历史
  • 2 用途
  • 3 重要术语
    • 3.1 字符(characters)
    • 3.2 与应用(application)
    • 3.3 标记(Markup)与内容(content)
    • 3.4 Tag
    • 3.5 元素(Element)
    • 3.6 属性(Attribute)
    • 3.7 XML 声明(declaration)
  • 4
    • 4.1 结构
  • 5 参考文献
  • 6 延伸阅读
  • 7 外部链接
  • 8 参见

历史

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

GML的重要概念:

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

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

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

  • 不能解决所有解释数据的问题 - 像是影音档或化学公式、音乐符号等其他形态的内容。
  • 性能问题 - 需要下载整份文件,才能开始对文件做搜索。
  • 扩展性、弹性、易读性均不佳。

为了解决以上问题,专家们使用SGML精简制作,并依照HTML的发展经验,产生出一套使用上规则严谨,但是简单的描述数据语言:XML。

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;,例如, & 将绘制为&.

名字 字符 Unicode码位(十进制) 标准 描述
quot " U+0022 (34) XML 1.0 双引号
amp & U+0026 (38) XML 1.0 &
apos ' U+0027 (39) XML 1.0 撇号
lt < U+003C (60) XML 1.0 小于号
gt > U+003E (62) XML 1.0 大于号

与应用(application)

XML处理器(Processor,也称作XML parser)分析标记语言并传递结构化信息给应用(application)。

标记(Markup)与内容(content)

XML文档的字符分为标记(Markup)与内容(content)两类。标记通常以<开头,以>结尾;或者以字符& 开头,以;结尾。不是标记的字符就是内容。但是CDATA部分,分解符号<!CDATA>是标记,二者之间的文本为内容。 最外界的空白符是标记。

Tag

一个tag属于标记结构,以<开头,以>结尾。Tag名字是大小写敏感,不能包括任何字符 !"#$%&'()*+,/;<=>?@^`{|}~, 也不能有空格符, 不能以"-"或"."或数字开始。可分为三类:

  • start-tag,如<section>;
  • end-tag,如</section>;
  • empty-element tag,如<line-break />.

元素(Element)

元素是文档逻辑组成,或者在start-tag与匹配的end-tag之间,或者仅作为一个empty-element tag。例如:<greeting>Hello, world!</greeting>. 另一个例子是: <line-break />.

单个根(root)元素包含所有的其他元素。

属性(Attribute)

属性是一种标记结构,在start-tag或empty-element tag内部的“名字-值对”。例如:<img src="madonna.jpg" alt="Madonna" />。每个元素中,一个属性最多出现一次,一个属性只能有一个值。

如果属性有多个值,这需要采取XML协议以外的方式来表示,如采用逗号或分号间隔,对于CSS类或标识符的名字可用空格来分隔。

XML 声明(declaration)

XML文档如果以XML declaration开始,则表述了文档的一些信息。如<?xml version="1.0" encoding="UTF-8"?>.

XML定义结构、存储信息、传送信息。下例为小张发送给大元的便条,存储为XML。

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

这XML文档仅是纯粹的信息标签,这些标签意义的展开依赖于应用它的程序。

结构

每个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消息是否已经结束。

参考文献

  1. ^ XML Media Types, RFC 7303. Internet Engineering Task Force. July 2014. 

延伸阅读

  • Annex A of ISO 8879:1986 (SGML)
  • Lawrence A. Cunningham. Language, Deals and Standards: The Future of XML Contracts. Washington University Law Review. 2005. SSRN 900616. 
  • Bosak, Jon; Bray, Tim. XML and the Second-Generation Web. Scientific American. May 1999. (原始内容存档于1 October 2009). 
  • Kelly, Sean. Making Mistakes with XML. Developer.com. 2006-02-06 [2010-10-26]. 
  • St. Laurent, Simon. Five years later, XML... O'Reilly XML Blog. O'Reilly Media. 2003-02-12 [2010-10-26]. 
  • W3C XML is Ten!. World Wide Web Consortium. 2008-02-12 [2010-10-26]. 
  • Introduction to XML (PDF). Course Slides. Pierre Geneves. October 2012. (原始内容 (PDF)存档于2015-10-16). 

外部链接

  • XML及SGML名词英汉翻译表 (繁体中文)
  • XML验证器 (英文)
  • XML在线格式化工具 (英文)

参见

  • XHTML
  • DTD(文件类型描述)
  • XML Schema
  • XLink
  • SVG
  • XSLT
  • X3D
  • HTML
  • CSS
  • RDF
  • RSS
    • Unicode
  • MXML
版权声明:本文由北城百科网创作,转载请联系管理获取授权,未经容许转载必究。https://www.beichengjiu.com/computerscience/340665.html

显示全文

取消

感谢您的支持,我会继续努力的!

扫码支持
支付宝扫一扫赏金或者微信支付5毛钱,阅读全文

打开微信扫一扫,即可进行阅读全文哦


相关推荐