选择显示字体大小

xml技术系列讲座之xml与html的结合(上)


作者: 北京邮电大学 张剑
1、xml的局限性
目前,许多web网站的内容数据都存放在数据库或数据文件中。对于web程序开发人员来说,如果要想把有用的信息从数据库中提取出来,传统的方法是在服务器端编写脚本程序(如vbscriptjavascriptcgiaspperl等等),通过对数据库执行sql查询得到相关记录,然后把查询结果组织成html页面返回给客户端,用户使用浏览器观察最终结果。
为了提高系统服务的灵活性、可扩展性,使服务对象范围更广,许多商业网站都尽可能地把商务规则、原始数据和表现形式当做相互独立的服务分别提供。html那种蕴数据于显示之中的方式显然不合乎这种需求。因此,把原始数据存放在xml文档中,使用样式单文件显示内容是xml技术适合于电子商务的优势所在。但从本质上来说,xsl技术不是面向数据显示的,它是一种格式转换技术,在显示手段和方式上都远不及html那样丰富。对编程人员来说,一种较为理想的方案是把htmlxml两种技术相结合,优势互补,使真正的原始数据在能够保持本来意义和结构的同时,还能充分利用html那千变万化的显示技巧。xml数据岛就是这种技术融合的产物,它使用 标签把xml数据直接嵌入到html页面中,从而实现了二者的优势互补。
2、ie中数据岛的处理方式
为了能够处理这种内嵌xml代码的html页面,inte.net explorer 4.0(以下简称ie 4.0)引入了dso(data source objects,数据源对象)技术,用java applet实现。
例如:

上述例子中,code属性指明了dso java小程序,mayscript属性保证用户端脚本能够处理数据对象,param标签指明了xml文档的位置。
使用java的局限性在于只能在html文档中说明xml的url地址,而不能直接将xml标签嵌入其中,这就和真正的数据岛方案还有一定的差距。微软在inte.net explorer 5.0(以下简称ie 5.0)中对dso技术进行了扩展,突破了以往的限制,使htmlxml真正地融合到了一起。html页面中支持直接使用 标签。
例如:
some xml……

只要保证每个数据岛的id都是唯一的,就可以在页面中的任何必要的地方嵌入数据岛,并且这些dso彼此都是相互独立的。
除了上面例子中的这种直接嵌入方式,还可以使用外部引用方式链接数据岛。
例如:

这样,只有当公司的客户对象继续使用ie 4.0,并且为了解决这部分客户的兼容性问题时,java applet才是编程人员要考虑的选择方案。
在ie 5.0所实现的dso技术中,如果数据是通过sql语言对数据库进行查询得到的结果,那么就把它们存放在ado(activex data objects)记录集中。服务器把这种activex控件(通常是ado记录集)发送到客户端,由客户端脚本程序做进一步的处理。实际上,ie 5.0就是把xml数据岛作为一种特殊的ado记录集进行处理的。
3、xml的数据绑定
(1)ado记录集的映射
xml中的每一条主元素都被映射为ado记录集中的一条记录,而子元素则相应地被映射到记录集中的字段(也称为域)。
例如,存在xml数据岛books.xml如下:

straight talk about computers
72-80088-005

gourmet microwave
72-80081-082

此时,映射后的ado记录集为:
title isbn
straight talk about computers 72-80088-005
gourmet microwave 72-80081-082

(2)与html元素的绑定
html文档中嵌入数据岛之后,就可以将xml数据岛与html元素绑定在一起。每一个dso条目(即数据岛)都有唯一的id号。首先将html元素中的datasrc属性设置为相应的id,就可以把html元素和数据岛联系在一起。然后再通过设置datafld属性值,来确定所提取的xml元素。
例如,与div元素绑定的代码如下:


注意:并非所有的html元素都能与xml数据岛绑定。目前,支持这种dso绑定机制的元素如下:
a、applet、button、div、frame、iframe、 img、input (此处类型是:checkbox、hidden、 label、password、radio和text)、label、 marquee、select、span、table和 textarea。
(3)以表格方式显式xml数据
若把xml数据与table元素绑定在一起,就可以自动地显示为多行的表格形式。
例如,xml数据与table元素绑定的代码如下:

tittle isbn   


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons