XML 指可扩展标记语言(eXtensible Markup Language)。
- XML 被设计用来传输和存储数据。(HTML 被设计用来显示数据。)
- XML 没有预定义的标签。您需要自行定义标签。(HTML 中使用的标签都是预定义的。HTML 文档只能使用在 HTML 标准中定义过的标签)
- XML 被设计为具有自我描述性。
XML 不会做任何事情,我们需要编写软件或者程序,才能传送、接收和显示出这个文档。
XML 是对 HTML 的补充。
XML 不会替代 HTML,理解这一点很重要。在大多数 Web 应用程序中,XML 用于传输数据,而 HTML 用于格式化并显示数据。
对 XML 最好的描述是:
XML 是独立于软件和硬件的信息传输工具。
XML 把数据从 HTML 分离
XML 树结构
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note SYSTEM "Note.dtd">
<line id="1"> the <bold>First</bold>line</line>
第一行是 XML 声明。它定义 XML 的版本(1.0)和所使用的编码(UTF-8 : 万国码, 可显示各种语言)。
UTF-8 也是 HTML5, CSS, JavaScript, PHP, 和 SQL 的默认编码。
第二行,DOCTYPE 声明是对外部 DTD 文件的引用
XML将数据组织成为一棵树,DOM 通过解析 XML 文档,为 XML 文档在逻辑上建立一个树模型,树的节点是一个个的对象。这样通过操作这棵树和这些对象就可以完成对 XML 文档的操作,为处理文档的所有方面提供了一个完美的概念性框架。
XML 文档必须包含根元素。该元素是所有其他元素的父元素。
所有的元素都可以有子元素:
父、子以及同胞等术语用于描述元素之间的关系。父元素拥有子元素。相同层级上的子元素成为同胞(兄弟或姐妹)。
所有的元素都可以有文本内容和属性(类似 HTML 中)。
XML 语法规则
- XML 必须包含根元素,它是所有其他元素的父元素,
- XML 声明是文件的可选部分,如果存在需要放在文档的第一行,(声明不是 XML 文档本身的一部分,它没有关闭标签。)
- 所有的 XML 元素都必须有一个关闭标签(在 HTML 中,某些元素不必有一个关闭标签)
- XML 标签对大小写敏感(标签 <Letter> 与标签 <letter> 是不同的。必须使用相同的大小写来编写打开标签和关闭标签)
- XML 必须正确嵌套
- XML 属性值必须加引号(单引号和双引号均可使用,如果属性值本身包含双引号,您可以使用单引号,或者您可以使用字符实体)
注释:打开标签和关闭标签通常被称为开始标签和结束标签。不论您喜欢哪种术语,它们的概念都是相同的。
<b><i>This text is bold and italic</i></b>
在上面的实例中,正确嵌套的意思是:由于 元素是在 元素内打开的,那么它必须在 元素内关闭。
实体引用
在 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 -->
在 XML 中,空格会被保留(HTML 会把多个连续的空格字符裁减(合并)为一个:)
XML 以 LF 存储换行
在 Windows 应用程序中,换行通常以一对字符来存储:回车符(CR)和换行符(LF)。
在 Unix 和 Mac OSX 中,使用 LF 来存储新行。
在旧的 Mac 系统中,使用 CR 来存储新行。
XML 以 LF 存储换行。