XML 语法规则
XML 是自描述的数据传输语言
XML 的语法规则很简单,且很有逻辑
XML 的语法规则很容易学习,很容易记住,更很容易使用
XML 文档必须有根元素
XML 必须包含根元素,它是所有其他元素的父元素,
比如以下 XML 文档中 root 就是根元素
<root> <child> <subchild>.....</subchild> </child> </root>
下面 XML 文档中 note 是根元素
<?xml version="1.0" encoding="UTF-8"?> <note> <to>小明</to> <from>小红</from> <heading>短信</heading> <body>I miss you so much</body> </note>
XML 声明
XML 声明部分的可选部分,如果存在需要放在文档的第一行,如下所示:
<?xml version="1.0" encoding="utf-8"?>
这个声明包含 XML 版本(1.0) 和 文件编码格式(UTF-8)
虽然声明是可选的,但我们推荐你的 XML 文档都要有 XML 声明
所有的 XML 元素都必须有一个关闭标签
在 HTML4 中,某些元素不必有一个关闭标签
<p>这是一个段落。 <br>
但在 XML 中,省略关闭标签是非法的。所有元素都 必须 有关闭标签
<p>这是一个段落。</p> <br />
你也许已经注意到 XML 声明没有关闭标签。这不是错误 声明不是 XML 文档本身的一部分,它没有关闭标签
XML 标签对大小写敏感
XML 标签 对大小写敏感。
标签 <Letter> 与标签 <letter> 是不同的
必须使用相同的大小写来编写打开标签和关闭标签
<Message>这是错误的</message> <message>这是正确的</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>Tove</to> <from>Jani</from> </note>
这个才是正确的
<note date="12/11/2007"> <to>Tove</to> <from>Jani</from> </note>
第一个文档中的错误是:note 元素中的 date 属性没有加引号
实体引用
在 XML 中,一些字符拥有特殊的意义
把字符 "<" 放在 XML 元素中,会发生错误,这是因为解析器会把它当作新元素的开始
这样会产生 XML 错误
<message>if salary < 1000 then</message>
看到红色部分了没,那就是表示 XML 解析器出错了,出错第地方用红色显示
为了避免这个错误,可以用 实体引用 来代替 "<" 字符
<message>if salary < 1000 then</message>
XML 有 5 个预定义的实体引用
引用 | 实体 | 描述 |
---|---|---|
< | < | 小于号 |
> | > | 大于号 |
& | & | 与号 |
' | ' | 单引号 |
" | " | 双引号 |
在 XML 中,只有字符 "<" 和 "&" 是非法的。大于号是合法的 用实体引用来代替它是一个好习惯
XML 中的注释
在 XML 中编写注释的语法与 HTML 的语法很相似
XML 注释以 <!--
开头,以 -->
结尾,可以跨行,但不可以嵌套
这是注释
<!-- This is a comment -->
这也是注释
<!-- author: 简单教程(www.twle.cn)--> <!-- Copyright © 2015-2065 www.twle.cn. All rights reserved. -->
XML 中的空格会被保留
HTML 会把多个连续的空格字符合并为一个
"Hello Tove" 输出为 "Hello Tove"
在 XML 中,文档中的空格不会被合并
XML 以 LF 存储换行
XML 以 换行符(\n)) 存储换行
在 Windows 中,换行通常以 回车换行符(\r\n) 来存储
在 Unix 和 Mac OSX 中,换行以 换行符来存储(\n)
在旧的 Mac 系统中,换行以 回车符(\r) 来存储