<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=XML</id>
	<title>XML - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=XML"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=XML&amp;action=history"/>
	<updated>2026-07-13T11:26:48Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=XML&amp;diff=1393&amp;oldid=prev</id>
		<title>~2025-44371-0：​Formatting; Wikify</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=XML&amp;diff=1393&amp;oldid=prev"/>
		<updated>2025-11-17T09:35:16Z</updated>

		<summary type="html">&lt;p&gt;Formatting; Wikify&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Rough translation}}&lt;br /&gt;
{{NoteTA&lt;br /&gt;
| G1 = IT&lt;br /&gt;
| 1 = zh-cn:可扩展标记语言; zh-tw:可擴充標記語言;&lt;br /&gt;
| 2 = zh:可扩展置标语言; zh-cn:可扩展标记语言; zh-tw:可擴充標記語言;&lt;br /&gt;
| 3 = zh:可延伸標示語言; zh-cn:可扩展标记语言; zh-tw:可擴充標記語言;&lt;br /&gt;
| 4 = zh:可延伸標記語言; zh-cn:可扩展标记语言; zh-tw:可擴充標記語言;&lt;br /&gt;
| 5 = zh:標示語言; zh-cn:标记语言; zh-tw:標記語言;&lt;br /&gt;
| 6 = zh:置标语言; zh-cn:标记语言; zh-tw:標記語言;&lt;br /&gt;
| 7 = zh:標記式語言; zh-cn:标记语言; zh-tw:標記語言;&lt;br /&gt;
| 8 = zh:文件格式; zh-cn:文件格式; zh-tw:檔案格式;&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox technology standard&lt;br /&gt;
| title = XML (标准)&lt;br /&gt;
| long_name = 可扩展标记语言&lt;br /&gt;
| image = Extensible Markup Language (XML) logo.svg&lt;br /&gt;
| status = 已发布, [[万维网联盟]]&lt;br /&gt;
| year_started = 1996&lt;br /&gt;
| first_published = {{Start date and age|1998|2|10}}&lt;br /&gt;
| abbreviation = XML&lt;br /&gt;
| version = 1.1 (第二版)&lt;br /&gt;
| version_date = {{Start date and age|2006|9|29}}&lt;br /&gt;
| organization = [[万维网联盟]]&lt;br /&gt;
| editors = [[Tim Bray]], [[Jean Paoli]], [[Michael Sperberg-McQueen]], Eve Maler, François Yergeau, [[John W. Cowan]]&lt;br /&gt;
| base_standards = [[SGML]]&lt;br /&gt;
| related_standards = [[XML Schema]]&lt;br /&gt;
| domain = [[序列化]]&lt;br /&gt;
| website = {{URL|https://www.w3.org/xml}}&lt;br /&gt;
}}&lt;br /&gt;
{{Infobox file format&lt;br /&gt;
| name          = XML (文件格式)&lt;br /&gt;
| extension     = .xml&lt;br /&gt;
| mime          = application/xml, text/xml&lt;br /&gt;
| uniform type  = public.xml&lt;br /&gt;
| conforms to   = public.text&lt;br /&gt;
| magic         = &amp;lt;?xml&lt;br /&gt;
| owner         = [[万维网联盟]]&lt;br /&gt;
| type          = [[标记语言]]&lt;br /&gt;
| extended from = [[SGML]]&lt;br /&gt;
| extended_to   = [[XHTML]], [[RSS]], [[Atom]], [[KML]] 等等&lt;br /&gt;
| standards     = [http://www.w3.org/TR/2008/REC-xml-20081126/ 1.0, 第五版] ({{release date|2008|11|26}})&lt;br /&gt;
[http://www.w3.org/TR/2006/REC-xml11-20060816/ 1.1, 第二版] ({{release date|2006|08|16}})&lt;br /&gt;
| free          = 是&lt;br /&gt;
| open          = 是&lt;br /&gt;
}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;可扩展标记语言&amp;#039;&amp;#039;&amp;#039;（{{langx|en|E&amp;#039;&amp;#039;&amp;#039;x&amp;#039;&amp;#039;&amp;#039;tensible &amp;#039;&amp;#039;&amp;#039;M&amp;#039;&amp;#039;&amp;#039;arkup &amp;#039;&amp;#039;&amp;#039;L&amp;#039;&amp;#039;&amp;#039;anguage}}，简称：{{lang|en|&amp;#039;&amp;#039;&amp;#039;XML&amp;#039;&amp;#039;&amp;#039;}}）是一种[[标记语言]]和用于存储、传输和重构松散数据的[[文件格式]]。它定义了一系列编码[[文档]]的规则以使其在[[人类可读介质|人类可读]]的同时[[机器可读介质|机器可读]]。[[万维网联盟]]于1998年&amp;lt;ref&amp;gt;{{Cite web|title=Extensible Markup Language (XML) 1.0|url=https://www.w3.org/TR/1998/REC-xml-19980210.html|website=www.w3.org|access-date=2024-02-14|archive-date=2024-04-20|archive-url=https://web.archive.org/web/20240420094057/https://www.w3.org/TR/1998/REC-xml-19980210.html|dead-url=no}}&amp;lt;/ref&amp;gt;发布的 XML 1.0 规范&amp;lt;ref&amp;gt;{{Cite web|title=Extensible Markup Language (XML) 1.0 (Fifth Edition)|url=http://www.w3.org/TR/REC-xml|website=World Wide Web Consortium|date=2008-11-26|language=en|access-date=2024-02-14|archive-date=2021-03-24|archive-url=https://web.archive.org/web/20210324132853/http://www.w3.org/TR/REC-xml|dead-url=no}}&amp;lt;/ref&amp;gt;和其他相关&amp;lt;ref&amp;gt;{{Cite web|title=Wayback Machine|url=http://www.dblab.ntua.gr/~bikakis/XML%20and%20Semantic%20Web%20W3C%20Standards%20Timeline-History.pdf|website=|access-date=2024-02-14|archive-date=2013-04-24|archive-url=https://web.archive.org/web/20130424125723/http://www.dblab.ntua.gr/~bikakis/XML%20and%20Semantic%20Web%20W3C%20Standards%20Timeline-History.pdf|dead-url=no}}&amp;lt;/ref&amp;gt;[[开源标准]]共同定义了 XML&amp;lt;ref&amp;gt;{{Cite web|title=Document license - 2015 version|url=https://www.w3.org/copyright/document-license-2015/|website=W3C|language=en|access-date=2024-02-14|archive-date=2024-05-26|archive-url=https://web.archive.org/web/20240526212918/https://www.w3.org/copyright/document-license-2015/|dead-url=no}}&amp;lt;/ref&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
XML 的设计目标是注重简洁、通用和[[因特网]]可用性&amp;lt;ref&amp;gt;{{Cite web|title=Document license - 2015 version|url=http://www.w3.org/TR/REC-xml/#sec-origin-goals|website=W3C|access-date=2024-02-14|archive-date=2020-01-10|archive-url=https://web.archive.org/web/20200110151249/http://www.w3.org/TR/REC-xml/#sec-origin-goals|dead-url=no}}&amp;lt;/ref&amp;gt;。它是一种通过 [[Unicode]] 编码实现对多种[[语言]]有强大支持的文本数据格式。尽管 XML 的设计重心在于文档，它被广泛应用于[[Web服务|网络服务]]中松散[[数据结构]]的表示。&amp;lt;ref&amp;gt;{{Cite journal |last=Fennell |first=Philip |date=2013-09-14 |title=Extremes of XML |url=http://xmllondon.com/XMLLondon13.Fennell01 |journal= |language=en |publisher=XML London |page=80-86 |doi=10.14337/XMLLondon13.Fennell01 |isbn=978-0-9926471-0-0}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 总览 ==&lt;br /&gt;
XML 的主要目的是[[序列化]]（如存储、传输和重构松散数据）。对于两个需要传输信息的不同系统，它们也需要在文件格式上达成一致。XML 规范了这个流程，因此其类似于用于表示信息的[[通用语言]]。&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;{{Cite book|title=XML for Dummies|url=https://archive.org/details/xmlfordummies0004dyke|isbn=978-0-7645-8845-7|last=Dykes|first=Lucinda|publisher=Wiley|year=2005|location=Hoboken, N.J|edition=4th ed.}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
作为一个[[标记语言]]，XML 标记，分类和在结构方面组织数据。&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;XML 标签代表结构且包含[[元数据]]，标签内是照 XML 标准编码的数据。&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;一个附加的 [[XML Schema语言|XML 结构]]（XSD）定义了用于解释和验证 XML 的必要的元数据（这也被称为结构典范）&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;。一个符合 XML 基本语法的文档是“结构良好”的（well-formed），一个符合其附加结构的是“有效”（valid）的。&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[互联网工程任务组]]的 RFC 7303（取代了旧的 RFC 3023）提供了用于构造 XML 中[[互联网媒体类型|媒体类型]]的规则。它定义了三种媒体类型：&amp;lt;syntaxhighlight lang=&amp;quot;mime&amp;quot;&amp;gt;&lt;br /&gt;
application/xml                             (text/xml是一个别名)&lt;br /&gt;
application/xml-external-parsed-entity      (text/xml-external-parsed-entity是一个别名)&lt;br /&gt;
application/xml-dtd&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;它们被用于在不暴露内容的同时传输未经处理的 XML 文件。RFC 7303 还建议基于 XML 的语言的媒体类型应以 +xml 结尾（如 [[SVG]] 的 image/svg+xml）。&lt;br /&gt;
&lt;br /&gt;
对于 XML 在网络中的进一步使用指南于 RFC 3470 （也被称为 IETF BCP 70，包含设计部署基于 XML 的语言的各个方面）提出。&lt;br /&gt;
&lt;br /&gt;
== 应用 ==&lt;br /&gt;
[[File:Example of SVG code.png|thumb|SVG代码示例]]&lt;br /&gt;
XML 在互联网信息交换中已经被广泛应用。数以百计使用 XML 语法的文档格式（包括 [[RSS]]、[[Atom (標準)|Atom]]、[[Office Open XML]]、[[开放文档格式|OpenDocument]]、[[SVG]]、[[COLLADA]] 和 [[XHTML]]）被开发出来&amp;lt;ref&amp;gt;{{Cite web|title=XML Applications and Initiatives|url=http://xml.coverpages.org/xmlApplications.html|website=xml.coverpages.org|last=Cover|first=Robin|access-date=2024-02-15|archive-date=2024-05-02|archive-url=https://web.archive.org/web/20240502080359/http://xml.coverpages.org/xmlApplications.html|dead-url=no}}&amp;lt;/ref&amp;gt;。XML 还为多种[[网络传输协议|通信协议]]（如 [[简单对象访问协议|SOAP]] 和 [[XMPP]]）提供了基础语言。它还是[[AJAX]]使用的信息交换格式之一。&lt;br /&gt;
&lt;br /&gt;
许多工业数据标准，如[[Health Level 7]]、[[OpenTravel Alliance]]、[[商业产品标记语言|FpML]]、[[MISMO]]和[[NIEMOpen|National Information Exchange Model]]，基于 XML 和 XML 附加结构丰富的特性。在出版领域，[[Darwin Information Typing Architecture]] 是一个 XML 行业数据标准。XML 被广泛应用与支持各种出版格式。&lt;br /&gt;
&lt;br /&gt;
== 关键术语 ==&lt;br /&gt;
该部分内容基于 XML [[規格化|规范]]。注意这并不是一个详尽的列出所有结构的列表，而是提供 XML 中常见组成的介绍。&lt;br /&gt;
&lt;br /&gt;
=== 字符（ Character ） ===&lt;br /&gt;
XML 1.0 规范允许的（转义后的最终解码值）合法字符： #x9（水平制表符）、#xA（回车符）、#xD（换行符）、#x20-#xD7FF、#xE000-#xFFFD、#x10000-#x10FFFF。即任何[[Unicode]]字符，不包含 surrogate blocks, FFFE,  FFFF。&lt;br /&gt;
&lt;br /&gt;
XML 规范定义了5个&amp;quot;预定义实体&amp;quot;来表示特殊字符. XML也允许在每个文档定义任意数量的其它命名实体.&lt;br /&gt;
&lt;br /&gt;
下表列出了5个XML预定义实体. 通过名字引用这些实体的格式为&amp;lt;code&amp;gt;&amp;amp;amp;name;&amp;lt;/code&amp;gt;，例如, &amp;lt;code&amp;gt;&amp;amp;amp;amp;&amp;lt;/code&amp;gt; 将绘制为&amp;amp;amp;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background: #efefef;&amp;quot;&lt;br /&gt;
! 名字&lt;br /&gt;
! 字符&lt;br /&gt;
! Unicode[[码位]](十进制)&lt;br /&gt;
! 标准&lt;br /&gt;
! 描述&lt;br /&gt;
|-&lt;br /&gt;
| quot&lt;br /&gt;
| &amp;quot;&lt;br /&gt;
| U+0022 (34)&lt;br /&gt;
| XML 1.0&lt;br /&gt;
| [[双引号]]&lt;br /&gt;
|-&lt;br /&gt;
| amp&lt;br /&gt;
| &amp;amp;amp;&lt;br /&gt;
| U+0026 (38)&lt;br /&gt;
| XML 1.0&lt;br /&gt;
| [[&amp;amp;]]&lt;br /&gt;
|-&lt;br /&gt;
| apos&lt;br /&gt;
| &amp;#039;&lt;br /&gt;
| U+0027 (39)&lt;br /&gt;
| XML 1.0&lt;br /&gt;
| [[撇号]]&lt;br /&gt;
|-&lt;br /&gt;
| lt&lt;br /&gt;
| &amp;amp;lt;&lt;br /&gt;
| U+003C (60)&lt;br /&gt;
| XML 1.0&lt;br /&gt;
| [[小于号]]&lt;br /&gt;
|-&lt;br /&gt;
| gt&lt;br /&gt;
| &amp;amp;gt;&lt;br /&gt;
| U+003E (62)&lt;br /&gt;
| XML 1.0&lt;br /&gt;
| [[大于号]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 处理器（ Processor ）与应用（ Application ） ===&lt;br /&gt;
XML 处理器（Processor，也称作XML parser）分析标记语言并传递结构化信息给应用（application）。&lt;br /&gt;
&lt;br /&gt;
XML 规范规定了处理器要做什么不能做什么，但是应用并不在其讨论范围内。规范称之为处理器的东西一般被通俗的称为 XML [[语法分析|解析器]]。&lt;br /&gt;
&lt;br /&gt;
=== 标记（ Markup ）与内容（ Content ） ===&lt;br /&gt;
XML文档的字符分为标记（Markup）与内容（content）两类。可由简单的语法判断出来：标记通常以&amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt;开头，以&amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;结尾；或者以字符&amp;lt;code&amp;gt;&amp;amp;&amp;lt;/code&amp;gt; 开头，以&amp;lt;code&amp;gt;;&amp;lt;/code&amp;gt;结尾。不是标记的字符就是内容。但是[[CDATA]]部分，分解符号&amp;lt;code&amp;gt;&amp;amp;lt;![CDATA[&amp;lt;/code&amp;gt;与&amp;lt;code&amp;gt;]]&amp;gt;&amp;lt;/code&amp;gt;是标记，二者之间的文本为内容。 最外界的空白符是标记。&lt;br /&gt;
&lt;br /&gt;
=== 标签（ Tag ） ===&lt;br /&gt;
一个&amp;#039;&amp;#039;tag&amp;#039;&amp;#039;属于标记结构，以&amp;lt;code&amp;gt;&amp;amp;lt;&amp;lt;/code&amp;gt;开头，以&amp;lt;code&amp;gt;&amp;gt;&amp;lt;/code&amp;gt;结尾。Tag名字是大小写敏感，不能包括任何字符 !&amp;quot;#$%&amp;amp;&amp;#039;()*+,/;&amp;lt;=&amp;gt;?@[\]^`{|}~， 也不能有空格符， 不能以&amp;quot;-&amp;quot;或&amp;quot;.&amp;quot;或数字开始。可分为三&lt;br /&gt;
&lt;br /&gt;
* 起始标签 &amp;#039;&amp;#039;start-tag&amp;#039;&amp;#039;，如&amp;lt;code&amp;gt;&amp;amp;lt;section&amp;gt;&amp;lt;/code&amp;gt;;&lt;br /&gt;
* 结束标签 &amp;#039;&amp;#039;end-tag&amp;#039;&amp;#039;，如&amp;lt;code&amp;gt;&amp;amp;lt;/section&amp;gt;&amp;lt;/code&amp;gt;;&lt;br /&gt;
* 空白标签 &amp;#039;&amp;#039;empty-element tag&amp;#039;&amp;#039;，如&amp;lt;code&amp;gt;&amp;amp;lt;line-break /&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== 元素（ Element ） ===&lt;br /&gt;
元素是文档逻辑组件，它在起始标签与匹配的结束标签之间，或者仅由一个空白标签组成。例如：&amp;lt;code&amp;gt;&amp;amp;lt;greeting&amp;gt;Hello, world!&amp;amp;lt;/greeting&amp;gt;&amp;lt;/code&amp;gt;. 另一个例子是： &amp;lt;code&amp;gt;&amp;amp;lt;line-break&amp;amp;nbsp;/&amp;gt;&amp;lt;/code&amp;gt;.在标签间的内容可以包含其他元素（称为子元素）&lt;br /&gt;
&lt;br /&gt;
=== 属性（ Attribute ） ===&lt;br /&gt;
属性是由名称-值对组成的标记结构，存在于开始标签或空元素标签内。例如，&amp;lt;code&amp;gt;&amp;lt;img src=&amp;quot;madonna.jpg&amp;quot; alt=&amp;quot;Madonna&amp;quot; /&amp;gt;&amp;lt;/code&amp;gt;中，属性的名称是 &amp;quot;src&amp;quot; 和 &amp;quot;alt&amp;quot;，它们的值分别是 &amp;quot;madonna.jpg&amp;quot; 和 &amp;quot;Madonna&amp;quot;。另一个例子是&amp;lt;code&amp;gt;&amp;lt;step number=&amp;quot;3&amp;quot;&amp;gt;Connect A to B.&amp;lt;/step&amp;gt;&amp;lt;/code&amp;gt;，其中属性的名称是 &amp;quot;number&amp;quot;，其值是 &amp;quot;3&amp;quot;。XML 属性只能有一个值，每个属性在每个元素上最多只能出现一次。在常见情况下，如果需要包含多个值的列表，则必须通过将列表编码为符合良构性的 XML 属性，其格式超出了 XML 本身的定义。通常，这可以是以逗号或分号分隔的列表，或者如果已知各个值不包含空格[ii]，则可以使用以空格分隔的列表。例如，&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;div class=&amp;quot;inner greeting-box&amp;quot;&amp;gt;Welcome!&amp;lt;/div&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;中，属性 &amp;quot;class&amp;quot; 的值是 &amp;quot;inner greeting-box&amp;quot;，同时表示两个 CSS 类名 &amp;quot;inner&amp;quot; 和 &amp;quot;greeting-box&amp;quot;。&lt;br /&gt;
&lt;br /&gt;
=== XML 声明（ Declaration ） ===&lt;br /&gt;
XML文档如果以&amp;#039;&amp;#039;XML declaration&amp;#039;&amp;#039;开始，则表述了文档的一些信息。如&amp;lt;code&amp;gt;&amp;amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== 字符与转义 ==&lt;br /&gt;
XML 文档完全由 [[Unicode]] 字符库中的字符组成。 除了少数特殊排除的[[控制字符]]外，Unicode 定义的任何字符都可以出现在 XML 文档的内容中。&lt;br /&gt;
&lt;br /&gt;
XML 包含用于识别构成文档的 Unicode 字符编码的工具，以及用于表达由于某种原因不能直接使用的字符的工具。&lt;br /&gt;
&lt;br /&gt;
=== 有效字符 ===&lt;br /&gt;
以下范围内的Unicode字码在 XML 1.0 文档中是有效的：&amp;lt;ref&amp;gt;{{Cite web|title=Characters|url=http://www.w3c.org/TR/xml11/#charsets|website=Extensible Markup Language (XML) 1.0 (Fifth Edition)|access-date=2024-02-15|archive-date=2003-12-24|archive-url=https://web.archive.org/web/20031224032806/http://www.w3c.org/TR/xml11/#charsets|dead-url=no}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* U+0009 ( 水平制表符 ), U+000A ( 换行 ), U+000D ( 回车 ): 这些是在 XML 1.0 中唯一接受的控制字符&lt;br /&gt;
* U+0020 - U+D7FF, U+E000 - U+FFFD: 这些排除了[[Unicode字符平面映射#基本多文种平面|BMP]]中的一些非字符（所有代理项，U+FFFE和U+FFFF是不被允许的）&lt;br /&gt;
* U+10000 - U+10FFFF: 这些包含所有在增补计划中的字码，包含非字符&lt;br /&gt;
&lt;br /&gt;
XML 1.1 扩充了允许的字符集以包含上述内容和U+0001 - U+001F&amp;lt;ref&amp;gt;{{Cite web|title=Characters|url=https://www.w3.org/TR/xml11/#charsets|website=Extensible Markup Language (XML) 1.1 (Second Edition)|access-date=2024-02-15|archive-date=2021-08-11|archive-url=https://web.archive.org/web/20210811223058/https://www.w3.org/TR/xml11/#charsets|dead-url=no}}&amp;lt;/ref&amp;gt;，但同时，它限制使用 U+0009（ 水平制表符 ）、U+000A（ 换行 ）、U+000D（ 回车 ）和 U+0085（下一行）以外的 C0 和 [[C0与C1控制字符|C1]] 控制字符 ），要求它们以转义形式编写（例如 U+0001 必须写为 &amp;amp;#x01; 或其等效形式）。 对于 C1 字符，此限制是向后不兼容； 引入它是为了检测常见的编码错误。&lt;br /&gt;
&lt;br /&gt;
[[空字符|U+0000]] （ 空 ）是唯一在任何 XML 1.1 文档中都不被允许的字码。&lt;br /&gt;
&lt;br /&gt;
=== 编码检测 ===&lt;br /&gt;
Unicode 字符集可被编码为二进制字节以存储或通过多种方式传输，这个过程被称为编码。Unicode 本身定义了一个覆盖全字符集的编码格式，其中知名的包含 UTF-8（不包含位顺序记号，是XML 标准文档推荐使用的格式）和 UTF-16。还有许多早于 Unicode 的文字编码，如 ASCII 和多种 ISO/IEC 8859 字符集，但是它们的字符集都是 Unicode 字符集的子集。&lt;br /&gt;
&lt;br /&gt;
XML 允许使用任何 Unicode 定义的编码以及其他字符集是Unicode子集的编码。 XML 还提供了一种机制，使XML 处理器可以在没有任何先验知识的情况下可靠地确定正在使用哪种编码。除 UTF-8 和 UTF-16 之外的编码不一定能被每个 XML 解析器识别（有些时候甚至不能识别 UTF-16，尽管标准要求它也被识别）。&lt;br /&gt;
&lt;br /&gt;
=== 转义 ===&lt;br /&gt;
XML 提供了转义工具以包含哪些不能直接引入的字符，例如：&lt;br /&gt;
&lt;br /&gt;
* 字符“&amp;lt;”和“&amp;amp;”是关键的语法标记，因此不能出现在 CDATA 部分之外的内容中。 虽然被允许但是不建议在 XML 实体值中使用“&amp;lt;”&lt;br /&gt;
* 某些字符编码仅支持 Unicode 字符集中的部分字符（子集）。 例如，用 ASCII 编码 XML 文档是合法的，但 ASCII 缺少 Unicode 字符（例如“é”）的字码&lt;br /&gt;
* 在作者的机器上可能无法输入这个字符&lt;br /&gt;
* 某些字符的字形无法在视觉上与其他字符区分开来，例如不间断空格 (&amp;amp;amp;#xa0;) &amp;quot; &amp;quot; 和空格 (&amp;amp;amp;#x20;) &amp;quot; &amp;quot;，以及西里尔大写字母 A (&amp;amp;amp;#x410;) “А”和拉丁文大写字母 A (&amp;amp;amp;#x41;)“A”&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+ 五个预定义实体&lt;br /&gt;
|-&lt;br /&gt;
! 转义前&lt;br /&gt;
! 转义后&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;amp;lt;&lt;br /&gt;
| &amp;lt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;amp;gt;&lt;br /&gt;
| &amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;amp;amp;&lt;br /&gt;
| &amp;amp;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;amp;apos;&lt;br /&gt;
| &amp;#039;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;amp;amp;quot;&lt;br /&gt;
| &amp;quot;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
所有有效的 Unicode 字符都可以用数字字符引用表示。 例如汉字“中”，其在 Unicode 中的数字代码是十六进制 4E2D，即十进制 20,013。 如果用户无法输入该字符，则仍然可以通过 &amp;amp;amp;#20013; 或&amp;amp;amp;#x4e2d; 代表“中”这个字符。 类似地，字符串“I &amp;lt;3 Jörg”可以被编码为包含在 XML 文档中，如  &amp;lt;code&amp;gt;I &amp;amp;amp;lt;3 J&amp;amp;amp;#xF6;rg&amp;lt;/code&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&amp;amp;#0&amp;lt;/code&amp;gt;; 是不允许的，因为即使使用数字字符引用，空字符也是 XML 排除的控制字符之一。&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;{{Cite web|title=HTML, XHTML, XML and Control Codes|url=https://www.w3.org/International/questions/qa-controls|website=W3C|date=2003-09-06|language=en|last=Texin, Yergeau|first=Tex, François|access-date=2024-07-29|archive-date=2024-12-23|archive-url=https://web.archive.org/web/20241223163139/https://www.w3.org/International/questions/qa-controls|dead-url=no}}&amp;lt;/ref&amp;gt;需要使用 Base64 等替代编码机制来表示此类字符。&lt;br /&gt;
&lt;br /&gt;
=== 注释 ===&lt;br /&gt;
注释可以在文档内标记外的、XML声明之后的任何地方出现，始于  &amp;lt;code&amp;gt;&amp;lt;!--&amp;lt;/code&amp;gt;终于&amp;lt;code&amp;gt;--&amp;gt;&amp;lt;/code&amp;gt;。为了兼容[[SGML]]，注释内不得出现&amp;quot;--&amp;quot;，这意味着注释不能嵌套。&amp;amp; 符号在注释中没有特殊意义，因此实体和字符引用不会被识别，自然无法表示文档编码字符集之外的字符。&lt;br /&gt;
&lt;br /&gt;
=== 国际化 ===&lt;br /&gt;
XML 1.0（第五版）和 XML 1.1 支持在元素名称、属性、注释、字符数据和处理指令中直接使用几乎任何 Unicode 字符（除了在 XML 中具有特殊符号含义的字符，例如小于符号“&amp;lt;”）。 以下是一个格式良好的 XML 文档，包括中文、亚美尼亚语和西里尔语字符：&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;俄语 լեզու=&amp;quot;ռուսերեն&amp;quot;&amp;gt;дані&amp;lt;/俄语&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 句法修正和错误处理 ==&lt;br /&gt;
XML 规范中将符合语法规范的 XML 文档定义为格式良好的文档。规范中的语法规范中的关键点包括：&lt;br /&gt;
&lt;br /&gt;
* 该文档仅包含正确编码的合法 Unicode 字符&lt;br /&gt;
* 除非执行标记描述的作用，否则不应出现任何特殊语法字符（例如 &amp;lt; 和 &amp;amp;）&lt;br /&gt;
* 分隔元素的开始标记、结束标记和空白标记正确嵌套，无丢失、无重叠&lt;br /&gt;
* 标签名称区分大小写； 开始标记和结束标记必须完全匹配&lt;br /&gt;
* 标签名称不能包含任何非法字符： !&amp;quot;#$%&amp;amp;&amp;#039;()*+,/;&amp;lt;=&amp;gt;?@[\]^`{|}~   ，也不能包含空格，并且不能以“-”、 “.”或数字开头&lt;br /&gt;
* 仅存在一个根元素&lt;br /&gt;
* 单个根元素包含所有其他元素。&lt;br /&gt;
XML 文档的定义排除了那些违反了良构性规则的文本；这些文本根本不是 XML。遇到这种违反规则的情况时，XML 处理器需要报告这些错误并停止正常处理。这种政策，偶尔被称为“严格错误处理”，与处理 HTML 的程序的行为形成了明显对比，因为这些程序在存在严重标记错误的情况下，仍然能够产生合理的结果。&amp;lt;ref&amp;gt;{{Cite web|title=The history of draconian error handing in XML|url=http://diveintomark.org/archives/2004/01/16/draconianism|website=Dive into Mark|date=2004-01-16|language=en|last=Pilgrim|first=Mark|url-status=Dead|archive-url=https://web.archive.org/web/20110726002036/http://diveintomark.org/archives/2004/01/16/draconianism|archive-date=2011-07-26}}&amp;lt;/ref&amp;gt;这一方面的政策被批评为违反了 Postel 法则（“对发送的内容要保守，对接受的内容要宽容”）。&amp;lt;ref&amp;gt;{{Cite web|title=There are No Exceptions to Postel’s Law [dive into mark]|url=http://diveintomark.org/archives/2004/01/08/postels-law|website=Dive into Mark|date=2004-01-08|language=en|url-status=dead|archive-url=https://web.archive.org/web/20110514120305/http://diveintomark.org/archives/2004/01/08/postels-law|archive-date=2011-05-14}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
XML 规范将一个有效的 XML 文档定义为一个既符合良构性规则，又遵循文档类型定义（DTD）规则的 XML 文档。&amp;lt;ref&amp;gt;{{Cite web|title=XML Notepad|url=https://xmlnotepad.codeplex.com|website=CodePlex|language=en|url-status=dead|archive-url=https://web.archive.org/web/20171115122856/http://xmlnotepad.codeplex.com/|archive-date=2017-11-15}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== 例 ==&lt;br /&gt;
XML定义结构、存储信息、传送信息。下例為小张发送给大元的便条，存储为XML。&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;&lt;br /&gt;
  &amp;lt;小紙條&amp;gt;&lt;br /&gt;
    &amp;lt;收件人&amp;gt;大元&amp;lt;/收件人&amp;gt;&lt;br /&gt;
    &amp;lt;發件人&amp;gt;小張&amp;lt;/發件人&amp;gt;&lt;br /&gt;
    &amp;lt;主題&amp;gt;問候&amp;lt;/主題&amp;gt;&lt;br /&gt;
    &amp;lt;具體內容&amp;gt;早啊，飯吃了沒？ &amp;lt;/具體內容&amp;gt;&lt;br /&gt;
  &amp;lt;/小紙條&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
这XML文档仅是纯粹的信息标签，这些标签意义的展开依赖于应用它的程序。&lt;br /&gt;
&lt;br /&gt;
=== 结构 ===&lt;br /&gt;
&lt;br /&gt;
每个XML文档都由XML声明开始，在上面的代码中的第一行就是XML声明，&amp;lt;?xml version=&amp;quot;1.0&amp;quot;?&amp;gt;。这一行代码会告诉解析器或浏览器，这个文件应该按照XML规则进行解析。&lt;br /&gt;
&lt;br /&gt;
但是，根元素到底叫&amp;lt;小纸条&amp;gt;还是&amp;lt;小便条&amp;gt;，则是由[[文档类型定义]]（DTD）或[[XML Schema|XML纲要]]（XML Schema）定义的。如果DTD规定根元素必须叫&amp;lt;小便条&amp;gt;，那么若写作&amp;lt;小纸条&amp;gt;就不符合要求。这种不符合DTD或XML纲要的要求的XML文档，被称作&amp;#039;&amp;#039;&amp;#039;不合法的XML&amp;#039;&amp;#039;&amp;#039;，反之则是&amp;#039;&amp;#039;&amp;#039;合法的XML&amp;#039;&amp;#039;&amp;#039;。&lt;br /&gt;
&lt;br /&gt;
XML文件的第二行并不一定要包含文档元素；如果有注释或者其他内容，文档元素可以迟些出现。&lt;br /&gt;
&lt;br /&gt;
最常見的PI（processing instruction,像XML序言, 卻是不同類型的語法）是用來指定XML文件的樣式表, 这个PI一般会直接放在XML序言之后，通常由Web浏览器使用，来将XML数据以特殊的样式显示出来。&lt;br /&gt;
&lt;br /&gt;
XML的结构有一个缺陷，那就是不支持分帧（framing）。当多条XML消息在TCP上传输的时候，无法基于XML协议来确定一条XML消息是否已经结束。&lt;br /&gt;
&lt;br /&gt;
== 参考文献 ==&lt;br /&gt;
{{Reflist}}&lt;br /&gt;
&lt;br /&gt;
== 延伸閱讀 ==&lt;br /&gt;
{{refbegin}}&lt;br /&gt;
* Annex A of ISO 8879:1986 (SGML)&lt;br /&gt;
* {{cite journal|ssrn=900616|author=Lawrence A. Cunningham|title=Language, Deals and Standards: The Future of XML Contracts|journal=Washington University Law Review|year=2005}}&lt;br /&gt;
* {{cite journal |last1=Bosak |first1=Jon |first2=Tim |last2=Bray |title=XML and the Second-Generation Web |journal=Scientific American |date=May 1999 |url=http://www.scientificamerican.com/article.cfm?id=xml-and-the-second-genera |archive-url=https://web.archive.org/web/20091001200447/http://www.scientificamerican.com/article.cfm?id=xml-and-the-second-genera |archive-date=2009-10-01 |access-date=2018-01-19 |dead-url=no }}&lt;br /&gt;
* {{cite web|url=http://www.developer.com/xml/article.php/10929_3583081_1|title=Making Mistakes with XML|last=Kelly|first=Sean|date=2006-02-06|work=Developer.com|accessdate=2010-10-26|archive-date=2013-01-02|archive-url=https://archive.today/20130102101245/http://www.developer.com/xml/article.php/10929_3583081_1}}&lt;br /&gt;
* {{cite web|url=http://www.oreillynet.com/xml/blog/2003/02/five_years_later_xml.html|title=Five years later, XML..|last=St. Laurent|first=Simon|date=2003-02-12|work=O&amp;#039;Reilly XML Blog|publisher=[[O&amp;#039;Reilly Media]]|accessdate=2010-10-26|archive-date=2013-12-03|archive-url=https://web.archive.org/web/20131203032545/http://www.oreillynet.com/xml/blog/2003/02/five_years_later_xml.html}}&lt;br /&gt;
* {{cite web|url=http://www.w3.org/2008/02/xml10-pressrelease|title=W3C XML is Ten!|date=2008-02-12|publisher=[[World Wide Web Consortium]]|accessdate=2010-10-26|archive-date=2022-02-12|archive-url=https://web.archive.org/web/20220212215424/https://www.w3.org/2008/02/xml10-pressrelease}}&lt;br /&gt;
* {{cite web |url=http://wam.inrialpes.fr/courses/PG-MoSIG12/xml.pdf |title=Introduction to XML |date=October 2012 |work=Course Slides |publisher=[[Pierre Geneves]] |archiveurl=https://web.archive.org/web/20151016053704/http://wam.inrialpes.fr/courses/PG-MoSIG12/xml.pdf |archivedate=2015-10-16 |df= |accessdate=2018-01-19 |dead-url=no }}&lt;br /&gt;
{{refend}}&lt;br /&gt;
&lt;br /&gt;
== 外部链接 ==&lt;br /&gt;
* [https://web.archive.org/web/20060501114434/http://xml.ascc.net/zh/utf-8/gloss.html XML及SGML名词英汉翻译表] {{zh-tw}}&lt;br /&gt;
&lt;br /&gt;
== 参见 ==&lt;br /&gt;
* [[XHTML]]&lt;br /&gt;
* [[文件类型描述|DTD]]&lt;br /&gt;
* [[XML Schema]]&lt;br /&gt;
* [[XLink]]&lt;br /&gt;
* [[SVG]]&lt;br /&gt;
* [[XSLT]]&lt;br /&gt;
* [[X3D]]&lt;br /&gt;
* [[HTML]]&lt;br /&gt;
* [[CSS]]&lt;br /&gt;
* [[資源描述框架|RDF]]&lt;br /&gt;
* [[RSS]]&lt;br /&gt;
* [[Unicode]]&lt;br /&gt;
* [[MXML]]&lt;br /&gt;
{{-}}&lt;br /&gt;
&lt;br /&gt;
{{W3C规范和标准}}&lt;br /&gt;
{{Data Exchange}}&lt;br /&gt;
{{网页浏览器}}&lt;br /&gt;
{{网页技术与标准}}&lt;br /&gt;
&lt;br /&gt;
{{Authority control}}&lt;br /&gt;
&lt;br /&gt;
[[Category:XML| ]]&lt;br /&gt;
[[Category:W3C标准]]&lt;br /&gt;
[[Category:文件格式]]&lt;br /&gt;
[[Category:标记语言]]&lt;br /&gt;
[[Category:数据序列化格式]]&lt;br /&gt;
[[Category:带有代码示例的条目]]&lt;/div&gt;</summary>
		<author><name>~2025-44371-0</name></author>
	</entry>
</feed>