1:XML与HTML的异同:
XML是被设计用来描述数据的,重点是:什么是数据,如何存放数据。
HTML是被设计用来显示数据的,重点是:显示数据以及如何显示数据更好上面。
HTML是与显示信息相关的, XML则是与描述信息相关的。
2:通过XML,你可以在HTML文件之外存储数据。
把数据转换为XML格式存储将大大减少交换数据是的复杂性,并且还可以使得这些数据能被不同的程序读取.
3:Easy Sample
<?xml version="1.0" encoding="ISO-8859-1"?>
<note>
<to>Lin</to>
<from>Ordm</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note> |
<?xml version="1.0" encoding="ISO-8859-1"?> // 版本介绍,以及字符集使用的是ISO-8859-1 .
<note> //根元素,一个文件只有只个根元素.
<to>Lin</to>
<from>Ordm</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body> //描述性语言部分,讲述一个头为Reminder,内容为
Don't forget me this weekend!的NOTE从LIN发送给ORDM.
</note> //根元素的结束,这样的字符必须是结构良好的,成对出现.
嵌套也必须遵从顺序<b><i></i></b>是错误的。
注意:XML对大小写是敏感的,note与Note与NOTE三者是完全不同的.
4:属性值必须带引号
<?xml version="1.0" encoding="ISO-8859-1"?>
<note date="12/11/99"> |
其中版本号,以及时间皆为属性,所以必须加引号。
注释的书写:<!-- 这是一个注释 -->
5:父元素与子元素之间的关系
假设有这样一个表:
署名: XML 指南 第一章: XML入门简介 第二章: XML语法 - XML元素必须有结束标记
- XML元素必须正确的嵌套
|
那么对应的语言描述如下:
<book>
<title>XML 指南</title>
<prod id="33-657" media="paper"></prod> <chapter>XML入门简介
<para>什么是HTML</para>
<para>什么是XML</para>
</chapter>
<chapter>XML语法
<para>XML元素必须有结束标记</para>
<para>XML元素必须正确的嵌套</para>
</chapter>
</book> |
在上面的代码中,book元素是XML文档的根元素,title元素和chapter元素是book元素的子元素。book元素是title元素和chapter元素的父元素。title元素,prod元素和chapter元素是平级元素,因为他们都有同一个父元素。
6: 命名
遵从一般的命名规则,但是注意在XML元素命名中不要使用":",因为XML命名空间需要用到这个十分特殊的字符。
7: 使用子元素还是属性
<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中,你最好避免使用
推荐样式:
<note>
<date>
<day>12</day>
<month>11</month>
<year>99</year>
</date>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note> |
需要注意的是:元数据(与数据有关的数据)应该以属性的方式存储,而数据本身应该以元素的形式存储。
7: 数据岛
使用非官方标准的<xml>标记可以将XML数据嵌入到HTML页面中。
XML数据可以象下面的例子那样嵌入HTML页面:
<xml id="note">
<note>
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
</xml> |
或者象下面这样嵌入外部单独的XML文件:
<xml id="note" src="note.xml">
</xml> |
注意那个<xml>标记是一个HTML元素,而不是一个XML元素。
8: 转意字符
不合法的XML字符必须被替换为相应的实体。
如果在XML文档中使用类似"<" 的字符, 那么解析器将会出现错误,因为解析器会认为这是一个新元素的开始。所以不应该象下面那样书写代码:
<message>if salary < 1000 then</message> |
为了避免出现这种情况,必须将字符"<" 转换成实体,象下面这样:
<message>if salary < 1000 then</message> |
下面是五个在XML文档中预定义好的实体:
< | < | 小于号 |
> | > | 大于号 |
& | & | 和 |
' | ' | 单引号 |
" | " | 双引号 |
实体必须以符号"&"开头,以符号";"结尾
。
9: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[" ,将很有可能出错哦。
同样要注意在字符串"]]>"之间没有空格或者换行符。
10:
posted on 2006-12-26 10:10
乔栋 阅读(350)
评论(0) 编辑 收藏 引用 所属分类:
XML