XML

title: 历史.
content: 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是从1995年开始有其雏形,并向W3C(万维网联盟)提案,而在1998年二月发布为W3C的标准(XML1.0)。  XML被广泛用来作为跨平台之间交互数据的形式,主要针对数据的内容,通过不同的格式化描述手段(XSLT,CSS等)可以完成最终的形式表达(生成对应的HTML,PDF或者其他的文件格式)。
title: 用途.
content: XML设计用来传送及携带数据信息,不用来表现或展示数据,HTML则用来表现数据,所以XML用途的焦点是它说明数据是什么,以及携带数据信息。
title: 重要术语.
title: 字符(characters).
content: XML 1.0规范允许的(转义后的最终解码值)合法字符: #x9(水平制表符)、#xA(回车符)、#xD(换行符)、#x20-#xD7FF、#xE000-#xFFFD、#x10000-#x10FFFF。即任何Unicode字符,不包含surrogate blocks, FFFE, FFFF。  XML规范定义了5个"预定义实体"来表示特殊字符. XML也允许在每个文档定义任意数量的其它命名实体.  下表列出了5个XML预定义实体. 通过名字引用这些实体的格式为codice_1,例如, codice_2 将绘制为&.
title: 处理器(Processor)与应用(application).
content: XML处理器(Processor,也称作XML parser)分析标记语言并传递结构化信息给应用(application)。
title: 标记(Markup)与内容(content).
content: XML文档的字符分为标记(Markup)与内容(content)两类。标记通常以codice_3开头,以codice_4结尾;或者以字符codice_5 开头,以codice_6结尾。不是标记的字符就是内容。但是CDATA部分,分解符号codice_7与codice_8是标记,二者之间的文本为内容。 最外界的空白符是标记。
title: 标签(Tag).
content: 一个"tag"属于标记结构,以codice_3开头,以codice_4结尾。Tag名字是大小写敏感,不能包括任何字符!"#$%&'()*+,/;<=>?@[\]^`{|}~, 也不能有空格符, 不能以"-"或"."或数字开始。可分为三类:
title: 元素(Element).
content: 元素是文档逻辑组成,或者在start-tag与匹配的end-tag之间,或者仅作为一个empty-element tag。例如:codice_14. 另一个例子是: codice_15.  单个根(root)元素包含所有的其他元素。
title: 属性(Attribute).
content: 属性是一种标记结构,在start-tag或empty-element tag内部的“名字-值对”。例如:codice_16。每个元素中,一个属性最多出现一次,一个属性只能有一个值。  如果属性有多个值,这需要采取XML协议以外的方式来表示,如采用逗号或分号间隔,对于CSS类或标识符的名字可用空格来分隔。
title: XML 声明(declaration).
content: XML文档如果以"XML declaration"开始,则表述了文档的一些信息。如codice_17.
title: 例.
content: XML定义结构、存储信息、传送信息。下例为小张发送给大元的便条,存储为XML。  <?xml version="1.0"?> <收件人>大元</收件人> <发件人>小张</发件人> <主题>问候</主题> <具体内容>早啊,饭吃了没? </具体内容>  这XML文档仅是纯粹的信息标签,这些标签意义的展开依赖于应用它的程序。
title: 结构.
content: 每个XML文档都由XML序言开始,在前面的代码中的第一行就是XML序言,<?xml version="1.0"?>。这一行代码会告诉解析器或浏览器这个文件应该按照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消息是否已经结束。

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

Extensible Markup Language: L, généralement appelé XML, « langage de balisage extensible » en français, est un métalangage informatique de balisage générique qui est un sous-ensemble du Standard Generalized Markup Language (SGML). Sa syntaxe est dite « extensible » car elle permet de définir différents langages avec pour chacun son vocabulaire et sa grammaire, comme XHTML, XSLT, RSS, SVG... Elle est reconnaissable par son usage des chevrons (codice_1, codice_2) encadrant les noms des balises. L'objectif initial de XML est de faciliter l'échange automatisé de contenus complexes (arbres, texte enrichi, etc.) entre systèmes d'informations hétérogènes (interopérabilité). Avec ses outils et langages associés, une application XML respecte généralement certains principes :