这学期选修了XML技术这门课,没有发课本,于是参考了W3school教程,整理一下上课的内容。
1.XML简介
XML是一种标记语言,很类似HTML,它不是对HTML的替代,而是对HTML的补充。在大多数web应用程序中,XML用于传输数据,而HTNL用于格式化并显示数据。
XML语言和HTML语言的比较
|
名称
|
作用 |
标签 |
省略关闭标签 |
元素错误嵌套 |
空格的处理 |
HTML |
超文本标记语言(Hyper Text Markup Language) |
显示数据 注重数据外观 |
预定义 |
合法 |
允许 |
连续空格合并为一个 |
XML |
可扩展标记语言(Extensible Markup Language) |
传输和存储数据 注重数据内容 |
自定义 |
非法 |
不允许 |
空格不会被删节 |
2.XML元素
什么是XML元素?
XML元素指的是从(且包括)开始标签直到(且包括)结束标签的部分。
元素可包含其他元素、文本或者两者的混合物。元素也可以拥有属性。
1 <bookstore>
2 <book category="CHILDREN">
3 <title>Harry Potter</title>
4 <author>J K. Rowling</author>
5 <year>2005</year>
6 <price>29.99</price>
7 </book>
8 <book category=""WEB>
9 <title>Learing XML</title>
10 <author>Erik T .Ray</author>
11 <year>2003</year>
12 <price>39.95</price>
13 </book>
14 </bookstore>
3.XML命名规则和最佳命名习惯
必须遵循的命名规则:
名称可以含字母数字和其他字符。
名称不能以数字和标点符号开始。
名称不能以xml(或者XML、Xml)开始。
名称不能包含空格。
最佳命名习惯
使名称具有描述性,名称应当比较简短。
避免“-”、“.”、“:”字符。
XML文档通常有一个对应的数据库,其中的字段会对应XML文档中的元素。
有一个使用的经验,使用XML数据库中的命名规则来命名XML文档中的元素。
4.XML元素是可扩展的
XML的优势之一就是可以在不中断应用程序的情况下进行扩展。
5.XML属性
XML元素可以在开始标签中包含属性,类似HTML。
属性(Attribute)提供关于元素的附加信息。
属性通常提供不属于数据组成部分的信息,在下面例子中,文件类型和数据内容无关,但是对于需要处理这个元素的软件来说却很重要。
<file type="gif">computer.gif</file>
XML属性值必须被引号包围,单引号、双引号均可。
XML的元素和属性的使用
1 <person sex="female">
2 <firstname>Anna</firstname>
3 <lastname>Smith</lastname>
4 </person>
5
6 <person>
7 <sex>female</sex>
8 <firstname>Anna</firstname>
9 <lastname>Smith</lastname>
10 </person>
这个例子告诉我们,无论用属性还是元素均可提供相同的信息。
那么什么时候该使用属性,什么时候使用子元素呢?
因使用属性而引起的一些问题:
- 属性无法包含多重的值(元素可以)
- 属性无法描述树结构(元素可以)
- 属性不易扩展(为未来的变化)
- 属性难以阅读和维护
所以,请尽量用元素来描述数据,而仅仅用属性提供与数据无关的信息。
6.XML验证
拥有正确语法的XML被称为“形式良好的”XML。
通过DTD验证的被称为“合法的”XML。
“形式良好”或“结构良好”的 XML 文档拥有正确的语法。
“形式良好”(Well Formed)的 XML 文档会遵守前几章介绍过的 XML 语法规则:
- XML 文档必须有根元素
- XML 文档必须有关闭标签
- XML 标签对大小写敏感
- XML 元素必须被正确的嵌套
- XML 属性必须加引号
1 <?xml version="1.0" encoding="ISO-8859-1">
2 <note>
3 <to>George</to>
4 <from>John</from>
5 <heading>Reminder</heading>
6 <body>Don't forget the meeting!</body>
7 </note>
XML DTD
DTD的作用是定义XML文档结构,它使用一系列合法元素来定义文档结构。