這篇文章主要介紹了基于XML桌面應(yīng)用的示例分析,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
創(chuàng)新互聯(lián)主營(yíng)沭陽(yáng)網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app開發(fā)定制,沭陽(yáng)h5小程序開發(fā)搭建,沭陽(yáng)網(wǎng)站營(yíng)銷推廣歡迎沭陽(yáng)等地區(qū)企業(yè)咨詢前面已經(jīng)提到,通過XSL,我們可以把相同的數(shù)據(jù)以不同的數(shù)據(jù)形式提交給終端客戶,一個(gè)XSL文件描述了數(shù)據(jù)的顯示方式,你可以把許多XSL和同一個(gè)xml文檔相連來提供不同的基于HTML的表示,這樣事實(shí)上,我們就可以建立基于XML的桌面應(yīng)用程序。基于Windows體系結(jié)構(gòu)的一個(gè)圖形表示如下所示:
采用這種方法主要有兩個(gè)優(yōu)點(diǎn),首先,你可以以平臺(tái)和語言獨(dú)立的方式來操作數(shù)據(jù),其次,不需要編程你就可以實(shí)現(xiàn)對(duì)同樣數(shù)據(jù)的不同的視圖表示。
實(shí)際上,你需要一個(gè)工具能夠把原始的數(shù)據(jù)轉(zhuǎn)化為XML格式化的形式,然后用HTML的格式表示出來。實(shí)際上在IE5.0中,你可以通過它對(duì)XSL的支持來實(shí)現(xiàn)數(shù)據(jù)的不同視圖。可以使用內(nèi)建的XSL處理器來從XML流中產(chǎn)生輸出。開發(fā)人員可以編寫不同的XSL劇本,然后用IE內(nèi)建的XSL處理器對(duì)它進(jìn)行處理。另一方面,我們可以通過ADO組件的內(nèi)在功能實(shí)現(xiàn)把記錄集轉(zhuǎn)化為XML格式,示例代碼如下:
If Dir(XML_FILE) = "" Then rs.Save XML_FILE, adPersistXML End If 這里常量adPersistXML表示使用一個(gè)XML綱要來保存記錄集的內(nèi)容 我們?cè)僮屑?xì)看一下Recordset對(duì)象的Save方法,其定義如下: Save([FileName As String], [PersistFormat As PersistFormatEnum = adPersistADTG])
每一個(gè)參數(shù)都是可選的,但是當(dāng)你第一次把記錄集保存到磁盤上的時(shí)候,你必須指定文件的名稱。如果當(dāng)該方法執(zhí)行的時(shí)候,存在一個(gè)有效的過濾器的話,只有通過過濾的數(shù)據(jù)才能夠被保存。當(dāng)調(diào)用Recordset對(duì)象的方法Close關(guān)閉Recordset對(duì)象的時(shí)候,文件也被自動(dòng)關(guān)閉。當(dāng)Recordset被保存到磁盤上以后,你可以采用Open方法來閱讀它,具體代碼如下:
rs.open "c:\myrs.xml"
然后我們分析一下關(guān)于XML數(shù)據(jù)的顯示的問題,IE5對(duì)XSL的支持是基于W3C最近的草案標(biāo)準(zhǔn)建立的。這里我們討論用VB建立一個(gè)應(yīng)用,它通過ADO接口來訪問數(shù)據(jù)源中的數(shù)據(jù)。得到的記錄集可以以不同的格式化的形式展現(xiàn)。通過編寫XSL文檔,你可以任意的增加不同的視圖。
比如,一旦你提取了一個(gè)結(jié)果集以后,你可以在VB中用DataGrid控件方便的顯示數(shù)據(jù),具體代碼如下:
Set rs = New ADODB.Recordset rs.CursorLocation = adUseClient queryString = "select * from Employees" rs.Open queryString, "NorthWind" 'NorthWind是微軟的示例數(shù)據(jù)庫(kù),很容易在 'access或者是SQL SERVER中找到 rs.ActiveConnection = Nothing Set DataGrid1.DataSource = rs
在許多情況下,這個(gè)的一個(gè)視圖是不夠的,你需要對(duì)每個(gè)字段進(jìn)行嚴(yán)格的控制。整個(gè)表中的記錄可能既用表格又用樹的形式表示,提供多個(gè)視圖會(huì)讓用戶感到更加舒服。 XML和XSL相結(jié)合是這種問題的很好的解決方案,你可以充分利用IE5中的WebBrowser控件的功能直接進(jìn)行瀏覽。
ADO組件本身不對(duì)它產(chǎn)生的XML文檔生成任何的XSL文檔。單這并不表示你不能自己編寫一個(gè)通用的XSL文檔來改變數(shù)據(jù)的顯示方式。比如為了自動(dòng)的把一個(gè)包含ADO記錄集的XML文檔以表格的形式顯示的話,需要在XML的文檔頭部增加如下的代碼:
<?xml-stylesheet type="text/xsl" href="simple.xsl"?>
這個(gè)simple.xsl文件必須放在和XML文檔相同的目錄下,它包含兩個(gè)嵌套的循環(huán),第一個(gè)循環(huán)枚舉了元素的所有屬性,這些屬性的名字作為標(biāo)題顯示在第一行,第二個(gè)循環(huán)用來輸出記錄集中的所有記錄。
simple.xsl文件的代碼如下所表示:
<?xml version="1.0"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl" xmlns:html="http://www.w3.org/TR/REC-html40" result-ns="" language="JScript"> <xsl:template match="/"> <html> <head> <title>RowsetSchema</title> <style> .stdText { font-Family:verdana; font-Size: 9px; } </style> </head> <body> <table width="100%" border="1"> <xsl:for-each select="xml/s:Schema/s:ElementType/s:attribute"> <th class="stdText"><xsl:value-of select="@type" /></th> </xsl:for-each> <xsl:for-each select="xml/rs:data/z:row"> <tr> <xsl:for-each select="@*"> <td class="stdText" valign="top"><xsl:value-of match="@*"/></td> </xsl:for-each> </tr> </xsl:for-each> </table> </body> </html> </xsl:template> </xsl:stylesheet>
這里需要注意的是關(guān)于列舉一個(gè)給定節(jié)點(diǎn)的所有屬性的語法,實(shí)際上我們需要得到任何<z:row>元素的所有屬性,字符串@*表示所有的屬性(一個(gè)屬性的名字總是需要在前面加上@,為了使用這個(gè)值,<xsl:value-of>節(jié)點(diǎn)必須設(shè)置和它匹配的屬性,用@*進(jìn)行表示。
通過使用WebBrowser控件作為你瀏覽數(shù)據(jù)的引擎,你可以使用XML和XSL把內(nèi)容從表示層中分離出去。在這種模型中,XSL的作用是作為一個(gè)標(biāo)記語言(而不是編程語言)來描述如何顯示XML數(shù)據(jù),為了增加一個(gè)新的視圖,只需要增加一個(gè)對(duì)應(yīng)的XSL文檔就可以了。事實(shí)上這種基于Web的文檔/視模型可以和MFC下的文檔/視模型進(jìn)行類比。
最后我們需要在講一下,XSL和CSS有什么不同呢?關(guān)鍵的不同是XSL是應(yīng)用在整個(gè)XML文檔的,而CSS只對(duì)HTML標(biāo)簽的顯示形式產(chǎn)生影響。XSL是一個(gè)處理文件的標(biāo)記語言,而CSS是一個(gè)屬性集合用來表示標(biāo)記語言中一個(gè)元素的屬性。而且,XSL在從XML數(shù)據(jù)流中產(chǎn)生HTML輸出的時(shí)候,能夠使用CSS,從當(dāng)前的角度看,它們是兩種不同的技術(shù)。
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“基于XML桌面應(yīng)用的示例分析”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!
分享文章:基于XML桌面應(yīng)用的示例分析-創(chuàng)新互聯(lián)
標(biāo)題路徑:http://vcdvsql.cn/article32/hossc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊(cè)、用戶體驗(yàn)、品牌網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、面包屑導(dǎo)航、關(guān)鍵詞優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容