XRX/XRX 應用程式伺服器
XQuery 除了是一種查詢語言,也是一種轉換語言。它的原始名稱是“Quilt”,反映了它將不同部分的(XML)內容編織在一起的能力。
這意味著它擅長從資料儲存中查詢 XML 資料,並將資料轉換為 XHTML 網頁。任何支援 XQuery 的 XML 資料儲存,只要接受 HTTP 請求,就可以與您的 Web 瀏覽器通訊,並向它傳送一個任意複雜、有效的 (X)HTML 文件。
以下是一個簡短的示例,說明 XQuery 如何將 XML 資料庫記錄轉換為有效的 HTML
<customer>
<name>bob</name>
<orders>
<order qty="1">Jumbo Can SPAM</order>
</orders>
</customer>
可以“轉換為” HTML
<div id='cust'> <b>bob</b>
Orders:
<ul>
<li>Jumbo Can SPAM (1)</li>
</ul>
</div>
使用 XQuery,例如(未經測試)
let $customer := //customer[name='bob']
return
<div id='cust'> <b>{$customer/name/text()}</b>
Orders:
<ul>
{
for $o in $customer/orders/order
return <li>{$o/text()} ({$o/@qty})</li>
}
</ul>
</div>
許多免費和商業的 XQuery 支援資料庫可用。其中包括:BaseX、DB2、eXist、MarkLogic、Oracle 和 xHive。BaseX 和 eXist 是免費的,MarkLogic(也許還有其他一些)有免費的社群版本。許多(如果不是所有)都支援 HTTP 請求,因此可以用作 Web/應用程式伺服器。
BaseX
BaseX 既是一個輕量級、高效能且可擴充套件的 XML 資料庫,也是一個 XQuery 3.1 處理器,完全支援 W3C 更新和全文擴充套件。它專注於儲存、查詢和視覺化大型 XML 和 JSON 文件和集合。一個視覺化前端允許使用者即時互動式地探索資料和評估 XQuery 表示式。BaseX 是平臺獨立的,並在免費的 BSD 許可下分發。(來自他們的網站)
它還具有獨立模式和 Web 伺服器模式。
eXist
儘管 eXist 資料庫最初建立只是為了像傳統資料庫一樣簡單地儲存 XML 資料,但新增到 eXist 中的豐富 REST 介面已將其轉變為 Web 伺服器。eXist 資料庫現在能夠提供一套豐富的功能,這些功能僅在其他應用程式伺服器中可用。剩下的問題是應用程式開發標準,這些標準將允許大量開發 XRX 應用程式的人員共同協作。
MarkLogic
MarkLogic 也許是目前最強大的 XML 資料管理產品。它將 XML/XQuery 與文字索引和檢索、地理空間、警報以及企業級可擴充套件性和效能相結合。
xHive(或 xDB)
xHive 是一款最先進的原生 XML 資料庫,支援 XQuery,具有事務控制、廣泛的索引功能和頂級可擴充套件性。
DB2、Oracle、PostgreSQL
DB2、Oracle 和 PostgreSQL 透過將 XML 作為大型 CLOB 欄位來支援 XML,並支援對這些資料進行 XQuery 查詢。PostgreSQL 目前只支援 XPath(作為 XQuery 的子集)。它檢查輸入值的有效性,並有支援函式來對其執行型別安全的運算。
現在可以設定 XRX 應用程式伺服器以允許安裝各種相互協作的應用程式。