XML 语法规则
XML 的语法规则很简单,且很有逻辑。这些规则很容易学习,也很容易使用。
XML 文档必须有根元素
XML 文档必须包含一个根元素,该元素是所有其他元素的父元素:
<root> <child> <subchild>.....</subchild> </child> </root>
在此例中,<note>
是根元素:
<?xml version="1.0" encoding="UTF-8"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
XML 序言(XML Prolog)
这一行称为 XML 序言:
<?xml version="1.0" encoding="UTF-8"?>
XML 序言是可选的。如果存在,则必须位于文档的第一行。
XML 文档可以包含国际字符,例如挪威语 øæå 或法语 êèé。
为了避免错误,您应该指定所使用的编码,并将 XML 文件保存为 UTF-8。
UTF-8 是 XML 文档的默认字符编码。
您可以在我们的字符集教程中进行学习字符编码。
提示:UTF-8 也是 HTML5、CSS、JavaScript、PHP 和 SQL 的默认编码。
所有 XML 元素都必须有结束标签
在 XML 中,省略结束标记是非法的。所有元素都必须有结束标签:
<p>This is a paragraph.</p> <br />
注意:XML 序言没有结束标签!这不是错误。序言不属于XML本身的组成部分。它不是 XML 元素,也不需要关闭标签。
XML 标签区分大小写
XML 标签区分大小写。标签 <Letter> 与标签 <letter> 不同。
开始和结束标签必须使用相同的大小写:
<message>This is correct</message>
注释:打开标签和关闭标签通常被称为开始标签和结束标签。不论您喜欢哪种术语,它们的概念都是相同的。
XML 元素必须正确嵌套
在 HTML 中,您可能会看到没有正确嵌套的元素:
<b><i>This text is bold and italic</b></i>
在 XML 中,所有元素必须正确地相互嵌套:
<b><i>This text is bold and italic</i></b>
在上面的例子中,正确嵌套的意思是:由于 <i> 元素是在 <b> 元素内打开的,那么它必须在 <b> 元素内关闭。
XML 属性值必须加引号
与 HTML 类似,XML 也可拥有属性(名称/值对)。
在 XML 中,XML 的属性值须加引号:
<note date="12/11/2007"> <to>George</to> <from>John</from> </note>
实体引用
在 XML 中,一些字符拥有特殊的意义。
如果你把字符 "<" 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始。
这样会产生 XML 错误:
<message>if salary < 1000 then</message>
为了避免这个错误,请用实体引用来代替 "<" 字符:
<message>if salary < 1000 then</message>
在 XML 中,有 5 个预定义的实体引用:
< | < | 小于 |
> | > | 大于 |
& | & | 和号 |
' | ' | 单引号 |
" | " | 引号 |
注释:在 XML 中,只有字符 "<" 和 "&" 确实是非法的。> 是合法的,但是用 > 来代替它是一个好习惯。
XML 中的注释
在 XML 中编写注释的语法与 HTML 的语法很相似:
<!-- This is a comment -->
注释中间不允许有两个破折号:
<!-- This is an invalid -- comment -->
XML 中保留空白
HTML 会把多个连续的空格字符裁减(合并)为一个,在 XML 中,文档中的空格不会被删节:
XML: Hello George HTML: Hello George
XML 将新行存储为 LF
在 Windows 应用程序中,换行通常以一对字符来存储:回车符 (CR) 和换行符 (LF)。这对字符与打字机设置新行的动作有相似之处。
Unix 和 Mac OSX 使用 LF。
旧的 Mac 系统使用 CR。
XML 将新行存储为 LF。
格式良好的 XML
符合上述语法规则的 XML 文档被称为“格式良好”的 XML 文档。