XML文件为数据的存储和传递提供了一个很好的媒介,可以这样认为XML就是一个数据的集合,通过XML文件对象可以对数据做任何的操作。关键是怎样使用XML文件里的数据,在HTML网页中是否可以引用XML,网页中显示的数据来自XML文件,而该数据显示的格式用HTML的标记来指定。
目前,许多动态Web网站的内容数据都存放在数据库或数据文件中。如某个网站的会员信息,商品信息等。对于Web程序开发人员来说,如果要想把有用的信息从数据库中提取出来,传统的方法是在服务器端编写脚本程序(如VBScript、JavaScript、CGI、ASP、Perl、JSP等等),通过对数据库执行SQL查询得到相关记录,然后把查询结果组织成HTML页面返回给客户端,用户使用浏览器观察最终结果。为了提高系统服务的灵活性、可扩展性,使服务对象范围更广,许多商业网站都尽可能地把商务规则、原始数据和表现形式,即执行功能的代码,存放数据的数据库,显示数据的页面单独的划分出来,做成相互独立的服务。HTML那种包含数据并制定相应的显示样式,该方式显然不合乎这种需求。
因此,把从数据库提取出来的数据,即原始数据存放在XML文档中(基本不变,显示量大的公有数据),使用样式单文件(XSL)显示内容是XML技术适合于电子商务的优势所在。但从本质上来说,XSL技术不是面向数据显示的,它是一种格式转换技术,在显示手段和方式上都远不及HTML那样丰富。并且从本质来说,XSL的显示样式方式,最终还是利用了HTML模板进行显示,只不过中间多了一个转换罢了。对编程人员来说,一种较为理想的方案是把HTML和XML两种技术直接相结合起来,优势互补,使真正的原始数据在能够保持本来意义和结构的同时,还能充分利用HTML那千变万化的显示技巧。
XML数据岛就是这种技术融合的产物,它使用<XML>标签把XML数据直接嵌入到HTML页面中,从而实现了二者的优势互补。用Internet Explorer 5.0版本以上的浏览器,非正式的<XML>标记可用于创建XML数据岛。
当我们在HTML文档中通过使用XML标记来嵌入XML数据时,就在HTML文档中形成一个XML数据岛(Data Island)。数据岛是指存在于HTML页面中的XML数据。数据岛允许你在HTML页面中集成XML,对XML编写脚本,不需要通过脚本或<OBJECT>标签读取XML。几乎所有能够存在于一个结构完整的XML文档中的东西都能存在于一个数据岛中。包括处理指示、DOCTYPE声明和内部子集。这里面需要我们注意的是,XML文档中的设置编码的字符串不能放在其中。
我们可以利用XML元素来创建数据岛,数据岛就是被HTML页面引用或包含的XML数据,XML数据可以包含在HTML文件内,也可以包含在某外部文件内,利用XML数据岛可以让我们免除编写复杂脚本的麻烦。DOM可对XML文档进行解析,文档中的元素、实体、属性等所有个体都可以用对象模型表示,整个文档的逻辑结构类似一棵树,生成的对象模型就是树的节点,每个对象同时包含了方法和属性,DOM提供了许多查找节点的方法。利用DOM,开发人员可以动态地创建XML、遍历文档、增加(删除/修改)文档内容,DOM提供的API与编程语言无关,所以对一些DOM标准中没有明确定义的接口,不同解析器的实现方法可能会有所差别。
Web服务器与客户机之间的数据传递方式有三种:HTML页面、XML文档以及XML数据岛。采用数据岛作为交互手段,不仅可以使数据具备一定的语义信息,同时还能保持HTML原有的一些特色,如利用用户端脚本程序实现动态信息交换等,可以在客户端对XML里面的数据进行操作。综合了使用XML文档和HTML文档传输数据的优点。