# 可扩展标记语言

#### 科技名词定义

中文名称：
  可扩展标记语言
英文名称：
  extensible markup language;XML
定义：
  用于标记电子文件使其具有结构性的标记语言，可以用来标记数据、定义数据类型，是一种允许用户对自己的标记语言进行定义的源语言。
应用学科：
  地理学（一级学科）；地理信息系统（二级学科）

以上内容由全国科学技术名词审定委员会审定公布

#### 百科名片

可扩展标记语言 (Extensible Markup Language, XML) ，用于标记电子文件使其具有结构性的标记语言，可以用来标记数据、定义数据类型，是一种允许用户对自己的标记语言进行定义的源语言。 XML是标准通用标记语言 (SGML) 的子集，非常适合 Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。

目录

  格式特性
  1. 结合
  2. 友好
  简明语法
  展开

## 格式特性

XML与Access,Oracle和SQL Server等数据库不同，数据库提供了更强有力的数据存储和分析能力，例如：数据索引、排序、查找、相关一致性等，XML仅仅是存储数据。事实上XML与其他数据表现形式最大的不同是：他极其简单。这是一个看上去有点琐细的优点，但正是这点使XML与众不同。
XML与HTML的设计区别是：XML的核心是数据，其重点是数据的内容。而HTML 被设计用来显示数据，其重点是数据的显示。
XML和HTML语法区别：HTML的标记不是所有的都需要成对出现，XML则要求所有的标记必须成对出现；HTML标记不区分大小写，XML则 大小敏感,即区分大小写。

### 结合

XML的简单使其易于在任何应用程序中读写数据，这使XML很快成为数据交换的唯一公共语言，虽然不同的应用软件也支持其它的数据交换格式，但不久之后他们都将支持XML，那就意味着程序可以更容易的与Windows,Mac OS,Linux以及其他平台下产生的信息结合，然后可以很容易加载XML数据到程序中并分析他，并以XML格式输出结果。

### 友好

为了使得SGML显得用户友好，XML重新定义了SGML的一些内部值和参数，去掉了大量的很少用到的功能，这些繁杂的功能使得SGML在设计网站时显得复杂化。XML保留了SGML的结构化功能，这样就使得网站设计者可以定义自己的文档类型，XML同时也推出一种新型文档类型，使得开发者也可以不必定义文档类型。

## 简明语法

SGML常用来定义针对HTML的文档类型定义（DTD），同时它也常用于编写XML的DTD。SGML的问题就在于，它允许出现一些奇怪的语法，这让创建HTML的解析器成为一个大难题：
1 某些起始标签不允许出现结束标签，例如HTML中<img>标签。包含了结束标签就会出现错误。
2 某些起始标签可以选择性出现结束标签或者隐含了结束标签。
3 某些起始标签要求必须出现结束标签，例如HTML中<script>标签。
4 标签可以以任何顺序嵌套。即使结束标签不按照起始标签的逆序出现也是允许的，例如，This is a sample string是正确的。
5 某些特性要求必须包含值，例如<img src="picture.jpg">中的src特性。
6 某些特性不要求一定有值，例如中的nowrap特性。
7 定义特性的两边有没有加上双引号都是可以的，所以<img src="picture.jpg">和<img src=picture.jpg>都是允许的。
这些问题使建立一个SGML语言的解析器变成了一项艰巨的任务。判断何时应用以上规则的困难导致了SGML语言的定义一直停滞不前。以这些问题作为出发点，XML逐渐步入我们的视野。
XML去掉了之前令许多开发人员头疼的SGML的随意语法。在XML中，采用了如下的语法：
1 任何的起始标签都必须有一个结束标签。
2 可以采用另一种简化语法，可以在一个标签中同时表示起始和结束标签。这种语法是在大于符号之前紧跟一个斜线（/），例如<tag/ >。XML解析器会将其翻译成<tag></tag>。
3 标签必须按合适的顺序进行嵌套，所以结束标签必须按镜像顺序匹配起始标签，例如this is a samplestring。这好比是将起始和结束标签看作是数学中的左右括号：在没有关闭所有的内部括号之前，是不能关闭外面的括号的。
4 所有的特性都必须有值。
5 所有的特性都必须在值的周围加上双引号。
这些规则使得开发一个XML解析器要简便得多，而且也除去了解析SGML中花在判断何时何地应用那些奇怪语法规则上的工作。仅仅在XML出现后的前六年就衍生出多种不同的语言，包括MathML、SVG、RDF、RSS、SOAP、XSLT、XSL-FO，而同时也将HTML改进为XHTML。

扩展阅读：
  - 1

    因为XML是W3C制定的，XML的标准化工作由W3C的XML工作组负责，该小组成员由来自各个地方和行业的专家组成，他们通过email交流对XML标准的意见，并提出自己的看法 (www.w3.org/TR/WD-xml)。因为XML 是个公共格式， （它不专属于任何一家公司），你不必担心XML技术会成为少数公司的盈利工具，XML不是一个依附于特定浏览器的语言。

开放分类：
  应用科学 科学 能源科学 计算机科学 计算科学史 web技术 计算机编程知识 ， 数据交换语言