XML 指可扩展标记语言(EXtensible Markup Language)
XML 是一种标记语言,很类似 HTML
XML 被设计用来描述数据
XML 标签没有被预定义。您需要自行定义标签。
XML 使用文件类型声明(DTD)或者 XML Schema 来描述数据。
带有 DTD 或者 XML Schema 的 XML 被设计为具有自我描述性。
XML 是一个 W3C 标准
2.XML 声明
<?xml version="1.0" encoding="ISO-8859-1"?>
定义了 XML 的版本和文档中使用的字符编码。在这个例子中,遵守的是 XML 1.0 规范,并使用了 ISO-8859-1 字符集。
3.XML元素命名规则
XML 元素必须遵守这些命名规则:
名字可包含字母、数字以及其他的字符
名字不能以数字或者标点符号开始
名字不能以字符“xml”(或者XML、Xml)开始
名字不能包含空格
当您“发明创造”元素名称时,请留意并遵循下面的简单规则:
您可以使用任何名称,没有保留字,但是理想的做法是使名称具有描述性。使用下划线的名称也很不错。
例子: <first_name>,<last_name>
应该在名称中避免"-"和"."。比方说,如果您将某个元素命名为"first-name",那么当您的软件试图从first段来提取名称时可能会出现混乱的局面。或者如果您将某个元素命名为"first.name",您的软件也许会认为"name"是"first"对象的一个属性。
元素名称可以是你希望的任何长度,但是也不要太夸张。名称应当比较简短,比如:<book_title>,而不是:<the_title_of_the_book>。
XML 文档经常有一个对应的数据库,其中的域会对应 XML 文档中的某个元素。有一个实用的经验,即使用数据库的名称规则命名 XML 文档中的元素。
非英语的字母比如éòá也是合法的XML元素名,不过需要留意当软件开发商不支持这些字符时可能出现的问题。
不应在 XML 元素名称中使用 ":" ,这是由于它是用于命名空间(namespaces)的保留字。
4.避免使用属性
我们应当避免使用属性
因使用属性而引起的一些问题:
属性无法包含多个值(子元素可以)
属性不易扩展(为未来的变化)
属性无法描述结构(子元素可以)
属性更难被编程代码处理
不易通过某个 DTD 对属性值进行测试 - DTD(文档类型定义Document Type Definition) 用来定义 XML 文档的合法元素
如果您使用属性作为数据的容器,那么就会造就难以阅读和维护的文档。请尽量使用元素来描述数据。而仅仅使用属性来提供与数据无关的信息。
元数据(有关数据的数据)应当存储为属性,而数据本身应当存储为元素。
5.一个"形式良好"的 XML 文档会遵守前几章介绍过的 XML 语法规则:
XML 文档必须有根元素
XML 文档必须有关闭标签
XML 标签对大小写敏感
XML 元素必须被正确的嵌套
XML 属性必须加引号
6.XML文件如何链接到CSS
<?xml-stylesheet type="text/css" href="*.css"?>
注意:使用 CSS 格式化 XML 不能代表 XML 文档样式化的未来。XML 文档应当使用 W3C 的 XSL 标准进行格式化!
7.XML文件如何链接到XSL
<?xml-stylesheet type="text/xsl" href="*.xsl"?>
8.什么是XML数据岛?
XML 数据岛是嵌入 HTML 中的 XML 数据。
一个数据岛实例:
<html>
<body>
<xml id="cdcat" src="/example/xmle/cd_catalog.xml"></xml>
//<table> 标签的 datasrc 属性可以把 HTML 格元素绑定到 XML 数据岛,这个 datasrc 属性会引用数据岛的 id 属性
<table border="1" datasrc="#cdcat">
<thead>
<tr><th>Artist</th><th>Title</th></tr>
</thead>
<tfoot>
<tr><th colspan="2">This is my CD collection</th></tr>
</tfoot>
<tbody>
<tr>
//<td> 无法被绑定至数据岛,所以我们使用了 <span> 标签,<span> 允许 datafld 属性来引用需要显示的XML元素
<td><span datafld="artist"></span></td>
<td><span datafld="title"></span></td>
</tr>
</tbody>
</table>
</body>
</html>
其中cd_catalog.xml文件内容为:
<?xml version="1.0" encoding="ISO-8859-1" ?>
<!-- Edited with XML Spy v2007 (http://www.altova.com) -->
- <CATALOG>
- <CD>
<TITLE>Empire Burlesque</TITLE>
<ARTIST>Bob Dylan</ARTIST>
<COUNTRY>USA</COUNTRY>
运行结果为:
Artist | Title |
---|---|
This is my CD collection | |
Bob Dylan | Empire Burlesque |
Bonnie Tyler | Hide your heart |
Dolly Parton | Greatest Hits |
Gary Moore | Still got the blues |
Eros Ramazzotti | Eros |
Bee Gees | One night only |
Dr.Hook | Sylvias Mother |
Rod Stewart | Maggie May |
Andrea Bocelli | Romanza |
Percy Sledge | When a man loves a woman |
Savage Rose | Black angel |
Many | 1999 Grammy Nominees |
Kenny Rogers | For the good times |
Will Smith | Big Willie style |
Van Morrison | Tupelo Honey |
Jorn Hoel | Soulsville |
Cat Stevens | The very best of |
Sam Brown | Stop |
T'Pau | Bridge of Spies |
Tina Turner | Private Dancer |
Kim Larsen | Midt om natten |
Luciano Pavarotti | Pavarotti Gala Concert |
Otis Redding | The dock of the bay |
Simply Red | Picture book |
The Communards | Red |
Joe Cocker | Unchain my heart |