“用libxml2來寫程式就像是異國的陌生人給你的一個扣人心弦的擁抱那樣。” Mark Pilgrim
Libxml2 是Gnome專案開發的XML C 剖析器跟工具包(但是Gnome平台外也可以使用),它是根據MIT License的免費軟體,XML本身是一種元語言(metalanguage)用來設計標記語言,例如, to design markup languages, i.e. 具語意和結構的文字語言會加到兩個角括號內使用額外的”標記”訊息內容內,HTML是最有名的標記語言,雖然這個函式庫是用C寫的,現在有很多的語言繫結 使得它在其它的環境下也可以使用。
據了解Libxml2很容易移植,函式庫可以在很多的系統(Linux, Unix, Windows, CygWin, MacOS, MacOS X, RISC Os, OS/2, VMS, QNX, MVS, VxWorks, …)下建構跟工作都不會有嚴重的問題。
Libxml2 實作了很多跟標記語言相關的標準:
- XML 標準:http://www.w3.org/TR/REC-xml
- XML命名空間: http://www.w3.org/TR/REC-xml-names/
- XML 基礎: http://www.w3.org/TR/xmlbase/
- RFC 2396 : 統一資源標識符 http://www.ietf.org/rfc/rfc2396.txt
- XML 路徑語言 (XPath) 1.0: http://www.w3.org/TR/xpath
- HTML4 剖析器: http://www.w3.org/TR/html401/
- XML 指針語言 (XPointer) 1.0版: http://www.w3.org/TR/xptr
- XML Inclusions (XInclude) 1.0版: http://www.w3.org/TR/xinclude/
- ISO-8859-x 編碼,以及 rfc2044 [UTF-8] 跟 rfc2781 [UTF-16] Unicode 編碼,和更多使用iconv的支援
- SGML 開放的技術解決方案TR9401的部份:1997
- XML 目錄的工作草案2001/08/06:http://www.oasis-open.org/committees/entity/spec-2001-08-06.html
- 規範的XML 1.0版:http://www.w3.org/TR/xml-c14n 以及專用的XML規範的公約與草案http://www.w3.org/TR/xml-exc-c14n
- Relax NG, ISO/IEC 19757-2:2003, http://www.oasis-open.org/committees/relax-ng/spec-20011203.html
- W3C XML 架構 Part 2:資料型態 REC 02 May 2001
- W3C xml:id 工作草案 2004/4/7
在大多數的情況下libxml2嘗試用相對一致嚴格地方式來實作規格,截至2.4.16版的釋出,libxml2通過了OASIS XML Tests Suite所有的1800以上的測試。
在一些程度上libxml2提供了下列額外規格的支援但是沒有完整實作的宣佈:
- 文件物件模型(Document Object Model,DOM) http://www.w3.org/TR/DOM-Level-2-Core/ 文件模型,但是它沒有實作自己的API,gdome2在libxml2之上做了這個模型
- RFC 959 :libxml2 實作一個基本的FTP 客戶端程式碼
- RFC 1945 : HTTP/1.0, 這也是一個基本的 HTTP 客戶端程式碼
- SAX:SAX2很像是跟早期expat版本相容的介面跟最小的SAX1實作
XML Schemas Part 1: Structure 的部份實作正在努力但是當時過早做出一致性聲明。
單獨文件:
- libxslt page 提供了XSLT 1.0的實作跟像EXSLT一樣的libxml2的常用擴充
- the gdome2 page:libxml2的標準DOM2實作
- the XMLSec page:libxml2的W3C XML Digital Signature實作也檢查了更多相關的連結跟啟用的專案。