XQuery
歡迎來到 XQuery 示例集華夏公益教科書! XQuery 是 全球資訊網聯盟 建議 用於從文件和資料庫中選擇資料。
有一個 Github 專案 用於跟蹤本書的問題,至少在 eXist db 人員之間進行協作,以便更新此資源。
當前翻新中的主要任務是
- 使示例程式碼再次可執行
- 刪除使用過時源的複雜案例研究
- 新增 XQuery 3.0 示例。
您可以在此處搜尋本書
這是一個協作專案,我們鼓勵所有使用 XQuery 的人貢獻他們的 XQuery 示例。所有示例程式必須符合知識共享 2.5 署名-相同方式共享許可協議 [1]。
示例的執行使用 eXist 演示伺服器。
- 講師:如果您正在使用此書學習或教授 XQuery,請在我們的 訪客登記冊 中籤名
- 貢獻者:請檢視我們的 命名約定,以確保您的示例與教科書一致
- 學習者:如果您正在尋找特定 XQuery 語言結構、技術或問題的示例,但找不到示例,請在 需要示例 部分新增建議。
使用 XQuery 和 XML 的常見任務
不需要函式和模組知識的示例。
- HelloWorld - 一個簡單的測試,用於檢視 XQuery 是否已正確安裝。
- FLWOR 表示式 - 關於 XQuery FLWOR 語句工作原理的基本示例。
- 序列 - 使用序列是 XQuery 的核心。
- XPath 示例 - 針對 XML 和 XPath 新手提供的 XPath 示例。
- 正則表示式 - 正則表示式可以輕鬆地解析文字。
- 搜尋多個集合 - 如何搜尋資料庫中的多個集合。
- 顯示列表 - 如何獲取 XML 結構中的值列表並返回逗號分隔的列表。
- 從 XHTML 檔案中提取資料 - 如何使用 doc() 函式從 XHTML 頁面獲取資料。
- 在 HTML 表格中顯示資料 - 如何在 HTML 表格中顯示 XML 資料。
- 限制結果集 - 如何限制 XQuery 中返回的記錄數量。
- 過濾單詞 - 如何測試單詞是否在列表中。
- 儲存和更新資料 - 如何使用單個 XQuery 儲存新記錄或更新現有記錄。
- 量化表示式 - 測試序列中的所有專案。
- 日期和時間 - 處理日期和時間值的示例表示式。
假設了解函式和模組。
- 使用 XQuery 函式 - 如何閱讀 XQuery 函式文件和使用 XQuery 函式
- 建立 XQuery 函式 - 如何建立自己的本地 XQuery 函式
- 返回最長字串 - 一個從字串列表中查詢最長字串的函式
- 淨工作日 - 如何計算兩個日期之間的工作日數量
- 標籤雲 - 統計和檢視關鍵字數量
- 字串分析 - 正則表示式字串分析
- 操作 URI - 如何獲取和管理 URI
- 解析查詢字串 - 使用備用分隔符解析查詢字串。
- 拆分檔案 - 將大型 XML 檔案拆分成多個較小的檔案。
- 填充 Portlet - 如何使用 XQuery 填充網頁區域
- 過濾節點 - 如何使用標識轉換來過濾節點和新增節點
- 限制子樹 - 您有一個資訊樹,並且您想僅在特定級別進行“修剪”
- 高階函式 - 將函式作為引數傳遞給函式
- 計時斐波那契演算法 - 一對斐波那契演算法和計時顯示
- 使用中間文件 - MusicXML 檔案分析
- 格式化數字 - 使用圖片格式格式化數字
- 上傳檔案 - 如何使用 HTML 表單上傳檔案
- TEI 索引 - 如何構建基於 TEI 的索引
- 對錶格的查詢 - 如何從表格資料中提取資料
- 名稱空間構造器 - 如何在構建文件時動態新增名稱空間
- XML 搜尋簡介 - XML 搜尋術語概述
- 基本搜尋 - 一個簡單的搜尋頁面
- 搜尋、分頁和排序 - 搜尋和檢視搜尋結果
- 關鍵詞搜尋 - 使用 Google 風格的結果進行全文搜尋
- 員工搜尋 - 一個 Ajax 示例
- Lucene 搜尋 - 使用 eXist 的基於 Lucene 的全文搜尋
- 高階搜尋 - 使用多個搜尋欄位建立複雜的搜尋
- 開放搜尋 - 建立一個 OpenSearch 檔案來描述您的搜尋頁面
- 索引配置檔案的自動生成 - 用於自動生成索引配置檔案的指令碼
使用 XQuery 在 XML 和其他表示形式之間進行轉換
- 解析 CSV - 在序列上使用 FLWOR 來解析 CSV 文字。
- 獲取 URL 引數 - 如何從 URL 獲取引數。
- 獲取 POST 資料 - 如何獲取釋出到 XQuery 的 XML 資料。
- 檢查必需引數 - 如何使用 if/then/else 檢查必需引數。
- 加法器 - 在互動中保留狀態:建立一個新增兩個數字的 Web 服務。
- 連結 Web 表單 - 使用 URL 引數、會話或 cookie 將資料從一個網頁傳遞到另一個網頁。
- 簡單的 XForms 示例
- 化學元素的增量搜尋 - AJAX
- 傳送電子郵件 - 如何從 XQuery 中傳送電子郵件。
- 使用 Graphviz 進行圖形視覺化
- Google Chart Sparkline - 使用 Google Charts API 建立 Tufte Sparkline
- Google Chart Bullet Bar - 使用 Google Charts API 建立子彈條形圖
這些示例使用 name() 對 XML 文件的結構進行反射,以實現用於 XML 轉換的通用函式。
XQuery 具有許多功能,允許您轉換 XML 並建立完整的文件風格轉換庫。與傳統的“資料庫”文件不同,複雜的 XML 文件具有“複雜內容”,其中包括以不可預測的順序排列的內聯元素。本節提供了基於使用 XQuery typeswitch 函式的這些轉換的基礎。typeswitch 函式轉換取代了 XSLT 轉換,但也可以訪問索引以非常快速地轉換大型集合。
- 轉換風格 三種轉換風格的概述
- Typeswitch 轉換 使用 typeswitch 函式進行文件風格轉換。
- 轉換習慣用法 處理轉換任務
- 生成骨架 Typeswitch 轉換模組 使用 XQuery 為基於 typeswitch 的文件轉換生成骨架模組
- Web XML 檢視器 使用 typeswitch 函式將 XML 文件轉換為 HTML
與 HTML 頁面不同,分頁式報告使用頁面之間文字流的概念。這些示例展示瞭如何將原始 XML 轉換為適合列印的高質量 PDF 檔案。這些示例使用稱為 XSL-FO 的標記標準,代表“格式化物件”。
- 安裝 XSL-FO 模組 - 更新 1.4 配置以從 Apache 網站獲取當前軟體
- 從 XSL-FO 檔案生成 PDF - 將 XML-FO 轉換為 PDF 檔案
- XSL-FO 表格 - 從 XML 檔案生成 XSL-FO 表格
- 將 HTML 表格轉換為 XSL-FO 表格 - 使用 XQuery 型別轉換變換將 HTML 表格轉換為 XSL-FO 表格
- XSL-FO 影像 - 在生成的 (PDF) 檔案中嵌入影像
- 釋出概述 - 如何將文件從內部內聯網伺服器傳輸到公共網站
- 釋出到 Subversion - 如何使用 SSL 和摘要身份驗證將文件從內部內聯網傳輸到公共 SVN 伺服器
- 比較兩個 XML 檔案 - 使用 eXist compare() 函式來測試兩個 XML 檔案是否完全相同
- XML 差異 - 顯示兩個 XML 檔案之間的差異
- 使用 XQuery 比較 - 使用 XQuery 比較列表
- 使用 XQuery 比較時間 - 使用 XQuery 比較日期項
- 同步遠端集合 - 使用 lastModified 時間戳檢視哪些專案已更改
- 查詢重複文件 - 使用雜湊函式查詢重複文件
文字編碼倡議。
- 特殊字元 - 處理換行符和其他特殊字元。
- 使用中間文件 分析 MusicXML 文件
- MusicXML 到 Arduino
- XQuery SQL 模組 - 在 XQuery 中呼叫 SQL
- 從 SQL 中獲取 XQuery - 使用 XQuery 訪問經典關係資料庫 - 員工/部門/薪資
- 列出 OWL 類 - 一個簡單的 XQuery 指令碼,將顯示 OWL 檔案中的所有 OWL 類
- 簡單的 RSS 閱讀器
- XHTML + 語音 Opera 的 Twitter 收音機
- XQuery 和 XSLT 在 XQuery 中執行 XSLT 轉換
- 基本身份驗證 - 使用 HTTP 基本身份驗證登入到遠端 Web 伺服器
- 摘要身份驗證 - 使用 HTTP 摘要身份驗證登入到遠端 Web 伺服器
- OAuth - 一種用於保護網路服務中一組使用者擁有資料的標準
- Freebase - 使用 XQuery 透過 JSON 從 Freebase 獲取資料
- Google Docs - 使用 XQuery 從 Google Docs 獲取資料
雖然 Google Charts 功能僅在您連線到網際網路時才有效,但這些示例表明 XQuery 是將 XML 資料轉換為圖表 的理想工具。
- Google Charts 使用 XML 和 XQuery 透過 REST 生成 Google Charts
- Google Chart Sparkline - 如何使用 Google Charts API 建立圖表的演示
- Google Chart Bullet Bar - 如何使用 Google Charts API 建立儀表板子彈條的演示
- 檔案大小直方圖 - 生成檔案大小直方圖的 XQuery 報告
在 XForms 教程和食譜 中還有可用於建立前端的示例 XForms
數字儀表盤是將大量資訊壓縮到單個網頁的單屏。本節將利用上一節中的許多 Google Charts 示例。
- 儀表板架構 - 如何設計具有快速響應時間的儀表盤
頁面抓取是從任何 HTML 網頁中提取格式良好的 XML 資料的過程。在建立 mashup 應用程式時,這也稱為 收穫過程。
- DBpedia 與 SPARQL - 足球隊
- DBpedia 與 SPARQL 和 Simile 時間軸 - 專輯年表 使用維基百科資料建立專輯釋出的時間軸
- DBpedia 與 SPARQL - 體育場位置
- Emp-Dept 案例研究
- 繪製三元組
- SPARQLing 國家區號
- 南安普敦酒吧
- 字母海報
- Simile 展覽 使用 Simile JavaScript 庫的瀏覽器視覺化
- 潛在語義索引 查詢文件之間的語義距離
- 內容管理系統的站點地圖 XQuery 函式可以輕鬆地執行許多常見的網站內容管理功能
- 正常執行時間監控器 使用 XQuery 監控遠端網路服務
- XQuery IDE - XQuery 整合開發環境
- 影像庫 - 使用 XQuery 預覽影像
- XML 架構到例項 - XQuery 函式,用於從 XML 架構檔案 (.xsd) 生成示例 XML 例項
- Lorem Ipsum 文字 - 生成示例文字,用於插入測試頁面佈局
- XQuery 和 XML 架構 - 生成 XML 例項文件
- 生成 XQDocs - 自動生成模組和函式的 XQuery 文件
- XqUSEme - Firefox 擴充套件,允許執行 XQuery,包括針對已載入文件(即使針對最初未格式化(格式錯誤)的 HTML)的查詢。
- 呼叫圖 - 從模組自省中生成一個呼叫圖作為 SVG 檔案
- 系統屬性 - 獲取所有標準和 Java 系統屬性及其值的列表
- 環境變數 - 獲取所有外部環境變數及其值的列表
- 生成基於 xqDoc 的 XQuery 文件 - 使用 xqDoc 註釋標準生成模組文件
- 驗證文件 - 使用 XML 架構驗證文件
- 使用目錄進行驗證 - 使用目錄檔案驗證文件
- 驗證層次結構 -
- 使用 Schematron 進行驗證 - 應用特定規則檢查文件
- 登入和登出 - 如何登入和登出使用者
- URL 驅動的授權 如何使用 URL 重寫來檢查有效使用者
- 數字簽名 - 如何使用自定義模組來使用 XML 數字簽名標準
- 更改集合和資源的許可權 - 如何更改集合和資源的許可權
- Fizzbuzz
- Project Euler
- 拓撲排序
- 幻燈片
- 數獨
- Pachube 饋送
- 世界氣溫記錄 - 將文字資料格式轉換為 XML、索引和資料呈現
- UWE 學生線上
- 資料庫工具 - 一套用於資料庫管理的資料庫工具函式
- 獲取壓縮的 XML 檔案
- 解壓縮 Office Open XML docx 檔案 - 解壓縮和儲存 docx 檔案
用於與任何 git 版本控制系統互動的模組
此模組同時使用 FTP、SFTP(使用 SSH 協議)並使用標準化和一致的格式。
此模組允許您與遠端系統上的遠端 FTP 伺服器互動。它包括用於列出、獲取和放置檔案的函式。
- 執行外部程序 - 從 XQuery 中執行 shell 命令
- 序列模組 - 三個額外的函式(map、fold 和 filter)
- 基本會話管理 - 會話管理的基礎知識,包括獲取設定會話變數
- Subversion - 如何使用 subversion 客戶端從 XQuery 中更新 subversion 儲存庫
- 已註冊模組 : util:registered-modules()
- 已註冊函式 : util:registered-functions()
- 動態模組載入 : util:import-module()、util:eval()
- 高階函式 : util:function()、util:call()
- 計時斐波那契演算法 : util:function()、util:call()、util:system-time()
- XMP 資料 : util:binary-doc(), util:binary-to-string(), util:parse()
- 基本身份驗證 : util:string-to-binary(), httpclient:get()
XSL-FO(格式化物件)是一種將 XML 轉換為 PDF 的方式。 函式參考
- 安裝 XSL-FO 模組 - 在 eXist 中設定您的 XSL 模組
- 從 XSL-FO 檔案生成 PDF - 從 FO 檔案生成 PDF
- XSL-FO 表格 - 將表格新增到您的 PDF
- XSL-FO 影像 - 將影像新增到您的 PDF
- XSL-FO SVG - 將 SVG 影像新增到您的 PDF
- 使用觸發器記錄事件 - 如何設定觸發器以記錄儲存、更新和刪除集合中的事件
- 使用觸發器分配識別符號 - 如何使用觸發器為新文件或新節點分配識別符號
- 傳送電子郵件 電子郵件是通知觸發器何時觸發的其中一種方式
- URL 重寫基礎 如何使您的 URL 看起來漂亮
使用實現 XQuery 的原生和混合 XML 資料庫
- BaseX - 帶有視覺化前端的原生開源 XML 資料庫
- DataDirect XQuery - 支援關係型、EDI、平面檔案和 XML 輸入/輸出的 Java XQuery 引擎
- eXist - 開源原生 XML 資料庫
- DB2 pureXML - DB2 9.1 包含 pureXML 功能
- MarkLogic Server - MarkLogic Server 商業 XML 內容伺服器
- Microsoft SQL Server 2005 -
- NetKernel - NetKernel
- Oracle Berkeley DB XML - 開源嵌入式儲存管理
- Oracle XML DB - Oracle Server 11g 包含 XML DB (XDB) 功能
- Sedna - 開源原生 XML 資料庫
- Stylus Studio - XQuery 對映/編輯/除錯,附帶 Saxon(和 SA)和 DataDirect XQuery
- EMC xDB - EMC Documentum xDB 商業原生 XML 資料庫
- XQilla - 開源 XQuery 庫和命令列實用程式
- Zorba - 開源 XQuery 引擎 C++ 實現,帶有 C、Java、Php、Python、Ruby 庫繫結和命令列實用程式
- Qizx - 開源和專業 XQuery 引擎 Java 實現
除錯 XQuery
[edit | edit source]其他來源
[edit | edit source]函式庫
[edit | edit source]- FunctX XQuery 函式庫 由 Priscilla Walmsley 建立
討論組
[edit | edit source]
索引
[edit | edit source]- 應用領域索引 - 已編輯
符號鍵
表示 XQuery/最佳實踐