?? 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 + -