亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

基于XML的桌面應用

2019-11-18 20:02:10
字體:
來源:轉載
供稿:網友
  前面已經提到,通過XSL,我們可以把相同的數據以不同的數據形式提交給終端客戶,一個XSL文件描述了數據的顯示方式,你可以把許多XSL和同一個xml文檔相連來提供不同的基于HTML的表示,這樣事實上,我們就可以建立基于XML的桌面應用程序?;赪indows體系結構的一個圖形表示如下所示:



  采用這種方法主要有兩個優點,首先,你可以以平臺和語言獨立的方式來操作數據,其次,不需要編程你就可以實現對同樣數據的不同的視圖表示。

  實際上,你需要一個工具能夠把原始的數據轉化為XML格式化的形式,然后用HTML的格式表示出來。實際上在IE5.0中,你可以通過它對XSL的支持來實現數據的不同視圖??梢允褂脙冉ǖ腦SL處理器來從XML流中產生輸出。開發人員可以編寫不同的XSL劇本,然后用IE內建的XSL處理器對它進行處理。另一方面,我們可以通過ADO組件的內在功能實現把記錄集轉化為XML格式,示例代碼如下:

  If Dir(XML_FILE) = "" Then
    rs.Save XML_FILE, adPersistXML
  End If

  這里常量adPersistXML表示使用一個XML綱要來保存記錄集的內容

  我們再仔細看一下Recordset對象的Save方法,其定義如下:

   Save([FileName As String], [PersistFormat As PersistFormatEnum = adPersistADTG])

  每一個參數都是可選的,但是當你第一次把記錄集保存到磁盤上的時候,你必須指定文件的名稱。如果當該方法執行的時候,存在一個有效的過濾器的話,只有通過過濾的數據才能夠被保存。當調用Recordset對象的方法Close關閉Recordset對象的時候,文件也被自動關閉。當Recordset被保存到磁盤上以后,你可以采用Open方法來閱讀它,具體代碼如下:

   rs.open "c:/myrs.xml"

  然后我們分析一下關于XML數據的顯示的問題,IE5對XSL的支持是基于W3C最近的草案標準建立的。這里我們討論用VB建立一個應用,它通過ADO接口來訪問數據源中的數據。得到的記錄集可以以不同的格式化的形式展現。通過編寫XSL文檔,你可以任意的增加不同的視圖。

  比如,一旦你提取了一個結果集以后,你可以在VB中用DataGrid控件方便的顯示數據,具體代碼如下:

   Set rs = New ADODB.Recordset
   rs.CursorLocation = adUseClient

   queryString = "select * from Employees"
   rs.Open queryString, "NorthWind" 'NorthWind是微軟的示例數據庫,很容易在
    'access或者是SQL SERVER中找到
   rs.ActiveConnection = Nothing
   Set DataGrid1.DataSource = rs

  在許多情況下,這個的一個視圖是不夠的,你需要對每個字段進行嚴格的控制。整個表中的記錄可能既用表格又用樹的形式表示,提供多個視圖會讓用戶感到更加舒服。 XML和XSL相結合是這種問題的很好的解決方案,你可以充分利用IE5中的WebBrowser控件的功能直接進行瀏覽。
  ADO組件本身不對它產生的XML文檔生成任何的XSL文檔。單這并不表示你不能自己編寫一個通用的XSL文檔來改變數據的顯示方式。比如為了自動的把一個包含ADO記錄集的XML文檔以表格的形式顯示的話,需要在XML的文檔頭部增加如下的代碼:

  <?xml-stylesheet type="text/xsl" href="simple.xsl"?>

  這個simple.xsl文件必須放在和XML文檔相同的目錄下,它包含兩個嵌套的循環,第一個循環枚舉了元素的所有屬性,這些屬性的名字作為標題顯示在第一行,第二個循環用來輸出記錄集中的所有記錄。

  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="JScr ?。紉sl:template match="/">
  <html>
 ?。糷ead>
 ?。紅itle>RowsetSchema</title>
 ?。約tyle>
   .stdText
   {
    font-Family:verdana;
    font-Size: 9px;
   }
  </style>
 ?。?head>
 ?。糱ody>
  ?。紅able width="100%" border="1">
   <xsl:for-each select="xml/s:Schema/s:ElementType/s:attribute">
   ?。紅h class="stdText"><xsl:value-of select="@type" /></th>
    </xsl:for-each>
   ?。紉sl:for-each select="xml/rs:data/z:row">
    <tr>
    ?。紉sl:for-each select="@*">
    ?。紅d class="stdText" valign="top"><xsl:value-of match="@*"/></td>
     </xsl:for-each>
   ?。?tr>
   ?。?xsl:for-each>
  ?。?table>
  </body>
 ?。?html>
  </xsl:template>
 ?。?xsl:stylesheet>

  這里需要注意的是關于列舉一個給定節點的所有屬性的語法,實際上我們需要得到任何<z:row>元素的所有屬性,字符串@*表示所有的屬性(一個屬性的名字總是需要在前面加上@,為了使用這個值,<xsl:value-of>節點必須設置和它匹配的屬性,用@*進行表示。

  通過使用WebBrowser控件作為你瀏覽數據的引擎,你可以使用XML和XSL把內容從表示層中分離出去。在這種模型中,XSL的作用是作為一個標記語言(而不是編程語言)來描述如何顯示XML數據,為了增加一個新的視圖,只需要增加一個對應的XSL文檔就可以了。事實上這種基于Web的文檔/視模型可以和MFC下的文檔/視模型進行類比。

   最后我們需要在講一下,XSL和
CSS有什么不同呢?關鍵的不同是XSL是應用在整個XML文檔的,而CSS只對HTML標簽的顯示形式產生影響。XSL是一個處理文件的標記語言,而CSS是一個屬性集合用來表示標記語言中一個元素的屬性。而且,XSL在從XML數據流中產生HTML輸出的時候,能夠使用CSS,從當前的角度看,它們是兩種不同的技術。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
激情懂色av一区av二区av| 国产不卡视频在线| 一本一道久久a久久精品逆3p| 成人黄色短视频在线观看| 亚洲第一色中文字幕| 日韩在线观看免费全| 欧美贵妇videos办公室| 91精品国产一区| 亚洲视频欧洲视频| 亚洲精品wwwww| 国产美女直播视频一区| 成人精品久久一区二区三区| 欧美一级片在线播放| 97婷婷涩涩精品一区| 欧美日韩中文在线| 中文字幕免费国产精品| 日本中文字幕成人| 久久国产视频网站| 国产三级精品网站| 久久婷婷国产麻豆91天堂| 91网站在线免费观看| 日韩精品极品视频免费观看| 亚洲自拍另类欧美丝袜| 欧美日韩在线视频一区二区| 亚洲美女av黄| 国产精品专区h在线观看| 久久久久国产精品免费网站| 最近2019年日本中文免费字幕| 亚洲美女又黄又爽在线观看| 欧美成年人在线观看| 久久香蕉国产线看观看av| 成人亲热视频网站| 亚洲一二三在线| 欧美在线观看一区二区三区| 91色琪琪电影亚洲精品久久| 久久国产精品免费视频| 亚洲一区二区三区xxx视频| 国产91在线播放| 日韩精品在线电影| 欧美精品一区二区三区国产精品| 成人免费视频网址| 久久综合88中文色鬼| 亚洲国产日韩欧美在线动漫| 亚洲一区二区三区四区在线播放| 亚洲第一网中文字幕| 国产精品久久久久99| 91精品国产高清久久久久久| 92版电视剧仙鹤神针在线观看| 欧美日韩国产综合新一区| 日韩**中文字幕毛片| 欧美最顶级丰满的aⅴ艳星| 亚洲免费视频观看| 国产欧美日韩中文| …久久精品99久久香蕉国产| 日韩在线欧美在线国产在线| 成人性教育视频在线观看| 欧美大奶子在线| 亚洲天堂av在线免费观看| 日韩久久午夜影院| 久久国产精品偷| 久久成人这里只有精品| 亚洲综合中文字幕68页| 欧美激情第一页xxx| 9.1国产丝袜在线观看| 国产日韩综合一区二区性色av| 亚洲电影成人av99爱色| 国产精品视频免费观看www| 538国产精品一区二区在线| 亚洲精品电影久久久| 91情侣偷在线精品国产| 最近中文字幕日韩精品| 一级做a爰片久久毛片美女图片| 欧美电影免费观看电视剧大全| 国产精品久久久| 国产丝袜精品第一页| 日韩精品免费视频| 中文字幕国产精品久久| 久久精品国产清自在天天线| 亚洲一区二区三区视频播放| 免费不卡在线观看av| 欧美老少做受xxxx高潮| 欧美性猛交xxxx乱大交3| 国产精品视频资源| 成人国内精品久久久久一区| 国产亚洲一级高清| 日韩欧美在线视频观看| 久久久久久久91| 97avcom| 国产精品欧美一区二区三区奶水| 最新69国产成人精品视频免费| 欧美日韩国产中文字幕| 97色在线观看| 日韩欧美在线视频免费观看| 亚洲自拍偷拍在线| 国产精品日韩在线一区| 欧美最猛性xxxxx免费| 国产精品都在这里| 久久久久久久一| 精品国产自在精品国产浪潮| 久久人人看视频| 久久艳片www.17c.com| 日韩欧美在线国产| 久久精品久久久久电影| 国语对白做受69| 亚洲精品久久久久| 国产丝袜视频一区| 国产精品久久不能| 亚洲aⅴ男人的天堂在线观看| 91免费在线视频网站| 97国产成人精品视频| 欧美性猛交xxxx久久久| 成人福利视频网| 国产成人精品久久亚洲高清不卡| 日韩av在线免费看| 国产一区二区三区丝袜| 亚洲电影中文字幕| 欧洲成人性视频| 久久国产精品偷| 不卡在线观看电视剧完整版| 成人h猎奇视频网站| 久久综合久久美利坚合众国| 国产一区二区三区精品久久久| 亚洲影院在线看| 欧美主播福利视频| 日韩在线观看免费高清完整版| 国产97人人超碰caoprom| 96精品久久久久中文字幕| 亚洲美女自拍视频| 亚洲欧美在线磁力| 国产不卡一区二区在线播放| 久久国产精品亚洲| 国产精品成熟老女人| 韩国精品美女www爽爽爽视频| 久久久电影免费观看完整版| 亚洲免费视频网站| 亚洲国产福利在线| 亚洲欧美日韩国产成人| 欧美精品18videos性欧美| 91国自产精品中文字幕亚洲| 综合网中文字幕| 中文字幕亚洲一区二区三区五十路| 中文在线资源观看视频网站免费不卡| 色偷偷88888欧美精品久久久| 国产精品视频公开费视频| 欧美性极品少妇精品网站| 国产精品久久97| 日韩欧美国产黄色| 亚洲电影天堂av| 亚洲男人天堂九九视频| 91免费综合在线| 亚洲欧美日韩国产中文| 欧美日韩成人在线视频| 国产亚洲欧美日韩美女| 精品亚洲永久免费精品| 日韩精品视频免费专区在线播放| 97视频在线观看免费高清完整版在线观看| 国产精品偷伦视频免费观看国产| 国产精品一区二区av影院萌芽| 色婷婷**av毛片一区| 亚洲精品美女在线观看播放| 日韩欧美精品中文字幕| 疯狂蹂躏欧美一区二区精品| 国产日韩欧美综合| 欧美激情网站在线观看|