用XML和ASP實(shí)現(xiàn)分布式信息查詢系統(tǒng)_第1頁
用XML和ASP實(shí)現(xiàn)分布式信息查詢系統(tǒng)_第2頁
用XML和ASP實(shí)現(xiàn)分布式信息查詢系統(tǒng)_第3頁
用XML和ASP實(shí)現(xiàn)分布式信息查詢系統(tǒng)_第4頁
用XML和ASP實(shí)現(xiàn)分布式信息查詢系統(tǒng)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、用XML和ASP實(shí)現(xiàn)分布式信息查詢系統(tǒng)信息中心 臧 磊摘 要:隨著江蘇省電力信息系統(tǒng)的發(fā)展,各種數(shù)據(jù)也在不斷地積累和豐富,對(duì)信息的查詢和分析變得越來越重要。但是由于數(shù)據(jù)分布在異地異種服務(wù)器上,想獲得這些數(shù)據(jù)變得十分困難?,F(xiàn)有的信息查詢手段已經(jīng)不能適應(yīng)當(dāng)前的需要,如何方便、快捷地獲取信息已經(jīng)成為了一個(gè)急待解決的問題。近年來,隨著XML技術(shù)的出現(xiàn)和發(fā)展,為解決以上的問題,提供了一種良好的途徑。本文提出了一種基于XML和ASP技術(shù)的分布式信息查詢系統(tǒng)的框架,并用實(shí)例詳細(xì)分析了該系統(tǒng)的實(shí)現(xiàn)方法。關(guān)鍵詞:XML;ASP;信息查詢;0 引言隨著江蘇省電力信息系統(tǒng)的發(fā)展,各種數(shù)據(jù)也在不斷地積累和豐富,對(duì)信息

2、的查詢和分析變得越來越重要。但是由于數(shù)據(jù)分布在異地異種服務(wù)器上,想獲得這些數(shù)據(jù)變得十分困難。目前,為解決該問題,通常采用的方法有兩種:數(shù)據(jù)集中式查詢和基于數(shù)據(jù)庫的分布式查詢。數(shù)據(jù)集中式查詢是指下級(jí)單位定時(shí)地將本地?cái)?shù)據(jù)通過專用的上報(bào)程序發(fā)送到上級(jí)中心數(shù)據(jù)庫中。然后所有的查詢數(shù)據(jù)都從這個(gè)中心數(shù)據(jù)服務(wù)器中獲取。這種方法的缺點(diǎn)是明顯的,上級(jí)數(shù)據(jù)庫只能被動(dòng)的接受數(shù)據(jù),無法實(shí)時(shí)地進(jìn)行信息查詢,且對(duì)中心服務(wù)器的要求較高。另一種方式是基于數(shù)據(jù)庫的分布式查詢,指的是查詢程序主動(dòng)到多個(gè)遠(yuǎn)程數(shù)據(jù)庫中獲取數(shù)據(jù)。這種方式的優(yōu)點(diǎn)是可以隨時(shí)地對(duì)分布數(shù)據(jù)進(jìn)行查詢,但是這種方式也有其局限性。一是所有的查詢?nèi)蝿?wù)都由一臺(tái)服務(wù)器完成

3、,這將加重服務(wù)器的負(fù)荷,且服務(wù)器端的程序開發(fā)也顯得復(fù)雜;二是不利于異種環(huán)境數(shù)據(jù)的收集。由于種種原因,有些應(yīng)用是由不同的部門完成的,因此在設(shè)計(jì)思想、數(shù)據(jù)庫結(jié)構(gòu)以及數(shù)據(jù)庫系統(tǒng)的選用上都有著較大的區(qū)別。顯然傳統(tǒng)的方式對(duì)于解決這種情況將非常麻煩;三是這種方式一般需要在遠(yuǎn)程數(shù)據(jù)庫中設(shè)立一個(gè)用戶身份,而且有時(shí)為了方便,往往都要采用同一個(gè)用戶名和密碼,顯然這對(duì)系統(tǒng)的安全造成了一定的威脅。從上面的分析可以看出,現(xiàn)有的信息查詢手段已經(jīng)不能適應(yīng)當(dāng)前的需要,如何方便、快捷地獲取信息已經(jīng)成為了一個(gè)急待解決的問題。近年來,隨著XML技術(shù)的出現(xiàn)和發(fā)展,為解決以上的問題,提供了一種良好的途徑。1 相關(guān)技術(shù)概述1.1 XML

4、及相關(guān)技術(shù)XML是eXtensible Markup Language(可擴(kuò)展的標(biāo)記語言)的縮寫,是W3C組織于1998年2月發(fā)布的標(biāo)準(zhǔn)。W3C組織制定XML標(biāo)準(zhǔn)的初衷是,定義一種互聯(lián)網(wǎng)上交換數(shù)據(jù)的標(biāo)準(zhǔn)。W3C采取了簡(jiǎn)化SGML的策略,在SGML基礎(chǔ)上,去掉語法定義部分,適當(dāng)簡(jiǎn)化DTD部分,并增加了部分互聯(lián)網(wǎng)的特殊成分。因此,XML也是一種標(biāo)記語言,基本上是SGML的一個(gè)子集。因?yàn)閄ML也有DTD,所以XML也可以作為派生其它標(biāo)記語言的元語言。XML文檔需要有嚴(yán)格的格式,而且更好的是,我們可以通過文檔類型定義(DTD)來對(duì)XML的內(nèi)容格式做嚴(yán)格的規(guī)定。這樣的好處是在一個(gè)特定的領(lǐng)域中,我們可以定

5、義一種統(tǒng)一的數(shù)據(jù)交換格式,不同的企業(yè)之間可以用這種統(tǒng)一的格式進(jìn)行數(shù)據(jù)和信息的交互而不管它們使用的是什么操作系統(tǒng)和數(shù)據(jù)庫。從以上的描述可以看出,XML具有標(biāo)準(zhǔn)化、平臺(tái)無關(guān)、格式良好等優(yōu)點(diǎn),而這些優(yōu)點(diǎn)正是信息收集和交換所必須具備的基本條件。1.2 ASP簡(jiǎn)介ASP(Active Server Pages)是微軟建立的一種“服務(wù)器端腳本編寫”環(huán)境,可用于創(chuàng)建和運(yùn)行動(dòng)態(tài)的交互式 Web 服務(wù)器應(yīng)用程序。它實(shí)際上是一種腳本語言,可以用VBScript,JavaScript,Jscript來實(shí)現(xiàn)。使用 ASP,可以合并 HTML 頁、腳本命令以及 COM 組件創(chuàng)建交互式 Web 頁和功能強(qiáng)大的 Web 應(yīng)

6、用程序。ASP最大的優(yōu)點(diǎn)在于它和微軟的COM技術(shù)的結(jié)合,使用各種各樣的com組件,ASP可以完成無比強(qiáng)大的功能。例如我們使用FileSystemObject,可以對(duì)服務(wù)器上的文件進(jìn)行操作,瀏覽、復(fù)制、移動(dòng)、刪除等等。有ADO(Active Database Object,動(dòng)態(tài)數(shù)據(jù)庫對(duì)象)的支持,ASP對(duì)數(shù)據(jù)庫的操作非常得心應(yīng)手。你甚至可以像使用本地?cái)?shù)據(jù)庫那樣,管理遠(yuǎn)程主機(jī)上的數(shù)據(jù)庫,對(duì)表格、記錄進(jìn)行各種操作。2 實(shí)現(xiàn)方案2.1系統(tǒng)總體框架描述基于XML技術(shù)的查詢系統(tǒng)采用了多層結(jié)構(gòu),包括用戶服務(wù)層、業(yè)務(wù)邏輯層和數(shù)據(jù)服務(wù)層,如圖1所示。主業(yè)務(wù)用戶接口數(shù)據(jù)訪問業(yè)務(wù)邏輯層用戶服務(wù)數(shù)據(jù)服務(wù)圖1 三層服務(wù)

