XML的语法、结构以及相关的一些技术(5)

时间:2007-10-23 07:27:00 

■XHTML

XHTML最早叫HTML in XML,就是把过去用SGML定义的HTML,用XML来重新定义(不要忘了,XML是一种定义语言的语言)。实际上,XHTML中的标记基本上还是HTML 4.0中的那些标记,各种标记、属性的用法基本不变。只不过因为它是通过XML定义的,所以必须严格遵守XML的规定,不像过去那样随便。那为什么要发展XHTML呢?

现在,手机上网、信息家电等炒得如火如荼,好像什么都应该连到因特网上。XHTML正是适应这种潮流而出现的。大家知道,现在的HTML越来越复杂,而且存在大量的不规范HTML网页(并不是能够在IE、Netscape正确显示就算是规范的网页),而浏览器为了能够适应这种情况,包容了大量五花八门的HTML网页,已经变得非常臃肿(这就是虽然你的HTML语法错误,有时还是能够正确显示出来的原因,设计浏览器的工程师绞尽脑汁来适应、包容错误)。对于PC来说,这不算什么,因为PC的性能已经得到了很大程度的提升,而对于那些掌中设备、信息家电,可没有这么多存储空间可用。XML标准简单但是非常严格,主要目的就是减轻解析器、浏览器的开发负担以及这些软件的体积。一般的XML解析器的体积不过几百KB。根据XML标准定义出来的XHTML当然继承了XML的特性,同时也保留了HTML在表现形式上的优越性,它摒弃了HTML中的“不干净”代码,提供了良好的可伸缩性,可大可小。

XHTML通过将过去的HTML功能,按照使用者的需要和浏览器的能力,划分为多个模块,每一组模块仅支持部分HTML标记。针对于特定模块开发的解析器、浏览器显然比大而全的解析器、浏览器体积要小得多。这就达到了“可小”的目的。比如说:掌上电脑屏幕本身很小,显然它浏览网页的时候不需要使用HTML中的“Frame”功能,那么针对这种设备,有它专门的一套适用的、不包含“Frame”的标记。当然,每个模块都需要有它们的专用DTD来声明可以使用哪些标记。现在W3C已经定义好了几种专用的DTD。

“可大”呢?实际上就是利用XML的特点,XML是什么?可扩展标记语言呀!以前,HTML中的标记是已经定义好了的,是不能够改变,只能拿来使用,而XHTML就可以像XML一样,能够自定义标记。

使用XHTML和使用HTML基本上一样,不过要注意的是,我们再不能偷懒了。XHTML也像XML一样,首先必须是Well-Formed。规则如下:
1. 标记必许正确结束。
2. 标记与标记之间不允许交叉嵌套。像以前的“〈i〉斜体〈b〉粗斜体〈/i〉〈/b〉”这样的语句是不行的,而必须写成“〈i〉斜体〈b〉粗斜体〈/b〉〈/i〉”才合格。
3. 空元素(开始标记与结束标记间无内容)必须按XML的规定写成〈元素名/〉。
4. 属性值必须用“ ”号括起来,像以前的“〈td width=100〉”的语句必须改写成“〈td width="100"〉”。
5. 属性都要赋值。以前有些标记的属性如果不赋值,它就取缺省值,在XHTML中,必须明确地给它赋值。
6. 标记名称、属性名称都用小写字母。
7. 使用正确的根元素加上Namespaces。
8. 〈head〉〈body〉不能够省略。〈title〉必须是〈head〉中出现的第一个子元素。
9.原来HTML网页中的VBScript、JavaScript、样式表区域,必须像XML的CDATA区一样包装起来,如:


〈script language="JavaScript"〉
〈![CDATA[
......
if (i 〈 3 &&&& ......
]]〉
〈/script〉 

满足了上述条件,并不表示XHTML就是最好的,而仅仅是格式正确的XHTML文件,需要正确地引用DTD,才成为真正正确的XHTML。W3C已经定义了三种XHTML的DTD供大家使用,它们分别是Strict、Transitional、Frameset。从现在开始,写HTML网页时就需要按照XHTML的规定来写,并且最好不要用font之类的标记,尽量使用CSS来表现你的HTML网页。等到XHTML、XML普及了,你就会暗笑了,因为你实现网页转换是非常容易的。


本系列讲座介绍了XML的语法、结构以及相关的一些技术。并非了解这些,就能够使用XML了。有关XML的具体开发应用现在的讨论也是非常多,如:XML用于电子商务、XML用于文档管理、XML用于数据驱动应用程序等。我们学习XML,关键就是要在以后的开发中应用它,明白了XML的基础知识,将会在应用开发中起到重要作用。

标签:xml,Xpointer,dom,xlink
0
投稿

猜你喜欢

  • 长文章自动分页类

    2008-09-10 12:11:00
  • asp修改文件和文件夹的名字的代码

    2011-04-11 11:04:00
  • Dreamweaver MX新功能试用:连续空格

    2008-01-06 21:03:00
  • 19个ASP编程基础典型代码

    2008-10-23 15:46:00
  • 搜索结果页(SERP):个性化如何影响用户行为?

    2009-07-22 21:00:00
  • ASP 自动采集实现代码

    2011-03-07 11:17:00
  • ASP 调用带参数输出的COM接口

    2011-03-17 10:59:00
  • SQL Server 总结复习 (二)

    2012-10-07 10:35:00
  • 通过MySQL内置全文检索实现中文的相关检索

    2010-06-11 13:20:00
  • mysql3升级到mysql5解决乱码心得

    2009-04-20 14:41:00
  • 下一站:HandlerSocket!

    2011-04-11 09:02:00
  • ASP中RegExp对象正则表达式语法及相关例子

    2007-08-12 17:46:00
  • 5个有趣的浏览器地址栏Javascript代码

    2008-07-21 13:04:00
  • ASP XML操作类代码

    2011-03-08 10:47:00
  • xml css htc 的综合运用

    2008-10-10 11:41:00
  • 避免使用滤镜

    2009-10-13 20:30:00
  • 页面重构应注意的repaint和reflow

    2011-03-31 17:11:00
  • ORACLE常见错误代码的分析与解决(二)

    2010-08-02 13:31:00
  • IE8"开发人员工具"使用详解

    2009-03-26 12:51:00
  • Sql Server在安装时提示挂起的解决方法

    2009-01-13 13:55:00
  • asp之家 网络编程 m.aspxhome.com