• 沒有找到結果。

可擴展標示語言(XML)

可擴展標示語言(eXtensible Markup Language,XML)是由全球資訊網標準制 定組織(W3C)於 1988 年 2 月正式制定而成的標記語言,W3C 的 data format model 如圖 2. 6:

圖 2. 6 W3C Data Format Model

XML 自標準通用標示語言(Standard Generalized Markup Language,SGML) 演化而來[10,11],成為資料儲存或資料交換的格式,其簡化了 SGML 的語法複 雜度,並解決過去 HTML 設計結構無法因應需求擴充的詬病,發展出各領域皆 可套用的通用規則, XML 本身具有下列幾種特性:

 Well-formed:舉凡 XML 標記必定成對,具有高度的語法檢視標準,不 同於 HTML 對語法要求較為鬆散,使文件內容能在各瀏覽器間正確呈現。

 易於擴充:XML 語法極具彈性,可由程式設計者自行命名標記名稱,

並自行定義標記內容的註解,依照其需求量身打造 XML 架構,提升 XML 文件 可讀性。

 自我描述性(self-describing):可在特定領域利用一組 DTD 來定義相關 標籤及文件結構,讓電腦與設計者能夠容易閱讀 XML 檔案。

 樹狀結構:XML 文件是以樹狀結構的方式排列,由根節點開始產生分 支,每個標記都可視為一個節點,使 XML 文件結構清晰明確。

XML 基於上述優越的特性,已在各領域發展出豐沛的應用,以電子商務領 域為例,SOAP(Simple Object Access Protocol)通訊協定即是以 XML 做為電子資 料交換的標準,在數位學習平台方面,制定了 SCORM(Sharable Content Object Reference Model)標準作為 e-learning 的核心技術,在各式電子資訊領域皆能發揮 XML 特性優勢拓展各種應用。

2.3.1 eXist 資料庫

eXist[10]是由 Wolfgang Meier 在 2000 年所建立出來的一套 XML 資料庫系統,

從 2006 年的 Version 1.0 和 1.1 版本,現在已經發展到 Version 1.4 了,在 2006 年 更被譽為最佳的 XML 資料庫。

eXist 為一個公開原始碼的 XML 原生資料庫,其內容包含 XPath 搜尋過程、

關鍵字搜尋、支援 XUpdate 並且與其他 XML 開發工具緊密整合。該資料庫軟體 由 Java 所寫成,可以單獨執行,也能夠整合至其他應用中。在資料庫引擎的設 計方面,eXist 提供了 HTTP、XML-RPC、SOAP 和 WebDAV 等多種介面給應用 開發者。其支援技術如下:

 XQuery 1.0 / XPath 2.0 / XSLT 1.0 (using Apache Xalan) or XSLT 2.0 (optional with Saxon).

 HTTP interfaces: REST, WebDAV, SOAP, XMLRPC, Atom Publishing Protocol.

 XML database specific: XMLDB, XUpdate, XQuery update extensions (to be aligned with the new XQuery Update Facility 1.0).

eXist 的優點有以下幾點:

 允許軟體開發者不必去撰寫額外的中介介面,就可以儲存 XML 的原始 資料。

 遵守 W3C 的標準,並且提供 W3C 中所規定的 XML 的技術應用。

 支援 REST 的介面,以方便處理 AJAX 型態的 Web 介面。

2.3.2 XQuey 簡介

XQuery 全名為 XML Query,由 W3C XML Query Working Group 所開發制定 的 XML 資料查詢語言,XQuery Version 1.0 是自 XPath Version 2.0 延伸而來[11],

XQuery 與 XML 資料查詢語言的關係,如同關聯式資料庫所提供的標準 SQL 查 詢語言一般,除了可供 XML 文件資料查詢之外,也可以透過 XQuery 語言來檢 索其他資料庫引擎所建立的資料庫,如 SQL server、Oracle 等,XQuery 語言和 其他 XML 相關技術的關係如圖所示:

圖 2. 7 XQuery 與 XML 相關技術之關聯(w3schools)

eXist 採用 XQuery 作為存取的語言,XQuery 語言主要架構分為三個部分,

分別為命名空間與其聲明、函數定義和最重要的查詢表達式,其表示方法主要由 下列組成:

 路徑表示法:即由 XPath 2.0 語法表示查詢路徑。

 數學運算與布林運算:提供基本的數學運算與布林運算,並可使用一些 內部提供的數學函數。

 FLWOR 表示法:主要由 for、let、where、order by 和 return 五個關鍵字 所組成的查詢與表示法。

 條件表示法:由 if、then、else 所組成的表達式,用於控制輸出結果。

 元素與屬性建構器(element constructors):建構輸出的元素與屬性。

相關文件