目录
一、XML简介
HTML 被设计用来显示数据,而 XML 被设计用来传输和存储数据。
1、XML的定义
XML 指可扩展标记语言(EXtensible Markup Language)。
XML 是一种很像HTML的标记语言。
XML 的设计宗旨是传输数据,而不是显示数据。
XML 标签没有被预定义。您需要自行定义标签。
XML 被设计为具有自我描述性。
XML 是 W3C 的推荐标准。
2、XML 和 HTML 之间的差异
(1)XML 和 HTML 为不同的目的而设计:
- XML 被设计用来传输和存储数据,其焦点是数据的内容。
- HTML 被设计用来显示数据,其焦点是数据的外观。
(2)HTML 旨在显示信息,而 XML 旨在传输信息。
二、XML的用途
通过XML,数据能够存储在独立的XML文件中,这样就可以在HTML文档需要动态显示数据时,不必花费大量时间来修改编辑HTML,使HTML更加专注显示和布局。
三、XML树结构
XML 文档形成了一种树结构,它从"根部"开始,然后扩展到"枝叶"。
XML 文档使用简单的具有自我描述性的语法,譬如
<!-- XML 声明,它定义 XML 的版本(1.0)和所使用的编码(UTF-8 : 万国码, 可显示各种语言)。 -->
<?xml version="1.0" encoding="UTF-8"?>
<!-- 定义一个便签 -->
<note>
<!-- 发送给Tove -->
<to>Tove</to>
<!-- 由Jani发送 -->
<from>Jani</from>
<!-- 标签头部主旨 -->
<heading>Reminder</heading>
<!-- 标签主体内容 -->
<body>Don't forget me this weekend!</body>
</note>
XML 文档必须包含根元素。该元素是所有其他元素的父元素。XML 文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。
四、XML语法规则
- XML 必须包含根元素,它是所有其他元素的父元素。
- XML 声明文件的可选部分,如果存在需要放在文档的第一行。
- 所有的 XML 元素都必须有一个关闭标签。
- XML 标签对大小写敏感,必须使用相同的大小写来编写打开标签和关闭标签。
- XML 属性值必须加引号。
- 在 XML 中,一些字符拥有特殊的意义,需要使用实体引用。
实体引用 | 字符 | 说明 |
< | < | less than |
> | > | greater than |
& | & | ampersand |
' | ' | apostrophe |
" | " | quotation mark |
- 在 XML 中,空格会被保留。
- XML中换行通常以一对字符来存储:换行符(LF)。
五、XML元素
1、XML元素类型
XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。
一个元素可以包含:
- 其他元素
- 文本
- 属性
- 或混合以上所有...
譬如,
<bookstore>
<book category="CHILDREN">
<title>Harry Potter</title>
<author>J K. Rowling</author>
<year>2005</year>
<price>29.99</price>
</book>
<book category="WEB">
<title>Learning XML</title>
<author>Erik T. Ray</author>
<year>2003</year>
<price>39.95</price>
</book>
</bookstore>
在上面的实例中,
- <bookstore> 和 <book> 都有 元素内容,因为他们包含其他元素。
- <book> 元素也有属性(category="CHILDREN")。
- <title>、<author>、<year> 和 <price> 有文本内容,因为他们包含文本。
2、XML元素的命名规则
- 可使用任何名称,没有保留的字词
- 名称可以包含字母、数字以及其他的字符
- 名称不能以数字或者标点符号开始
- 名称不能以字母 xml(或者 XML、Xml 等等)开始
- 名称不能包含空格
最佳命名习惯:
名称应简短和简单,使名称具有描述性,亦可使用下划线的名称。XML 文档经常有一个对应的数据库,其中的字段会对应 XML 文档中的元素。通常,使用数据库的命名规则来命名 XML 文档中的元素。
六、XML属性
属性(Attribute)提供有关元素的额外信息,但是属性通常提供不属于数据组成部分的信息。
使用属性会引起的一些问题:
- 属性不能包含多个值(然而元素可以)
- 属性不能包含树结构(元素可以)
- 属性不容易扩展(为未来的变化)
譬如,
(1)使用date属性
<note date="10/01/2008">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
(2)使用了扩展的 date 元素
<note>
<date>
<day>10</day>
<month>01</month>
<year>2008</year>
</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>