XML的局限性
目前,许多Web网站的内容数据都存放在数据库或数据文件中。对于Web程序开发人员来说,如果要想把有用的信息从数据库中提取出来,传统的方法是在服务器端编写脚本程序(如VBScript、JavaScript、CGI、ASP、Perl等等),通过对数据库执行SQL查询得到相关记录,然后把查询结果组织成HTML页面返回给客户端,用户使用浏览器观察最终结果。
为了提高系统服务的灵活性、可扩展性,使服务对象范围更广,许多商业网站都尽可能地把商务规则、原始数据和表现形式当做相互独立的服务分别提供。HTML那种蕴数据于显示之中的方式显然不合乎这种需求。因此,把原始数据存放在XML文档中,使用样式单文件显示内容是XML技术适合于电子商务的优势所在。但从本质上来说,XSL技术不是面向数据显示的,它是一种格式转换技术,在显示手段和方式上都远不及HTML那样丰富。对编程人员来说,一种较为理想的方案是把HTML和XML两种技术相结合,优势互补,使真正的原始数据在能够保持本来意义和结构的同时,还能充分利用HTML那千变万化的显示技巧。XML数据岛就是这种技术融合的产物,它使用<XML>标签把XML数据直接嵌入到HTML页面中,从而实现了二者的优势互补。
IE中数据岛的处理方式
为了能够处理这种内嵌XML代码的HTML页面,Internet Explorer 4.0(以下简称IE 4.0)引入了DSO(Data Source Objects,数据源对象)技术,用Java Applet实现。
例如:
<APPLET CODE=“com.ms.xml.dso.XMLDSO. booklist.RecordSet.RecordCount
</SCRIPT>
除了显示记录数据之外,脚本程序还可以对记录集进行快速查询、排序、编辑等操作。但要指出的是,虽然ADO技术中提供了类似SortColumn和SortAscending等方法对XML数据进行排序,但是效果不如XSL中的排序操作,所以建议大家充分利用XSL技术来实现这部分功能。
其余的功能,如利用脚本对记录集进行诸如增加、删除、修改等操作,或是分页显示HTML表格等等,在这里就不一一举例说明了,用法与前面的操作大同小异。最后需要说明的是,所有对DSO对象的操作都是在用户端完成的,实际上是服务器数据对象的一份复制品,这样做的好处是避免了网络承受大量数据通信的负担。但这时用户端所做的任何操作对服务器上存储的数据毫无影响,如果要想对服务器记录也进行修改,那么就要用到客户端与服务器端的数据交换技术,我们将在以后对此进行介绍。
目前,许多Web网站的内容数据都存放在数据库或数据文件中。对于Web程序开发人员来说,如果要想把有用的信息从数据库中提取出来,传统的方法是在服务器端编写脚本程序(如VBScript、JavaScript、CGI、ASP、Perl等等),通过对数据库执行SQL查询得到相关记录,然后把查询结果组织成HTML页面返回给客户端,用户使用浏览器观察最终结果。
为了提高系统服务的灵活性、可扩展性,使服务对象范围更广,许多商业网站都尽可能地把商务规则、原始数据和表现形式当做相互独立的服务分别提供。HTML那种蕴数据于显示之中的方式显然不合乎这种需求。因此,把原始数据存放在XML文档中,使用样式单文件显示内容是XML技术适合于电子商务的优势所在。但从本质上来说,XSL技术不是面向数据显示的,它是一种格式转换技术,在显示手段和方式上都远不及HTML那样丰富。对编程人员来说,一种较为理想的方案是把HTML和XML两种技术相结合,优势互补,使真正的原始数据在能够保持本来意义和结构的同时,还能充分利用HTML那千变万化的显示技巧。XML数据岛就是这种技术融合的产物,它使用<XML>标签把XML数据直接嵌入到HTML页面中,从而实现了二者的优势互补。
IE中数据岛的处理方式
为了能够处理这种内嵌XML代码的HTML页面,Internet Explorer 4.0(以下简称IE 4.0)引入了DSO(Data Source Objects,数据源对象)技术,用Java Applet实现。
例如:
<APPLET CODE=“com.ms.xml.dso.XMLDSO. booklist.RecordSet.RecordCount
</SCRIPT>
除了显示记录数据之外,脚本程序还可以对记录集进行快速查询、排序、编辑等操作。但要指出的是,虽然ADO技术中提供了类似SortColumn和SortAscending等方法对XML数据进行排序,但是效果不如XSL中的排序操作,所以建议大家充分利用XSL技术来实现这部分功能。
其余的功能,如利用脚本对记录集进行诸如增加、删除、修改等操作,或是分页显示HTML表格等等,在这里就不一一举例说明了,用法与前面的操作大同小异。最后需要说明的是,所有对DSO对象的操作都是在用户端完成的,实际上是服务器数据对象的一份复制品,这样做的好处是避免了网络承受大量数据通信的负担。但这时用户端所做的任何操作对服务器上存储的数据毫无影响,如果要想对服务器记录也进行修改,那么就要用到客户端与服务器端的数据交换技术,我们将在以后对此进行介绍。
