一、XML基础
(一)什么是XML
1、XML 和 HTML 为不同的目的而设计,XML 是对 HTML 的补充
- XML 被设计用来传输和存储数据,其焦点是数据的内容。
- HTML 被设计用来显示数据,其焦点是数据的外观。
2、这些标签是由 XML 文档的创作者发明的,这是因为 XML 语言没有预定义的标签。
(二)XML用途
1、把数据从HTML分离()
2、简化数据共享、简化数据传输、简化平台变更
3、不同的应用程序都能够访问您的数据,使您的数据更有用。
4、用于创建新的互联网语言
(三)语法规则
1、XML 必须包含根元素;
2、XML 声明文件的可选部分,如果存在需要放在文档的第一行;
<?xml version="1.0" encoding="utf-8"?>
3、在 XML 中,省略关闭标签是非法的。所有元素都必须有关闭标签;
4、在 XML 中,所有元素都必须彼此正确地嵌套;
5、大小写敏感;
6、在 XML 中,XML 的属性值必须加引号。
如:
<note date="12/11/2007">
<to>Tove</to>
<from>Jani</from>
</note>
7、实体引用
8、注释
<!-- This is a comment -->
(四)HTML元素
XML 元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。
一个元素可以包含:
- 其他元素
- 文本
- 属性
- 或混合以上所有...
<bookstore> 和 <book> 都有 元素内容,因为他们包含其他元素。<book> 元素也有属性(category="CHILDREN")。<title>、<author>、<year> 和 <price> 有文本内容,因为他们包含文本。
(五)命名规则
- 名称可以包含字母、数字以及其他的字符
- 名称不能以数字或者标点符号开始
- 名称不能以字母 xml(或者 XML、Xml 等等)开始
(六)XML属性
1、XML属性必须加引号,属性值必须被引号包围,不过单引号和双引号均可使用。
2、如果属性值本身包含双引号,您可以使用单引号,
3、或者您可以使用字符实体:
<gangster name="George "Shotgun" Ziegler">
4、XML元素VS属性
<person sex="female">
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
<person>
<sex>female</sex>
<firstname>Anna</firstname>
<lastname>Smith</lastname>
</person>
在第一个实例中,sex 是一个属性。在第二个实例中,sex 是一个元素。这两个实例都提供相同的信息。
没有什么规矩可以告诉我们什么时候该使用属性,而什么时候该使用元素。我的经验是在 HTML 中,属性用起来很便利,但是在 XML 中,您应该尽量避免使用属性。如果信息感觉起来很像数据,那么请使用元素吧。
5、避免XML属性
因使用属性而引起的一些问题:
- 属性不能包含多个值(元素可以)
- 属性不能包含树结构(元素可以)
- 属性不容易扩展(为未来的变化)
属性难以阅读和维护。请尽量使用元素来描述数据。而仅仅使用属性来提供与数据无关的信息。
(七)针对元数据的XML属性
有时候会向元素分配 ID 引用,这些 ID 索引可用于标识 XML 元素,它起作用的方式与 HTML 中 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>
上面的 id 属性仅仅是一个标识符,用于标识不同的便签。它并不是便签数据的组成部分。
在此我们极力向您传递的理念是:元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。