【编程开发】AspAsp.NetCGIPHPJspXMLPERLC++C#VCVBDelphiPowerBuilderJAVA汇编数据库编程移动开发其它语言

您现在的位置:首页 > 网络学院 > 编程开发 > XML > 电子商务应用体系结构分析

电子商务应用体系结构分析

来源: 作者: 日期:2006-08-11

【聚杰网XML】电子商务应用体系结构分析



  当我们已经完成关于文档标准的定义以后,你接下来的工作就是处理你的文档,我们在前面已经提到过有两个解析XML文档的技术,DOM和SAX。同时可以用XSL对文档进行装饰,当然采用XSL的话,你需要考虑模式和模板问题。模式定义了你的XML文档需要处理的元素,模板实际上是一段代码用来决定如何在XML文档中选择XML元素。比如,你可以编写一个XSL文档来获取XML文档中所有的客户资料,然后再通过一系列的模板来决定显示格式(比如以表格或者树或者文字形式显示客户信息)。

  我们可以采用XSL把XML从一种形式转化成另一种形式,这样即使合作伙伴采用的XML文档格式不一样的话,也可以采用XSL来进行转化。同时,利用XSL,我们可以把XML文档转化成HTML格式,这样,用户的浏览器只要支持HTML显示的话,就可以看到相关内容。

  当然,XML文档需要被解析器(DOM)进行处理,并生成一系列的对象。一旦一个XML文档被表达成一系列的对象以后,你就可以把文档当成是一个对象的集合,然后你就可以方便的从文档中提取元素和属性,重新创建新的XML文档。实际上如果你使用微软的MSXML解析器的话,你就可以在XSL剧本中使用DOM解析器。

  同时我们可以看到,我们放到XML中的数据都是从关系数据库中提取的,在理想的情况下,我们最好是对数据库能发出一条SQL命令,然后数据库给我们返回一个用XML表示的文档,然后你就可以直接把这个文档发送给你的合作伙伴,而合作伙伴收到该XML文档以后,可以把它直接倒入到数据库中,并更新数据库记录。如果这种理想情况不能达到的话,我们可以用一个XML解析器来处理XML文档,然后用XSL进行转化,把它变成另外一种形式发送给系统中的其他组件。当前许多数据库都提供了用XML格式来表示结果,这样你就很容易把数据结合到以XML为基础的应用中去,实际上Oracle8i和微软的SQL SERVER 2000都支持XML。

  另外一种从数据库中产生XML文档的方法是使用ADO对象,ADO允许你把记录结果集转化为XML文档的形式。事实上,如果你使用ADO2.5的话,你可以在内存中操作XML数据,比如,我们的应用程序使用ADO来产生XML文档,并把它作为发送给其他合作伙伴的XML文档的一部分。由ADO产生的XML文档包含了从我们数据库中提取的数据,因为我们的文档是以元素为基础的,所以可以使用XSL把XML文档转化成我们所需要的格式。

  在数据的定义、准备、交换和传输都搞定以后,我们需要集中来考虑如何显示XML的问题。实际上,合理的显示结果数据是应用程序的一个重要部分。因为我们的应用是基于Internet的,我们希望我们的应用能够完全基于浏览器进行工作,一般有三种方法来显示XML数据。

  1 发送一个XML文档到客户端,让客户端从事数据的提取和显示工作,这样这种Web客户端就必须支持对XML的解析。

  2 发送XML文档到客户端的同时,也发送一个XSL文档可以让客户端知道XML文档显示的格式。

  3 在服务器端进行数据的转化,发送一个标准的HTML文档到客户端

  前两个方法的好处是我们把任务交给客户端去处理,这样就降低了服务器的负荷,而且可以允许客户端对数据进行排序和筛选,主要的缺点就是要求客户端要支持XML。如果考虑程序的通用性,我们一般选择第三种方法。这种XML到HTML的转化可以在ASP中进行,也可以在JSP中实现。我们也可以使用CSS来显示XML,但是这样做有一些缺陷,比如不能使用CSS来显示属性值,最好的办法是用XSL把XML文档转化成HTML文档,然后使用CSS来精确调治HTML的显示。这样你就可以同时用到CSS和XSL的优点。具体的XSL的代码如下:

  <?xml version="1.0" encoding="GB2312" ?>
  <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
  <xsl:template match="/">
  <html>
  <head>
  <title>产品列表</title>
  </head>
  <body>
  <p><font size="10">产品列表</font></p>
  <hr />
  <xsl:apply-templates select="/图书集合" />
  </body>
  </html>

  </xsl:template>

  <xsl:template match="图书集合">
  <table width="90%" border="1">
  <thead>
  <td>标题</td>
  <td>作者</td>
  <td>价格</td>
  </thead>
  <xsl:for-each select="书" order-by="标题">
  <tr>
  <td><xsl:value-of select="标题" /></td>
  <td><xsl:value-of select="作者" /></td>
  <td><xsl:value-of select="价格" /></td>
  </tr>
  </xsl:for-each>
  </table>
  </xsl:template>
  </xsl:stylesheet>

  采用XSL以后的显示结果如下:


1 2 4

上一页 1 2 3 4 5 6 下一页

评论   点击查看全部评论
您的评论参与,将为聚杰带来更大的动力!请不要吝啬!
快速回复
请使用文明语言让我们维护健康绿色网络环境!

匿名发表   验证码: