999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種通用XML數(shù)據(jù)島動(dòng)態(tài)生成和數(shù)據(jù)綁定方法

2009-05-12 03:14:34張文學(xué)
現(xiàn)代電子技術(shù) 2009年2期
關(guān)鍵詞:動(dòng)態(tài)生成數(shù)據(jù)庫(kù)

摘 要:為了減少網(wǎng)頁(yè)訪問(wèn)時(shí)網(wǎng)絡(luò)的負(fù)載,采用XML數(shù)據(jù)島技術(shù)實(shí)現(xiàn)網(wǎng)頁(yè)中數(shù)據(jù)的處理。介紹XML數(shù)據(jù)島的概念,并討論Web頁(yè)中XML數(shù)據(jù)島生成和綁定的機(jī)制,給出一種使用ASP和ADO技術(shù)由數(shù)據(jù)庫(kù)動(dòng)態(tài)生成XML數(shù)據(jù)島,并動(dòng)態(tài)綁定數(shù)據(jù)的通用方法,可應(yīng)用于各種基于Web的應(yīng)用系統(tǒng),提高開(kāi)發(fā)效率。

關(guān)鍵詞:XML數(shù)據(jù)島;動(dòng)態(tài)生成;數(shù)據(jù)綁定;Web程序設(shè)計(jì);數(shù)據(jù)庫(kù)

中圖分類號(hào):TP393文獻(xiàn)標(biāo)識(shí)碼:B

文章編號(hào):1004 373X(2009)02 120 03

Universal Method of XML Data Island Dynamic Generation and Data Binding

ZHANG Wenxue

(Luoyang Institute of Science and Technology,Luoyang,471023,China)

Abstract:To reduce the network load when visiting the Web page,using XML data island technology to process XML data in Web.This article introduces the concept of XML data island,discusses the mechanism of XML data island generation and binding in Web Page,gives the universal method of XML data island generated from database with ASP and ADO,and binds XML data dynamically,applicable for various applications based on Web.It improves the efficiency of Web development.

Keywords:XML data island;dynamic generation;XML data binding;Web program design;database

0 引 言

XML(eXtensible Markup Language)語(yǔ)言是由W3C定義的一種元標(biāo)記語(yǔ)言,具有較強(qiáng)的數(shù)據(jù)表示能力,但顯示能力不如HTML。在Web頁(yè)中利用XML數(shù)據(jù)島和XML-DSO技術(shù),可以輕松實(shí)現(xiàn)XML數(shù)據(jù)的綁定,從而控制其顯示格式,并且XML數(shù)據(jù)島允許用戶在客戶端訪問(wèn)與操縱數(shù)據(jù)集,不必頻繁地與服務(wù)器交互,從而減輕數(shù)據(jù)庫(kù)服務(wù)器的負(fù)荷。XML已廣泛應(yīng)用于B/S結(jié)構(gòu)的應(yīng)用系統(tǒng),因此,如何由傳統(tǒng)的數(shù)據(jù)庫(kù)生成XML數(shù)據(jù)島及實(shí)現(xiàn)數(shù)據(jù)綁定則成為其中的關(guān)鍵技術(shù)。

1 XML數(shù)據(jù)島技術(shù)

在IE5及以后的版本里,增加了對(duì)<xml>元素的支持,利用<xml>元素可以在HTML文件內(nèi)直接嵌入XML數(shù)據(jù),也可以包含對(duì)某個(gè)外部XML文件的引用,被HTML頁(yè)面引用或包含的XML數(shù)據(jù)稱為XML數(shù)據(jù)島(Data Island)。

網(wǎng)頁(yè)中直接嵌入XML數(shù)據(jù)的格式如下:

<XML ID="xmldso">

<?xml version="1.0"?>

<students>

<student>

<number>041011200</number>

<name>zhang</name>

<sex>male</sex>

</student>

<student>

</student>

</students>

</XML>

引用外部XML文件的XML數(shù)據(jù)島格式為:

<XML ID="xmldso" SRC="students.xml"></XML>

在IE5網(wǎng)頁(yè)中,XML數(shù)據(jù)島可以被作為一個(gè)數(shù)據(jù)源對(duì)象(Data Source Object,DSO)使用。XML數(shù)據(jù)源對(duì)象(XML-DSO)是一個(gè)ActiveX控件。在Web頁(yè)面中,通過(guò)數(shù)據(jù)綁定或客戶端腳本可以對(duì)XML數(shù)據(jù)源對(duì)象的數(shù)據(jù)進(jìn)行操作。

2 XML數(shù)據(jù)生成與綁定機(jī)制

XML數(shù)據(jù)島的數(shù)據(jù)可以來(lái)源于內(nèi)嵌代碼、外部XML文件或數(shù)據(jù)庫(kù)。由于數(shù)據(jù)庫(kù)具有較好的數(shù)據(jù)管理和控制能力,適于數(shù)據(jù)的集中存儲(chǔ)和管理,而XML文件更適于數(shù)據(jù)的傳輸,因此可以通過(guò)數(shù)據(jù)對(duì)象(Activex Data Object,ADO)由數(shù)據(jù)庫(kù)動(dòng)態(tài)生成XML文件,然后引用到XML數(shù)據(jù)島中。

XML數(shù)據(jù)島技術(shù)作為一個(gè)數(shù)據(jù)源對(duì)象在客戶端創(chuàng)建了XML數(shù)據(jù)的緩存,利用數(shù)據(jù)綁定代理可以將HTML控件元素與DSO實(shí)現(xiàn)綁定,從而在Web頁(yè)中顯示和操縱XML數(shù)據(jù)。

XML數(shù)據(jù)生成與綁定機(jī)制如圖1所示。

在IE4和IE5中,許多HTML控件元素新增加了實(shí)現(xiàn)數(shù)據(jù)綁定的屬性如:DATASRC表示控件要綁定的數(shù)據(jù)源對(duì)象的ID;DATAFLD表示控件要綁定的數(shù)據(jù)記錄的字段;DATAFORMATAS表示控件要綁定的數(shù)據(jù)是文本還是HTML格式。

數(shù)據(jù)綁定代理對(duì)象提供了兩種類型的數(shù)據(jù)綁定:表格數(shù)據(jù)綁定和單記錄數(shù)據(jù)綁定。

(1) 表格數(shù)據(jù)綁定:將<table>的datasrc屬性設(shè)置為XML數(shù)據(jù)島的標(biāo)識(shí)#xmldso(前面必須加#),表格列<td>由于不能綁定數(shù)據(jù),所以需要加入<div>或<span>作為數(shù)據(jù)的容器,并將其datafld屬性設(shè)置為xml數(shù)據(jù)的相應(yīng)字段元素名。

<table id="xmltable" border=1 datasrc="#xmldso" datapagesize=4>

<thead><tr><th>學(xué)號(hào)</th><th>姓名</th><th>性別</th></tr></thead>

<tbody><tr>

<td><div datafld="number"></div></td>

<td><div datafld="name"></div></td>

<td><div datafld="sex"></div></td>

</tr></tbody>

</table>

(2) 單記錄數(shù)據(jù)綁定:許多HTML元素可以實(shí)現(xiàn)單值數(shù)據(jù)綁定,如:A,APPLET,BUTTON,DIV,F(xiàn)RAME,IFRAME,IMG,INPUT,LABEL,SELECT,SPAN等。將HTML元素(如<input>)的datasrc屬性設(shè)置為XML數(shù)據(jù)島的標(biāo)識(shí)#xmldso,datafld屬性設(shè)置為xml數(shù)據(jù)的相應(yīng)字段名。

<input type=text datasrc="#xmldso" datafld="number" width=20><br>

3 通用的XML數(shù)據(jù)島動(dòng)態(tài)生成和數(shù)據(jù)綁定方法

3.1 XML數(shù)據(jù)島動(dòng)態(tài)生成

ADO是Microsoft的一種數(shù)據(jù)訪問(wèn)接口,其對(duì)象集合中的Recordset對(duì)象存儲(chǔ)檢索到的記錄集。在ADO 2.1版中,增加了對(duì)XML格式的支持,可以使用Recordset對(duì)象的 Save方法將記錄集保存,格式如下:

Recordset.Save szdest,adPersistXML

其中:szdest可以是帶絕對(duì)路徑的文件名或Response對(duì)象;adPersistXML為常量。但是,該方法生成的XML文件帶有XML模式、每條記錄為1個(gè)元素,其格式結(jié)構(gòu)復(fù)雜,不便于數(shù)據(jù)綁定和操縱。在此給出一個(gè)XML數(shù)據(jù)結(jié)構(gòu)化良好且通用的XML數(shù)據(jù)島動(dòng)態(tài)生成方法,由服務(wù)器端的ASP程序?qū)崿F(xiàn)(程序名xmldata.asp)。

首先,設(shè)置Response對(duì)象的屬性:輸出流到客戶端、MIME類型為text/xml。

<%@ Language=VBScript %>

<%Response.Buffer=false

Response.ContentType="text/xml" %>

