XML
1. 树结构
实例:
<?xml version="1.0" encoding="UTF-8"?>
<bookstore>
<book category="COOKING">
<title lang="en">Everyday Italian</title>
<author>Giada De Laurentiis</author>
<year>2005</year>
<price>30.00</price>
</book>
</bookstore>
实例中的根元素是 <bookstore>
。文档中的所有 <book>
元素都被包含在 <bookstore>
中。
<book>
元素有 4 个子元素:<title>、<author>、<year>、<price>
。蓝色字体为属性。
第一行为声明。
2. 语法规则
- 必须要有根元素
- 声明为可选,如存在需放在第一行。
- 所有元素都必须要有一个关闭标签,如</book>
- 必须正确嵌套。即关闭标签的顺序要一致。
- 属性值必须加引号。
实体引用,有5个预定义,用来替代这些符号,避免错误。
|
<
| < | less than | | ------ | ---- | ---------------- | |>
| > | greater than | |&
| & | ampersand | |'
| ' | apostrophe | |"
| " | quotation mark |当这些字符很多时可以用,
<![CDATA[这里写内容]]>
- 注释,格式为
<!-- This is a comment -->
- 空格会被保留,连续的空格不会被合并。
以LF存储换行。
- 在 Windows 应用程序中,换行通常以一对字符来存储:回车符(CR)和换行符(LF)。
- 在 Unix 和 Mac OSX 中,使用 LF 来存储新行。
- 在旧的 Mac 系统中,使用 CR 来存储新行。
- XML 以 LF 存储换行。
标签对大小写敏感。
3. 元素
概念:元素是指从(且包括)开始标签直到(且包括)结束标签的部分。一个元素可以包含:其他元素,文本,属性,或混合以上所有。
命名规则:包含字母、数字以及其他的字符。不能以数字或标点符号开始。不能以任何xml三个字组成的开始。不能包含空格。
命名习惯:避免使用“-”“.”“:”
空元素:<name/>
或者<name> </name>
4. 属性
- 属性必须加引号,单双引号均可。如果属性值本身包含双引号可以用单引号包含双引号,或者使用字符实体。
<gangster name=‘George "ShotGun" Ziegler’> <gangster name=‘George "ShotGun" Ziegler’>
- 一个元素可以有多个属性,用空格隔开。
- 没有规定什么时候使用属性,什么时候使用元素,建议尽量避免使用属性。
- 下面的 id 属性仅仅是一个标识符,用于标识不同的便签。它并不是便签数据的组成部分。
在此我们极力向您传递的理念是:元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。
<messages> <note id="501"> <to>Tove</to> <from>Jani</from> <heading>Reminder</heading> <body>Don't forget me this weekend!</body> </note> <note id="502"> <to>Jani</to> <from>Tove</from> <heading>Re: Reminder</heading> <body>I will not</body> </note> </messages>
5. 命名空间
使用前缀来避免命名冲突。
语法规则:xmlns:前缀="URI",命名空间可以在他们被使用的元素中或者在XML根元素中声明。
默认命名空间如下。默认空间名不应用于属性。如下面的isbn属性没有命名空间。
取消绑定命名空间:<purchase xmlns="">
表示purchase范围内都位于无命名空间。<purchase xmlns:lib="">
表示范围内lib不能使用,可以重新定义。
<?xml version="1.0"?>
<Book isbn="1234" xmlns="http://www.library.com">
<Title>Sherlock Holmes - I</Title>
<Author>Arthur Conan Doyle</Author>
<purchase xmlns="http://www.otherlibrary.com">
<Title>Sherlock Holmes - II</Title>
<Author>Arthur Conan Doyle</Author>
</purchase>
<Title>Sherlock Holmes - III</Title>
<Author>Arthur Conan Doyle</Author>
</Book>
在以上的示例中, 元素Book、 Title 和 Author 与命名空间http://www.library.com
关联,元素 purchase、 Title 和 Author 与命名空间http://www.otherlibrary.com
关联。