跳轉至內容

XRX/XRX 應用程式伺服器

來自華夏公益教科書,開放的書籍,開放的世界
< 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 應用程式伺服器願景

[編輯 | 編輯原始碼]

現在可以設定 XRX 應用程式伺服器以允許安裝各種相互協作的應用程式。


返回:XRX 的優勢下一步:構建您的第一個 XRX 應用程式

華夏公益教科書