📄 0901-0200.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0071)http://162.105.170.55/ASPs/GetLearningArticleTemp.asp?section=0901-0200 -->
<HTML><HEAD><TITLE>XML中国论坛 - 初学进阶 - 9.1.2 XML数据存取机制</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<STYLE type=text/css>TABLE {
FONT-SIZE: 9pt; COLOR: black; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"
}
.pt9 {
FONT-SIZE: 9pt; COLOR: black; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"
}
.pt10 {
FONT-WEIGHT: 700; FONT-SIZE: 10pt; LINE-HEIGHT: 18pt; FONT-FAMILY: "宋体"
}
.TempOutline {
FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; COLOR: #666666; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.TempOutline1 {
FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; COLOR: #666666; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.Outline {
FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.Outline1 {
FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.Outline11 {
FONT-SIZE: 9pt; MARGIN-LEFT: 38pt; TEXT-INDENT: -50pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.passage0 {
FONT-SIZE: 9pt; MARGIN-LEFT: 15pt; TEXT-INDENT: -28pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.passage1 {
FONT-SIZE: 9pt; MARGIN-LEFT: 24pt; TEXT-INDENT: -36pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.passage11 {
FONT-SIZE: 9pt; MARGIN-LEFT: 38pt; TEXT-INDENT: -50pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
.passage111 {
FONT-SIZE: 9pt; MARGIN-LEFT: 51pt; TEXT-INDENT: -64pt; LINE-HEIGHT: 15pt; FONT-FAMILY: "宋体"; TEXT-DECORATION: none
}
</STYLE>
<META content="Microsoft FrontPage 5.0" name=GENERATOR></HEAD>
<BODY vLink=#000000 aLink=#000000 link=#000000 leftMargin=0 topMargin=0
onload=""><!-- 以下为主体内容 -->
<div align="center">
<center>
<TABLE border=0 width="100%" style="border-collapse: collapse" bordercolor="#111111" cellpadding="0" cellspacing="0">
<TBODY>
<TR vAlign=top>
<TD width=42 rowSpan=2></TD>
<TD vAlign=center width="841" >
<p align="center"><IMG height=33
src="image/title_learner.gif" width=226></TD>
<TD width=34 rowSpan=2></TD>
</TR>
<TR vAlign=top>
<TD width="841" ><!-- 正文内容 -->
<DIV class=pt10><B>9.1.2 XML数据存取机制</B></DIV>
<DIV></DIV><BR>
<DIV class=pt9>
<P>作为一种数据存储与交换的模式,长期以来文件系统占据了信息领域的大片江山,至今仍广泛采用。但是我们同时也会看到另一面。当今世界,技术发展迅猛,信息量也随之激增。的确,很难想象,面对成千上万的数据文件,如果仅仅通过文件系统来管理的话,那么无论是文件的搜索还是文件的调用,诸如此类的管理工作都将是不可能的。</P>
<P>现在,不论是什么行业,大多数关键数据都是放置于数据库中进行管理的,一来目前数据库技术已经相当成熟,二来其管理功能非常强大。以往的数据库应用,基本上都是基于C/S模式,数据底层结构一般来说都是相对固定,也就是说,开发出来的应用程序是针对具体的数据结构,其应用范畴受到一定限制,开放性较差。而XML作为一种可扩展性置标语言,其自描述性使其非常适用于不同应用间的数据交换,而且这种交换是不以预先规定一组数据结构定义为前提,因此具备很强的开放性,具有广阔的应用前景。为了使基于XML的业务数据交换成为可能,就必须实现数据库的XML数据存取,并且将XML数据同应用程序集成,进而使之同现有的业务规则相结合。</P>
<P>XML数据源多种多样,根据具体的应用,大概可分为下面三种:一种是XML纯文本文档,第二种是关系型数据库,第三种则来源于其他各种应用数据,如邮件、目录清单、商务报告等。其中,第一种来源,即XML纯文本文档是最基本的也是最为简单的,将数据存储于文件中,其最大的优点在于可以直接方便地读取,或者加以样式信息在浏览器中显示,或者通过DOM接口编程同其他应用相连。第二种数据来源是对第一种来源的扩展,其目的是便于开发各种动态应用,其优点则在于通过数据库系统对数据进行管理,然后再利用服务器端应用(如ASP、JSP、Servlet)等进行动态存取。这种方式最适合于当前最为流行的基于三层结构的应用开发。第三种数据由于来源广泛,因此需要具体情况具体对待。本小节的分析主要针对前两种数据来源进行分析。下图示意了XML的数据存取机制。</P>
<P align=center><IMG height=312
alt="TU000000-0901-0200-01.gif (4463 bytes)"
src="image/TU000000-0901-0200-01.gif" width=390></P>
<P>对于XML文档,可以通过DOM(Document Object
Model)读取XML文档中的节点,这是最基本也是最底层的XML存取技术。正如上一章所述,DOM是W3C的一种技术标准,实际上是提供一组API来存取XML数据,可以通过JavaScript、Jscript、VBScript等脚本程序来调用,也可通过C++、Java等高级语言来实现。</P>
<P>其次,通过DSO(Data Source
Object)进行XML的数据绑定可以方便地将XML节点同HTML标记捆绑,从XML文档中读取或写入数据,就象访问Microsoft
Access或Microsoft SQL
Server一样。DSO的工作方式有几种,一种是同DOM类似通过对XML节点树进行遍历来搜索节点,每次仅将节点数据同HTML的一个元素(如SPAN元素)相联;第二种同第一种的不同之处在于将节点数据同一个HTML多值元素(如TR元素)相联。</P>
<P>样式单CSS和XSL实际上通过给XML数据赋予一定的样式信息以使得其能够在浏览器中显示。CSS技术早在HTML3.2中就得以实现,其关键是将HTML中的元素同预先定义好的一组样式类相关联以达到样式化的目的,而XML同样也支持这种技术。XSL同CSS有些类似,不同之处在于它是通过定义一组样式模板将XML源节点转换成HTML文档或其他XML文档。XSL实际上也是符合XML规范的,它提供了一套完整的类似控制语言的元素和属性,最终可完成丰富多采的样式描述。</P>
<P>利用ASP在页面文档中嵌入ADO对象从数据库中提取XML数据是Microsoft对其ASP技术的一种扩展,功能非常强大。ADO取得数据后,可以调用DOM提供的API来动态生成XML文档,并进而同其他应用交换数据,或者直接在浏览器中显示。</P>
<P>最后,HTTP+SQL是Microsoft新近提出的XML数据库解决方案的核心,其基本原理是通过基于HTTP协议的URL方式直接访问SQL
SERVER数据库,并返回以XML或HTML数据格式的文档。</P>
<P>前一节我们提到的XML信息交换类型,从某种意义上讲,都和数据库息息相关。先来看一下数据发布。如果有适当的浏览器(如Microsoft
IE5.0),XML可以直接显示。但是现实情况是,大量的信息不可能都以XML文件的形式存在。在实际应用中,需要从数据库中提取信息,动态生成XML页面,然后加以样式化并发送到客户端浏览器。至于数据集成,同样也离不开数据库。企业间交换的B2B数据往往来自于数据库,比如产品目录、订单信息、用户资料等等。B2B应用在接收到XML数据后也可将其保存至数据库。最后,自动交易系统在得到不同供货商提供的商品价格、质量、服务等信息后,也可将其存入数据库,以便作为决策系统的数据来源。<BR></P></DIV>
<P></P>
<P></P></TD></TR></TBODY></TABLE>
</center>
</div>
<P></P>
<P>
<P></P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -