| | | 基于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 下一页 | | | 感谢
访问天极网,如果您觉得该文章涉及版权问题,请看这里!
|
|