通過(guò)ADO從數(shù)據(jù)庫(kù)讀取數(shù)據(jù)到Recordset對(duì)象。

<%Set conn=Server.CreateObject("ADODB.connection")

Set rs=Server.CreateObject("ADODB.recordset")

conn.ConnectionString=<連接字符串>

conn.open

sqlText=<SQL語(yǔ)句>

set rs=conn.Execute(sqlText)

rs.MoveFirst

%>

分析Recordset對(duì)象,生成XML數(shù)據(jù),以Response的流形式輸出到客戶端。

<?xml version="1.0" encoding="gb2312"?>

<Months>

<%do while not rs.EOF %>

<Month>

<% for i=0 to rs.Fields.Count-1 %>

<<%=rs.Fields(i).Name %>><%=rs.Fields(i).Value %></<%=rs.Fields(i).Name %>>

<% next

rs.MoveNext %>

</Month>

<% loop %>

</Months>

關(guān)閉和撤消rs和conn對(duì)象:

<% rs.Close

set rs=nothing

conn.Close

set conn=nothing %>

以上x(chóng)mldata.asp程序的結(jié)果即是一個(gè)XML格式的文件,可被XML數(shù)據(jù)島引用。

3.2 動(dòng)態(tài)數(shù)據(jù)綁定

在Web頁(yè)中,數(shù)據(jù)島中可以如同XML文件一樣引用上面的“xmldata.asp”程序,然后使用客戶端腳本動(dòng)態(tài)地進(jìn)行表格數(shù)據(jù)綁定或單值數(shù)據(jù)綁定。以下是動(dòng)態(tài)表格綁定的代碼,單值數(shù)據(jù)綁定類似。

定義窗口載入函數(shù)腳本。首先,得到表格的表格頭行和表格體行的對(duì)象,以及數(shù)據(jù)島記錄集的引用:

<html>

<script language="vbscript">

sub window_onload()

set objtablehead=document.all("tbldata").rows(0)

set objtablebody=document.all("tbldata").rows(1)

set objxmlrs=document.all("xmldso").recordset

在表頭行中,使用表格行對(duì)象的insertcell方法(IE5的新增方法),根據(jù)數(shù)據(jù)島記錄集的字段數(shù)和字段名生成表頭行的表列:

for each objfield in objxmlrs.fields

if objfield.name<>"MYMText" then

set objheadcell=objtablehead.insertcell()

objheadcell.innerHtml=objfield.name

同上方法在表格體中生成數(shù)據(jù)列,并綁定數(shù)據(jù)島的相應(yīng)列,最后將整個(gè)表格綁定到數(shù)據(jù)島:

set objbodycell=objtablebody.insertcell()

objbodycell.innerHtml="<span datafld=′"&objfield.name;&"′></span>"

end if

next

document.all("tbldata").datasrc="#xmldso"

end sub

</script>

定義數(shù)據(jù)島(引用動(dòng)態(tài)生成XML數(shù)據(jù)的ASP程序)和表格,表格的數(shù)據(jù)綁定暫時(shí)為空,由以上腳本動(dòng)態(tài)綁定:

<body>

<xml id="xmldso" src="myxml1.asp"></xml>

<table id="tbldata" border=1>

<thead><tr></tr></thead>

<tbody><tr></tr></tbdoy>

</table>

</body></html>

4 結(jié) 語(yǔ)

服務(wù)器端專注于數(shù)據(jù)的管理和控制,XML數(shù)據(jù)用于傳輸,采用XML數(shù)據(jù)島、XML數(shù)據(jù)綁定和客戶端腳本來(lái)完成數(shù)據(jù)的顯示,這種工作方式很大程度上減少了服務(wù)器的訪問(wèn)次數(shù)和網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)量,而且數(shù)據(jù)采用XML格式表示通用性更好,在B/S系統(tǒng)中得到廣泛采用。該文的XML數(shù)據(jù)島動(dòng)態(tài)生成和數(shù)據(jù)動(dòng)態(tài)綁定方法具有通用性,解決了數(shù)據(jù)庫(kù)到XML數(shù)據(jù)的生成和顯示問(wèn)題,具有廣泛的實(shí)用性。

參考文獻(xiàn)

[1]Michael Morrison.XML揭秘入門、應(yīng)用、精通[M].北京:清華大學(xué)出版社,2001.

[2]陳建紅,徐濤.Web數(shù)據(jù)庫(kù)與XML應(yīng)用[M].北京:高等教育出版社,2004.

[3]Mark Baartse,Richard Blair.ASP與XML高級(jí)編程[M].北京:清華大學(xué)出版社,2002.

