什么是XML?
- XML是EXtensible Markup Language的缩写
- XML是一种类似于HTML的标记语言
- XML是用来描述数据的
- XML的标记不是在XML中预定义的,你必须定义自己的标记
- XML使用文档类型定义(DTD)或者模式(Schema)来描述数据
- XML使用DTD或者Schema后就是自描述的语言
使用XML, CR / LF 被转换为 LF
使用 XML, 新行总是被标识为 LF(Line Feed,换行)。
你知道打字机是什么么?呵呵,打字机是在上个世纪里使用的一种专门打字的机器。^&^
当你用打字机敲完一行字后,你通常不得不再把打字头移动到纸的左端。
在Windows应用程序中,文本中的新行通常标识为 CR LF (carriage return, line feed,回车,换行)。在Unix应用程序中,新行通常标识为 LF。还有一些应用程序只使用CR来表示一个新行。
<!-- 这是一个注释 -->
使用XML,空白将被保留
属性值必须使用引号""
XML文档中的第一个元素就是根元素。
XML标记都是大小写敏感的
XML元素命名
XML元素命名必须遵守下面的规则:
- 元素的名字可以包含子母,数字和其他字符。
- 元素的名字不能以数字或者标点符号开头。
- 元素的名字不能以XML(或者xml,Xml,xMl...)开头。
- 元素的名字不能包含空格。
避免使用属性?
应该避免使用属性么?
这里有一些使用属性引发的问题:
- 属性不能包含多个值(子元素可以)。
- 属性不容易扩展。
- 属性不能够描述结构(子元素可以)。
- 属性很难被程序代码处理。
- 属性值很难通过DTD进行测试。
如果使用属性来存储数据,那么所编写的XML文档一定很难阅读和操作。尽量使用元素来描述数据,仅使用属性来描述那些与数据关系不大的额外信息。
统一资源标识符
通用资源标识符(A Uniform Resource Identifier (URI))是一个标识网络资源的字符串。最普通的URI应该是统一资源定位符Uniform Resource Locator (URL)。URL用于标识网络主机的地址。另一方面,另一个不常用的URI是通用资源名字Universal Resource Name (URN)。在我们的例子中,一般使用的是URLs。
下面是五个在XML文档中预定义好的实体参考:
< | < | 小于号 |
> | > | 大于号 |
& | & | 和 |
' | ' | 单引号 |
" | " | 双引号 |
实体必须以符号"&"开头,以符号";"结尾。
注意: 只有"<" 字符和"&"字符对于XML来说是严格禁止使用的。剩下的都是合法的,为了减少出错,使用实体是一个好习惯。
CDATA部件
在CDATA内部的所有内容都会被解析器忽略。
如果文本包含了很多的"<"字符和"&"字符——就象程序代码一样,那么最好把他们都放到CDATA部件中。
一个 CDATA 部件以"<![CDATA[" 标记开始,以"]]>"标记结束:
<script> <![CDATA[ function matchwo(a,b) { if (a < b && a < 0) then { return 1 } else { return 0 } } ]]> </script> |
在前面的例子中,所有在CDATA部件之间的文本都会被解析器忽略。
CDATA注意事项:
CDATA部件之间不能再包含CDATA部件(不能嵌套)。如果CDATA部件包含了字符"]]>" 或者"<![CDATA[" ,将很有可能出错哦。
同样要注意在字符串"]]>"之间没有空格或者换行符。
下面的编码类型不会导致错误,(用IE 5.0+浏览器观看), 并且汉字显示正常:
<?xml version="1.0" encoding="gb2312"?> |
下面的编码类型不会导致错误,(用IE 5.0+浏览器观看), 并且汉字显示正常:
<?xml version="1.0" encoding="gbk"?> |
|
FS_UNKNOWN
PI:
PI允许XML文件包含应用程序的指令,例如:在XML文件的开头生命就是一个PT,这些信息告诉XML解析器如何处理XML文件,如下:
<?xml version=” 1.0” encoding=”GB 2312” ?>
使用CSS来显示XML
使用CSS样式单 (Cascading Style Sheets) ,可以给XML文档添加额外的现实信息。
<?xml-stylesheet type="text/css" href="cd_catalog.css"?>
cd_catalog.txt:
CATALOG
{
background-color: #ffffff;
width: 100%;
}
CD
{
display: block;
margin-bottom:
30pt
;
margin-left: 0;
}
TITLE
{
color: #FF0000;
font-size:
20pt
;
}
ARTIST
{
color: #0000FF;
font-size:
20pt
;
}
COUNTRY,PRICE,YEAR,COMPANY
{
Display: block;
color: #000000;
margin-left:
20pt
;
}
数据绑定
XML数据岛可以绑定到HTML元素上(比如表格)。
在下面的例子中,一个XML数据岛(ID=cdcat)被从外部XML文档载入。一个HTML的表格绑定到此数据岛上。HTML表格内部的span元素使用datafld属性和XML文档相应的XML元素相互绑定。
<html> <body> <xml id="cdcat" src="cd_catalog.xml"></xml> <table border="1" datasrc="#cdcat"> <tr> <td><span datafld="ARTIST"></span></td> <td><span datafld="TITLE"></span></td> </tr> </table> </body> </html> |
命名空间属性
命名空间属性一般放置在元素的开始标记处,其使用语法如下所示:
xmlns:namespace-prefix="namespace" |
在上面的例子中,命名空间定义了一个Internet 地址:
xmlns:f="http://www.w3schools.com/furniture" |
W 3C 命名规范声明命名空间本身就是一个统一资源标示符,Uniform Resource Identifier (URI)。
当我们在元素的开始标记处使用命名空间时,该元素所有的子元素都将通过一个前缀与同一个命名空间相互关联。
注意:用来标识命名空间的网络地址并不被XML解析器调用,XML解析器不需要从这个网络地址中查找信息,该网络地址的作用仅仅是给命名空间一个唯一的名字,因此这个网络地址也可以是虚拟的,然而又很多公司经常把这个网络地址值象一个真实的Web页面,这个地址包含了关于当前命名空间更详细的信息。
统一资源标识符
通用资源标识符(A Uniform Resource Identifier (URI))是一个标识网络资源的字符串。最普通的URI应该是统一资源定位符Uniform Resource Locator (URL)。URL用于标识网络主机的地址。另一方面,另一个不常用的URI是通用资源名字Universal Resource Name (URN)。在我们的例子中,一般使用的是URLs。
既然前面的例子使用的URL地址来标识命名空间,我们可以确信这个命名空间是唯一的。