• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    XML与HTML的结合(上)

    北京邮电大学 张剑

     

    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.class”

    ID=“xmldso” WIDTH=0 HEIGHT=0 MAYSCRIPT=TRUE>

    PARAM NAME=“URL” VALUE=“myXML.xml”>

    /APPLET>

    上述例子中,CODE属性指明了DSO Java小程序,MAYSCRIPT属性保证用户端脚本能够处理数据对象,PARAM标签指明了XML文档的位置。

    使用Java的局限性在于只能在HTML文档中说明XML的URL地址,而不能直接将XML标签嵌入其中,这就和真正的数据岛方案还有一定的差距。微软在Internet Explorer 5.0(以下简称IE 5.0)中对DSO技术进行了扩展,突破了以往的限制,使HTML和XML真正地融合到了一起。HTML页面中支持直接使用XML>标签。

    例如:

    HTML>

    XML ID=“xmldso”>

    ?xml version=“1.0”?>

    some XML……

    /XML>

    只要保证每个数据岛的ID都是唯一的,就可以在页面中的任何必要的地方嵌入数据岛,并且这些DSO彼此都是相互独立的。

    除了上面例子中的这种直接嵌入方式,还可以使用外部引用方式链接数据岛。

    例如:

    XML ID=“xmldso” SRC=“myXML.xml”>

    /XML>

    这样,只有当公司的客户对象继续使用IE 4.0,并且为了解决这部分客户的兼容性问题时,Java Applet才是编程人员要考虑的选择方案。

    在IE 5.0所实现的DSO技术中,如果数据是通过SQL语言对数据库进行查询得到的结果,那么就把它们存放在ADO(ActiveX Data Objects)记录集中。服务器把这种ActiveX控件(通常是ADO记录集)发送到客户端,由客户端脚本程序做进一步的处理。实际上,IE 5.0就是把XML数据岛作为一种特殊的ADO记录集进行处理的。

    XML的数据绑定

    1.ADO记录集的映射

    XML中的每一条主元素都被映射为ADO记录集中的一条记录,而子元素则相应地被映射到记录集中的字段(也称为域)。

    例如,存在XML数据岛books.xml如下:

    XML ID=“xmldso”>

    ?xml version=“1.0”?>

    booklist>

    book>

    title>Straight Talk About Computers/title>

    isbn>72-80088-005/isbn>

    /book>

    book>

    title> Gourmet Microwave /title>

    isbn>72-80081-082/isbn>

    /book>

    /booklist>

    /XML>

    此时,映射后的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元素绑定的代码如下:

    DIV ID=title DATASRC=#xmldso DATAFLD=“title”>/DIV>

    DIV ID=price DATASRC=#xmldso DATAFLD=“isbn”>/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元素绑定的代码如下:

    TABLE BORDER=1 DATASRC=“#xmldso”>

    THEAD>

    TR>TH>Title/TH>

    TH>ISBN/TH>/TR>

    /THEAD>

    TBODY>

    TR>TD>DIV DATAFLD=“title”>/DIV>/TD>

    TD>DIV DATAFLD=“isbn”>

    /DIV>/TD>/TR>

    /TBODY>

    /TABLE>

    这样,通过将TABLE元素中的DATASRC属性设定为#xmldso,把两者绑定起来。表格内部分为表头(THEAD)和表体(TBODY)两部分。每一个book>元素都会显示为一行表格,具体每一栏显示哪一项数据,则由DIV元素中的DATAFLD属性指定。

    上一篇:XML轻松学习手册(四):XML语法
    下一篇:XML与HTML的结合(下)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    XML与HTML的结合(上) XML,与,HTML,的,结合,上,XML,