7、模型用戶服務(wù)層 提供應(yīng)用程序界面,保證用戶界面的一致性、完整性和友好性,通常采用的是瀏覽器界面。業(yè)務(wù)邏輯層 提供所有業(yè)務(wù)規(guī)則的實(shí)現(xiàn)。業(yè)務(wù)邏輯層處于用戶服務(wù)層和數(shù)據(jù)服務(wù)層之間,它接收用戶的請(qǐng)求,對(duì)用戶的請(qǐng)求進(jìn)行分析,根據(jù)業(yè)務(wù)邏輯的需要從數(shù)據(jù)庫服務(wù)層提取數(shù)據(jù)并對(duì)數(shù)據(jù)進(jìn)行過濾、整理和匯總,在格式化以后,發(fā)送給用戶服務(wù)層。業(yè)務(wù)邏輯層也可以采用多層結(jié)構(gòu),根據(jù)各個(gè)業(yè)務(wù)邏輯層間所屬關(guān)系及數(shù)據(jù)的傳遞形式,將一個(gè)具體的業(yè)務(wù)處理細(xì)化為幾個(gè)步驟的調(diào)用,每一個(gè)步驟都隸屬于業(yè)務(wù)邏輯層的某一個(gè)層次。如可以劃分為用戶接口層、主業(yè)務(wù)層、數(shù)據(jù)訪問層等。數(shù)據(jù)服務(wù)層 提供業(yè)務(wù)所需的數(shù)據(jù),通常情況下是數(shù)據(jù)庫系統(tǒng),也可以是其他形式,如

8、XML文檔、音頻、視頻等。為了描述基于XML和ASP的信息收集方案的框架結(jié)構(gòu),我們通過構(gòu)造一個(gè)簡(jiǎn)單的例子來說明,該網(wǎng)站的基本功能是實(shí)時(shí)地查詢基層各單位的變電設(shè)備缺陷情況。其過程描述如下:用戶通過瀏覽器訪問市公司網(wǎng)站(中心服務(wù)器),網(wǎng)站顯示一個(gè)查詢表單的界面,提示用戶輸入搜索條件,然后用戶提交搜索表單,將查詢條件(如缺陷性質(zhì),時(shí)間范圍等)傳遞給中心服務(wù)器;搜索程序根據(jù)它所保存的縣公司服務(wù)器地址,把用戶的請(qǐng)求發(fā)送給每個(gè)縣公司網(wǎng)站(子服務(wù)器);每一個(gè)子服務(wù)器查詢程序根據(jù)用戶提供的參數(shù)來查詢本地?cái)?shù)據(jù)庫,然后把結(jié)果以XML的形式發(fā)送回中心服務(wù)器。中心服務(wù)器對(duì)這些結(jié)果進(jìn)行分析、整理,返回給用戶,并以網(wǎng)頁的

9、形式展現(xiàn)各用戶,過程如圖2所示。圖2 基于XML的缺陷查詢體系結(jié)構(gòu)的系統(tǒng)流程圖2.2 信息傳遞格式我們?cè)谛畔鬟f中采用的是XML格式,當(dāng)然這個(gè)XML文檔并不是任何格式都可以的,為了能夠準(zhǔn)確的對(duì)數(shù)據(jù)進(jìn)行匯總和處理,我們需要定義XML文檔的DTD格式,所有的輸出的XML文檔必須遵守這個(gè)格式。DTD通常和數(shù)據(jù)庫結(jié)構(gòu)有著密切聯(lián)系,因此我們除了可以手工生成DTD外,也可以利用一些工具根據(jù)數(shù)據(jù)庫結(jié)構(gòu)來自動(dòng)生產(chǎn)DTD,如XMLSPY等。以缺陷查詢系統(tǒng)為例,查詢條件(數(shù)據(jù)請(qǐng)求)的DTD格式定義為:<?xml version="1.0" encoding="gb2312&qu

