返回首页 XML 中文版

教程

高级 XML

工具

XML 语法

本章会带你通过简单的语法规则编写一个 XML 文档。下面是一个完整的 XML 文档:

<?xml version="1.0"?>
<concat-info>
<name>Tanmay Patil</name>
<company>TutorialsPoint</company>
<phone>(011) 123-4567</phone>
</concat-info>

你可以注意到上面的例子中有两种类型的信息:

  • 标记,比如 <concat-info>
  • 文本或者字符数据,比如 _Tutorials Point(011) 123-4567_。

下图描述了在 XML 文档中编写不同类型标记和文本的语法规则:

syntax rules

我们来详细看看上图中的每个组成部分:

XML 声明

XML 文档可以有一个可选的 XML 声明。它可以写作如下形式:

<?xml version="1.0" encoding="UTF-8"?>

这里 version 就是 XML 版本,encoding 指定文档中使用的字符编码。

XML 声明的语法规则

  • XML 声明区分大小写,必须以 "<?xml>" 开头,其中 "xml" 是小写的。
  • 如果文档包含 XML 声明,那么它必须是 XML 文档的第一条语句。
  • XML 声明必须是 XML 文档的第一条语句。
  • 可以使用一个 HTTP 协议覆盖 XML 声明中指定的 encoding 的值。

标签和元素

一个 XML 文件的结构由几个 XML 元素组成,也叫做 XML 节点或 XML 标签。XML 元素的名称使用尖括号 < > 闭合,如下所示:

<element>

标签和元素的语法规则

元素语法: 每个 XML 元素都必须闭合或者带有开始和结束元素,如下所示:

<element>....</element>

或者简写形式,就像这样:

<element/>

元素嵌套: 一个 XML 元素可以包含多个 XML 元素作为它的子元素,但是子元素不能重叠。比如,一个元素的结束标签必须与最近匹配的开始标签具有相同的名称。

下面的例子展示了不正确的嵌套标签:

<?xml version="1.0"?>
<contact-info>
<company>TutorialsPoint
<contact-info>
</company>

下面的例子展示了正确的嵌套标签:

<?xml version="1.0"?>
<contact-info>
<company>TutorialsPoint</company>
<contact-info>

根元素: 一个 XML 文档只有一个根元素。例如,下面是一个不正确的 XML 文档,因为 x 和 y 元素出现在顶层而没有一个根元素:

<x>...</x>
<y>...</y>

下面的例子展示了正确形式的 XML 文档:

<root>
    <x>...</x>
    <y>...</y>
</root>

区分大小写: XML 元素的名称区分大小写。这意味着元素的起始和结束标签大小写必须一样。

例如 <contact-info> 和 __<Contact-Info> 就不同。

属性

attribute 使用名/值对给元素指定一个属性(property)。一个 XML 元素可以有一个或多个属性(attributes)。例如:

<a href="http://www.tutorialspoint.com/">Tutorialspoint!</a>

这里 href 就是属性名称,而 http://www.tutorialspoint.com/ 就是属性值。

XML 属性的语法规则

  • XML 属性名区分大小写(和 HTML 不一样)。也就是说 HREFhref 会被认为是两个不同的 XML 属性。
  • 在语法中相同的属性不能有两个。下面的例子展示了不正确的语法,因为属性 b 被指定了两次:
<a b="x" c="y" b="z">....</a>
  • 属性名定义不带引号标记,而属性值必须显示在引号标记中。下面的例子演示了不正确的 XML 语法:
<a b=x>....</a>

在上面的语法中,属性值没有定义在引号标记中。

XML 引用

引用 通常允许我们在 XML 文档中添加或包含附加的文本。引用始终以符号 "&" 开始,这是一个保留字符,以符号 ";" 结尾。XML 中有两种类型的引用:

实体引用: 一个实体引用的起始和结束定界符之间包含一个名称。比如 &amp;,其中 amp 就是名称。这个 name 通常指向一个预定义的文本字符串或标记。

字符引用: 这些包含引用比如 &#65; 包含一个 hash 标记("#"),后面紧跟一个数字。这个数字始终指向一个字符的 Unicode 码。在这里,65 指向字母 "A"。

XML 文本

  • XML 元素和 XML 属性的名称区分大小写。这意味着元素的开始和结束标签大小写必须一致。
  • 为了避免字符编码的问题,所有的 XML 文件都应该保存为 Unicode UTF-8 或者 UTF-16 文件。
  • 空白字符,比如空格,制表符以及 XML 元素和 XML 属性之间换行符会被忽略。
  • 有些字符是 XML 语法本身保留的。因此,不能直接使用它们。要使用它们,就要使用一些替代实体。下面列出了一些:
不允许使用的字符 替代实体 字符描述
&lt; 小于号
> &gt; 大于号
& &amp; 和号
' &apos; 撇号
" &quot; 双引号
上一篇: 概述 下一篇: 文档