[4]孫一中.XML理論和應(yīng)用基礎(chǔ)[M].北京:北京郵電大學(xué)出版社,2000.

[5]張文學(xué).基于XML數(shù)據(jù)島的客戶端數(shù)據(jù)操作的實(shí)現(xiàn)[J].洛陽(yáng)大學(xué)學(xué)報(bào),2005,20(2):57-60.

[6]郝森,朱戰(zhàn)立.對(duì)XML文檔結(jié)構(gòu)樹(shù)形表示的研究與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù),2007,30(18):83-84,90.

[7]馮少榮.基于XML的Web數(shù)據(jù)集成技術(shù)的研究[J].計(jì)算機(jī)應(yīng)用與軟件,2005,22(7):39-41.

[8]徐雪霖.Web數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)探析[J].微計(jì)算機(jī)信息,2004(2):110-112.

[9]Xu Yu,Luo Daofeng,Meng Xiaofeng,et al.Dynamically Updating XML Data:Numbering Scheme Revisited[J].World Wide Web,2005,8(1):5-26.

[10]萬(wàn)常選.基于XML的Web數(shù)據(jù)庫(kù)技術(shù)[J].計(jì)算機(jī)與現(xiàn)代化,2002(4):49-53,57.

作者簡(jiǎn)介

張文學(xué) 男,1968年出生,碩士,副教授。從事數(shù)據(jù)庫(kù)和網(wǎng)絡(luò)技術(shù)教學(xué)和研究。

猜你喜歡
動(dòng)態(tài)生成數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
高效課堂下小學(xué)數(shù)學(xué)課堂動(dòng)態(tài)生成的研究
基于新課程理念下的語(yǔ)文教學(xué)策略探微
動(dòng)態(tài)生成,彰顯數(shù)學(xué)課堂活力
品德課堂“動(dòng)態(tài)生成”資源的運(yùn)用策略
問(wèn)渠那得清如許,為有源頭活水來(lái)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
主站蜘蛛池模板: 国产在线拍偷自揄拍精品| 午夜色综合| 夜精品a一区二区三区| 国产午夜福利片在线观看| 精品无码人妻一区二区| 在线播放精品一区二区啪视频| 无码精油按摩潮喷在线播放 | 国产在线97| 国产呦精品一区二区三区下载 | 国产视频一二三区| 国产精品妖精视频| 婷婷六月激情综合一区| 亚洲国产中文综合专区在| 在线不卡免费视频| 人妻精品全国免费视频| 四虎成人精品| 国产亚洲精品自在久久不卡| 在线不卡免费视频| 理论片一区| 四虎综合网| 亚洲熟女中文字幕男人总站| 大陆精大陆国产国语精品1024| 欧美伦理一区| 精品国产免费观看| 91色在线观看| 91丨九色丨首页在线播放| 国产手机在线ΑⅤ片无码观看| 国产理论一区| 日韩在线1| 国产三区二区| 婷婷色狠狠干| 亚洲天堂.com| 亚洲第一在线播放| 欧美精品啪啪| 91香蕉国产亚洲一二三区| 亚洲无码视频一区二区三区| 五月激情综合网| 精品无码专区亚洲| 亚洲视频免费在线看| 91小视频在线播放| 亚洲国产精品成人久久综合影院| 亚洲色图欧美在线| 91亚洲免费| 欧洲精品视频在线观看| 精品伊人久久大香线蕉网站| 亚洲av无码成人专区| 2021天堂在线亚洲精品专区 | 国产福利微拍精品一区二区| 午夜福利视频一区| 99er精品视频| 国产第八页| 永久在线精品免费视频观看| 久热这里只有精品6| 国产精品无码久久久久AV| 亚洲综合九九| 四虎精品黑人视频| 97视频免费看| 国产91视频观看| 超碰免费91| 欧美午夜在线播放| 亚洲精品午夜天堂网页| 亚洲中文字幕无码爆乳| 精品久久人人爽人人玩人人妻| 久青草网站| 色视频久久| 欧美亚洲国产精品第一页| 色噜噜狠狠色综合网图区| 天堂网亚洲系列亚洲系列| 永久免费精品视频| 狠狠五月天中文字幕| av尤物免费在线观看| 久久国产精品娇妻素人| 国产精品毛片在线直播完整版| 欧美亚洲欧美区| 日韩视频免费| 小说 亚洲 无码 精品| 久久久精品久久久久三级| 亚洲va精品中文字幕| 欧美a在线视频| 99热这里只有精品5| 十八禁美女裸体网站| 免费在线观看av|