10、ot;?><!ELEMENT cxtj ( qxxz,sj)><!ELEMENT qxxz (#PCDATA)><!ELEMENT sj (#PCDATA)>查詢結(jié)果(數(shù)據(jù)返回)的DTD格式定義為:<?xml version="1.0" encoding="gb2312"?><!ELEMENT 缺陷記錄集合 ( 缺陷記錄* )><!ELEMENT 缺陷記錄 ( 發(fā)現(xiàn)時(shí)間,設(shè)備編號(hào),設(shè)備名稱,缺陷內(nèi)容,缺陷性質(zhì),發(fā)現(xiàn)人,匯報(bào)日期,接收人,消缺時(shí)間,消缺工作負(fù)責(zé)人,備注)><

11、!ATTLIST 缺陷記錄 單位代碼 CDATA #REQUIRED 變電所代碼 CDATA #REQUIRED 缺陷編號(hào) CDATA #REQUIRED><!ELEMENT 發(fā)現(xiàn)時(shí)間 (#PCDATA)><!ELEMENT 設(shè)備編號(hào) (#PCDATA)><!ELEMENT 消缺工作負(fù)責(zé)人 (#PCDATA)><!ELEMENT 備注 (#PCDATA)>2.3 用戶服務(wù)層用戶服務(wù)層主要有兩個(gè)作用:一個(gè)是和用戶進(jìn)行交互,比如用戶輸入相關(guān)的要查詢的信息等,另外一個(gè)目的就是顯示結(jié)果信息,比如顯示根據(jù)用戶的查詢參數(shù)返回的結(jié)果。為了方便用戶進(jìn)行查詢

12、,我們需要建立一個(gè)網(wǎng)頁讓用戶輸入需要查詢的信息。比如在本例中,這里我們考慮的是一個(gè)關(guān)于查詢變電缺陷的應(yīng)用。所以我們需要的查詢參數(shù)主要是和變電缺陷有關(guān)的參數(shù):比如:缺陷性質(zhì)、缺陷發(fā)現(xiàn)時(shí)間、發(fā)生缺陷的設(shè)備、消缺時(shí)間等等。這個(gè)網(wǎng)頁可以用標(biāo)準(zhǔn)的HTML語言制作,并可以用CSS來對(duì)其顯示形式進(jìn)行打扮,一般來說該用戶端的Web頁面并不需要使用任何腳本,但是也可以增加腳本進(jìn)行一些基礎(chǔ)的數(shù)據(jù)的合法性判斷,比如判斷用戶在需要輸入時(shí)間的文本框中是否按合法的格式輸入數(shù)據(jù)等等。這個(gè)網(wǎng)頁除了用來收集用戶查詢條件外,另一個(gè)重要的作用是把用戶的條件提交給中心服務(wù)器,采用的是如下的方式:form method=”post”

13、action="中心服務(wù)器網(wǎng)頁.asp"<select size="1" name="qxxz"> <option value="一類缺陷">一類缺陷</option></select><select size="1" name="sj"><option value="2001">2001</option></select>年 <input type=&q

14、uot;submit" name="B1" value=" 查 詢" size="2"></form>在用戶按下提交按鈕以后,相關(guān)的參數(shù)就會(huì)傳遞給"中心服務(wù)器網(wǎng)頁.asp"這個(gè)網(wǎng)頁。然后該網(wǎng)頁就對(duì)該查詢字符串進(jìn)行分析,當(dāng)然這就是屬于業(yè)務(wù)邏輯層的工作了。用戶服務(wù)層的另外一個(gè)目的就是將查詢結(jié)果返回給用戶,并以某種形式顯示出來,在這里我們采用了XSL的方式。相關(guān)的細(xì)節(jié),我們稍后再詳細(xì)論述。 2.4 業(yè)務(wù)邏輯層業(yè)務(wù)邏輯層是系統(tǒng)最重要、最復(fù)雜、也最核心的部分。用戶服務(wù)層的工作實(shí)際上可以理解為是界面

15、的設(shè)計(jì)和表示,更多的是考慮用戶界面友好的問題。而業(yè)務(wù)邏輯層則是應(yīng)用系統(tǒng)核心、每一種應(yīng)用的最大的區(qū)別嚴(yán)格的說也就是在業(yè)務(wù)邏輯層上。業(yè)務(wù)邏輯層即可以用COM或者JAVA語言來實(shí)現(xiàn),但是實(shí)際上,我們也可以采用ASP來實(shí)現(xiàn)復(fù)雜的業(yè)務(wù)邏輯。在本例中我們就采用了ASP。在我們這個(gè)示例框架系統(tǒng)中,業(yè)務(wù)邏輯層由被劃分為用戶接口層、主業(yè)務(wù)層和數(shù)據(jù)訪問層三個(gè)層次,我們將逐一加以描述。2.4.1 用戶接口層用戶接口層的作用就是從用戶處提取關(guān)于用戶想要的和缺陷相關(guān)參數(shù),對(duì)請(qǐng)求數(shù)據(jù)進(jìn)行分析,然后把請(qǐng)求給它所有已知的子服務(wù)器,從子服務(wù)器處獲得數(shù)據(jù)并進(jìn)行整合,然后對(duì)結(jié)果進(jìn)行格式化并返回給用戶。不同的服務(wù)器可以采用不同的方法

16、來和自己的數(shù)據(jù)庫進(jìn)行交互,也就是說,用戶接口層只負(fù)責(zé)把參數(shù)和參數(shù)值傳遞給各個(gè)相關(guān)的頁面,該頁面如何進(jìn)行處理,用戶接口層并不關(guān)心,但是它要求子服務(wù)器返回的結(jié)果必須符合XML的DTD定義。在本例中,該層位于中心服務(wù)器上。具體的操作流程如下:首先,我們需要提取用戶傳遞的參數(shù)的值,在ASP中,可以通過Request組件來提取。然后,我們依據(jù)這些參數(shù),生成一個(gè)XML格式的請(qǐng)求信息,并發(fā)送到不同的子服務(wù)器,所以這里問題的關(guān)鍵是要構(gòu)造符合DTD定義的XML文檔。子服務(wù)器的URL列表保存在一個(gè)文件中,可以使用FileSystem服務(wù)組件讀取。然后我們將該字符串用HTTP POST方法發(fā)送給列表中的服務(wù)器,并將

17、返回的結(jié)果發(fā)送給用戶。該部分的代碼如下:<% postdata=postdata&"<cxtj>"postdata=postdata&"<qxxz>"&request(“qxxz”)&"</qxxz>"postdata=postdata&"<sj>"&request(“sj”)&"</sj>"postdata=postdata&"</cxtj>&

18、quot;Set xmlHttp = Server.CreateObject("msxml2.XMLHTTP")set objVendorFileSystem=server.createObject("Scripting.FileSystemObject")set objVendorFile=objVendorFileSystem.OpenTextFile(server.mappath("qx.txt")response.write "<缺陷記錄集合>"strURL = objVendorFile.Re

19、adLine()do while (not objVendorFile.AtEndOfStream)xmlhttp.Open "POST", strURL, falsexmlhttp.setRequestHeader "Content-Length",Len(postdata)xmlhttp.setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"xmlhttp.Send postdata response.write bytes2bst

20、r(xmlhttp.responsebody) strURL = objVendorFile.ReadLine()loopresponse.write "</缺陷記錄集合>"%></缺陷查詢結(jié)果>其中,XMLHTTP是一個(gè)ASP組件,它可以使用Http協(xié)議來傳輸信息。在這里我們利用它在服務(wù)器之間進(jìn)行通信,傳遞查詢參數(shù)和返回查詢結(jié)果。文件“qx.txt”保存的是子服務(wù)器的URL列表,內(nèi)容形式如下所示:http:/WebServer1/CreateXML1.asphttp:/WebServer2/CreateXML2.asphttp:/WebSer

21、ver3/CreateXML3.asp“CreateXML*.asp”是表示某個(gè)服務(wù)器處理用戶請(qǐng)求的文件。不同的應(yīng)用可能有自己不同的對(duì)用戶請(qǐng)求的處理方式和自己不同的數(shù)據(jù)庫結(jié)構(gòu)和從數(shù)據(jù)庫中提取記錄的方法。2.4.2 主業(yè)務(wù)層主業(yè)務(wù)層是業(yè)務(wù)邏輯層的核心,它實(shí)現(xiàn)主要規(guī)則和邏輯。在本例中,主業(yè)務(wù)層的作用就是根據(jù)用戶的XML信息解析查詢條件,然后查詢生產(chǎn)系統(tǒng)數(shù)據(jù)庫,提取出符合條件的缺陷記錄,并根據(jù)缺陷的DTD定義以XML的形式返回結(jié)果。對(duì)不同的數(shù)據(jù)庫系統(tǒng)可能有不同的形式,可以有不同的實(shí)現(xiàn)方法。在這里,我們使用ASP來實(shí)現(xiàn),該部分代碼如下:<% /利用DOM對(duì)XML文檔進(jìn)行分析set xmldoc

22、= Server.CreateObject("Microsoft.XMLDOM")xmldoc.async=falsexmldoc.load request qxxz=xmlDoc.getElementsByTagName("qxxz").item(0).textsj=xmlDoc.getElementsByTagName("sj").item(0).textset conn=Server.CreateObject("ADODB.Connection")conn.open "DATABASE=scgdb;

23、dsn=scgdb;"set rs=server.CreateObject("adodb.recordset")sql=" select * from userid.sb_quexian where qxxz='"qxxz&"' and year(fxsj)="&sjrs.open sql,conn,1,1do while not rs.eof response.write "<缺陷記錄 單位代碼="""&trim(rs("dwd

24、m")&""" 變電所代碼="""&trim(rs("bdsdm")&""" 缺陷編號(hào)="""&rs("qxbh")&""">"response.write "<發(fā)現(xiàn)時(shí)間>"&rs("fxsj")&"</發(fā)現(xiàn)時(shí)間>"response.write

25、 "<設(shè)備編號(hào)>"&rs("wybm")&"</設(shè)備編號(hào)>"response.write "<設(shè)備名稱>I"&trim(rs("sbmc")&"</設(shè)備名稱>"response.write "<消缺工作負(fù)責(zé)人>"&trim(rs("xqgzfzr")&"</消缺工作負(fù)責(zé)人>"response.wri

26、te "<備注>"&trim(rs("bz")&"</備注>"response.write "</缺陷記錄>"rs.movenextlooprs.closeset rs=nothing%> 在這里我們使用了微軟的解析器來解析XML文檔。我們知道,在安裝了IE 5.0以后的版本后,系統(tǒng)就自動(dòng)安裝了XML解析器,它實(shí)際上是一個(gè)dll文件,名稱為MSXML.DLL。該解析器提供了兩種解析方法,一種是通過文檔對(duì)象模型(DOM)進(jìn)行XML文檔的解析,另外就是通過Sim

27、ple API for XML(SAX)的方法進(jìn)行文檔的解析,這里我們采用的是DOM的方法進(jìn)行文檔的解析。利用DOM,開發(fā)人員可以動(dòng)態(tài)地創(chuàng)建XML文檔,遍歷結(jié)構(gòu),添加、修改、刪除內(nèi)容等等。在本例中,我們利用DOM來獲取信息查詢的參數(shù),如發(fā)現(xiàn)時(shí)間、缺陷性質(zhì)等。2.4.3 數(shù)據(jù)訪問層 數(shù)據(jù)訪問層專門負(fù)責(zé)于數(shù)據(jù)服務(wù)器層打交道,在這里我們使用的是ADO。首先,我們可以用connection對(duì)象建立與數(shù)據(jù)庫的連接,然后,我們可以Recordset對(duì)象返回符合條件的記錄集,相關(guān)代碼見上。 2.5 數(shù)據(jù)服務(wù)層 數(shù)據(jù)服務(wù)層主要是用來存儲(chǔ)和管理數(shù)據(jù),一般是關(guān)系型數(shù)據(jù)庫系統(tǒng),如DB2、Oracle、SQL Ser

28、ver等。2.6 查詢結(jié)果的表現(xiàn)形式 前面我們預(yù)留了一個(gè)問題,就是查詢結(jié)果的表現(xiàn)形式問題。在業(yè)務(wù)邏輯層收集好XML數(shù)據(jù),在將結(jié)果到發(fā)送客戶端前,我們需要確定結(jié)果的表示形式。事實(shí)上,我們可以通過幾種方法呈現(xiàn)給用戶。首先,它可以使用平常的文本來顯示XML,在IE瀏覽器顯示為樹狀目錄。由于該種方法不夠直觀,一般不采用。另一種選擇就是先在服務(wù)器端把XML轉(zhuǎn)換成HTML,然后再把轉(zhuǎn)換后生成的HTML返回到用戶處,該種方法對(duì)服務(wù)器的要求較高。最后一種方式是使用XSL或CSS來格式化XML文檔,其中XSL功能更強(qiáng)大,也更靈活。XML文檔和XSL文檔被同時(shí)發(fā)送到用戶的計(jì)算機(jī)上,由瀏覽器使用XSL來決定XML文檔的表現(xiàn)形式。該種方法對(duì)服務(wù)器要求不高,且可以充分利用客戶端的計(jì)算能力,因此我們采用了這種方式。如以下的代碼就是將查詢結(jié)果以表格的形式顯示在瀏覽器中: <?xml version="1.0" encoding="gb2312"?><xsl:stylesheet xmlns:xsl="/TR/WD-xsl"><xsl:template match="/"> <xsl:apply-templates select="缺陷記錄集合

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論