<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      XQuery 學習筆記(三)回到定義(上)

      上一次我們學習了XQuery中FLOWER表達式的基礎知識,了解了下FLOWER的組成與變化情況,后續的篇章會繼續對FLOWER展開討論。本次主要學習XML相關的定義與擴展知識,包括XQuery的設計、XQuery與XML相關標準的關系以及XQuery的處理模型。搞清楚XQuery、XPath、XSL、XSLT等究竟扮演了何種角色。

      示例代碼下載

      本系列所有示例代碼均在Altova XMLSpy 2010 Enterprise Edition中調試通過。

       

      一、XQuery的設計

      1999年W3C開始設計XQuery,XQuery起初使用"Quilt"的XML查詢語言作為起點,而"Quilt"又受到更早的兩種XML查詢語言影響:XQL和XML-QL。

      XQuery的設計目標:

      1. 對于高度結構化和半結構的文件都有效。
      2. 與協議無關,跨平臺。
      3. 說明性語言而非過程化語言。
      4. 是強類型的,允許被"編譯"。
      5. 允許跨文件查詢。
      6. 盡可能多的共享W3C的推薦標準。

       

      二、XQuery與其他標準的關系

      1、XQuery與XPath

      XPath是一種專門從XML中查詢元素或屬性的語言,它逐層遍歷XML文件并過濾掉不需要的內容。XPath目前有兩個版本:XPath 1.0 和 XPath 2.0,XPath 1.0提供了基本的但很使用的路徑查詢語法,而XPath 2.0提供了很多內置函數,包括了多種表達式,不僅僅是路徑表達式。

      XPath本質上是XQuery的一個子集,他們擁有相同的數據模型、相同的內置函數集和運算符,但是XQuery的功能更加強大,提供了其他新特性,如FLOWER表達式和XML構造器。

      2、XQuery與XSLT

      XSLT負責把XML轉換為其他任何需要的格式 ,XQuery與XSLT在功能上有很多重合的地方,XSLT目前也有兩種版本:XSLT 1.0 和 XSLT 2.0。XSLT 2.0是基于 XPath 2.0的,所以XSLT與 XQuery有相同的數據模型,支持相同的內置函數,并且有許多一樣的表達式。

      XQuery與XSLT的主要區別:

      1. XSLT針對整個文件的格式轉換操作做了優化,將文件全部寫入內存。而XQuery針對數據片段選擇進行優化,只將片段寫入內存,XQuery被設計成可伸縮的并可以利用數據庫的特性(如索引)進行優化。
      2. XQuery的語法更易于閱讀。
      3. XQuery適合于操作文件集合,而XSLT沒有針對多文件操作做出優化。

      3、XQuery與SQL

      XQuery是XML的SQL,針對XML數據進行了優化,而SQL是標準的關系數據庫的查詢語句,主要針對結構化數據。但是現如今,這兩者的界限正變得愈來愈模糊,主流關系數據庫均提供了XQuery的實現,能夠利用SQL語句來操作XML;而XML數據庫的出現,也使得小型項目的實施變得更加容易。

      4、XQuery與XML Schema

      XML Schema是用來取代DTD來對XML文檔進行驗證的一種標準,對于維護文檔的正確性、結構化非常的重要。XQuery可以利用XML Schema來優化查詢,避免無謂的數據類型轉換,同時XQuery也提供了部分的數據驗證功能。

       

      三、處理查詢

      1、可以被XQuery處理的對象

      1)文本文件形式的XML

      2)使用URI從網絡路徑獲取的XML片段。

      3)存儲在XML數據庫中的數據。

      4)存儲在數據庫中的XML數據。

      5)內存中的XML數據。

      2、XQuery查詢

      XQuery查詢由兩部分組成:查詢頭部和查詢主體。

      查詢頭部包括以分號分隔的聲明、命名空間、外部schema、變量、函數等其他內容。

      查詢主體包括以逗號分隔的一個或多個表達式。

      3-1 XQueryDemo.xq

      xquery version "1.0";(:聲明XQuery的版本號:)

      declare boundary-space preserve;(:保持邊界空白,直譯,我也不清楚具體指什么邊界,望達人指教一下:)

      declare namespace prod = "http://www.google.com";(:聲明一個命名空間:)

      declare variable $users := doc("../XML/Users.xml")/Users;

       

      <count>{count($users/User)}</count>,

      <prod:FirstUser>{$users/User[@id = "1"]}</prod:FirstUser>

      查詢結果:

      <count>3</count><prod:FirstUser xmlns:prod="http://www.google.com"><User id="1"><Name>Tom</Name><Age>12</Age></User></prod:FirstUser>

       

      3、上下文

      不能無緣無故的去計算查詢,必須要給出一個查詢上下文,由外部程序或查詢頭部給出。

      查詢上下文包含的值有:

      1. 當前日期和時間,隱含的時區;
      2. 在查詢外部活在查詢頭部中定義的變量;
      3. 外部函數庫。

      4、查詢處理器

      對XQuery進行解析、分析和計算的軟件,類似于編譯器。就像SQL有很多不同廠商的實現:SQL Server(T-SQL)、Oracle(PL-SQL)…,XQuery同樣有很多實現,如SAXON、Zorba、Pathfinder、xbird等。

      5、查詢結果

      XQuery的查詢結果可以寫入到文件、序列化,或者傳遞給一個程序做二次處理

       

      小結:

          本次學習主要回顧了XML相關技術的特點及其相互關系,為了在合適的場合使用合適的技術做鋪墊。下次將學習XQuery的數據模型,深入理解樹形結構這一經典的數據結構。

       

      posted @ 2010-02-09 21:47  江蘇瑞步科技  閱讀(2021)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 26uuu另类亚洲欧美日本| 色猫咪av在线观看| 在线观看中文字幕国产码| 亚洲男人的天堂久久香蕉| 巨熟乳波霸若妻在线播放| 文中字幕一区二区三区视频播放| 久99久热免费视频播放| 88国产精品视频一区二区三区| 激情亚洲内射一区二区三区| 国产一级av在线播放| 亚洲精品色一区二区三区| 亚洲精品一区二区美女| 加勒比无码人妻东京热| 福利视频在线一区二区| 久久久久国产精品人妻| 国产69精品久久久久久妇女迅雷| 国产午精品午夜福利757视频播放| 亚洲国产成人久久综合区| 色成年激情久久综合国产| 亚洲人妻一区二区精品| 日韩午夜福利视频在线观看| 新婚少妇无套内谢国语播放| 九九热视频在线精品18| 精品中文人妻中文字幕| 亚洲AV旡码高清在线观看| 欧美国产成人久久精品| 国内永久福利在线视频图片| 高潮videossex潮喷| 日本边吃奶边摸边做在线视频| 国语精品国内自产视频| 99久久夜色精品国产亚洲| 中文无码av一区二区三区| 欧洲一区二区中文字幕| 国内精品免费久久久久电影院97| 99久久久国产精品免费蜜臀| 加勒比无码人妻东京热| 日韩精品成人一区二区三区| 热久久这里只有精品99| 日韩精品区一区二区三vr| 亚洲精品免费一二三区| 最新国产AV最新国产在钱|