您现在的位置是: 软件 > 开发者网络 > 技术跟踪 > XML与.NET专栏 > 正文


-Win xp中的多种网络
-试验试验试验试验
-用Freehand实现位图矢量化
-网络电话面面观

基于XML的数据库总体分析
2001-05-10· ·胡朝晖··yesky

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


  为了存储或提取数据,你可以使用数据库和中间件,或者你可以使用XML服务器,或者是基于XML的Web服务器。为了存储文档,你需要一个内容管理系统或者是可持久化的DOM实现。可以在数据库或者是XML文档中发现大量基于数据为中心的文档。这样我们就需要工具把数据从数据库转化成XML文档,或者把一个XML文档转换到数据库中。同时需要注意的是,当把数据存储到数据库中的时候,需要抛弃一个文档的很多信息,比如它的名称和DTD,它的物理结构,比如实体定义和使用,一个节点下元素的位置排列,二进制数据的存储方式等等。同样,当从数据库中提取数据的时候,产生的XML文档通常不包含CDATA或者是实体使用的说明,而且节点下元素的排列位置只和数据库中记录的顺序位置一致。实际上一个XML文档存储到数据库中,再由该数据库生成此XML文档,这前后两个文档格式几乎不可能完全一样。

  为了在数据库和XML文档之间传递数据,必须在文档结构和数据库结构之间建立映射,这种映射可以有两个分类:模板驱动和模型驱动。

  1.基于模板驱动的映射:需要在一个模板中嵌入命令,并用数据传输中间件进行处理。比如,考虑下面的模板:

  <?xml version="1.0"?>
  <FlightInfo>
  <Intro>The following flights have available seats:</Intro>
  <SelectStmt>SELECT Airline, FltNumber, Depart, Arrive FROM Flights</SelectStmt>
  <Conclude>We hope one of these meets your needs</Conclude>
  </FlightInfo>

  注意其中嵌入了一个SELECT语句。当用数据传输中间件进行处理的时候,每一个SELECT语句都会被它的结果所代替,用XML格式化形式表现为:

  <?xml version="1.0"?>
  <FlightInfo>
  <Intro>The following flights have available seats:</Intro>
  <Flights>
  <Row>
  <Airline>ACME</Airline>
  <FltNumber>123</FltNumber>
  <Depart>Dec 12, 1998 13:43</Depart>
  <Arrive>Dec 13, 1998 01:21</Arrive>
  </Row>
  ...
  </Flights>
  <Conclude>We hope one of these meets your needs</Conclude>
  </FlightInfo>

  基于模板驱动的映射可以是相当灵活的,比如,一些产品允许你把结果集放到XML文档的任何位置,同时可以对SELECT语句设置参数,并且可以使用for循环语句和if条件语句等。值得注意的是,当前基于模板驱动的映射只能应用于在关系数据库和XML文档之间传递数据。

   基于模型驱动的映射:也就是说把数据从数据库传送到XML文档是用一个具体的模型实现的,这样,XSL可以被结合到基于模型映射的产品上。在XML文档中,两种模型是很常见的:表格模型(table model)和数据专用对象模型(data-specific object model)。

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

■ 相关内容
 学习使用XML引擎XQEngine
 神奇的XML--突破CGI权限的约束
 用XSL.ASP编辑XML文档
 证券和银行之间转帐系统的设计和实现
 基于XML的桌面应用
 浏览器对XML的支持分析
 电子商务应用体系结构分析
感谢 访问天极网,如果您觉得该文章涉及版权问题,请看这里!