E4X
ECMAScript for XML(E4X)是一擴展了ECMAScript(包含ActionScript、DMDScript、JavaScript、JScript等)的程式語言,它增加對 XML 的內在支持。它的目標是在訪問XML文檔時,提供一種更直觀、語法更簡潔的的 DOM 接口。它也是處理XML時的一種新的方式。在 E4X 版本之前,通常總是在 Objcet(對象)層次上訪問XML,而 E4X 則是把 XML 當做原始數據(primitive)來處理(比如字符、數字和布爾值)。這也意味着更快的訪問速度、更好的支持、和使 XML 可以成為程序的一個組塊(數據結構)。
示例
var sales = <sales vendor="John">
<item type="peas" price="4" quantity="6"/>
<item type="carrot" price="3" quantity="10"/>
<item type="chips" price="5" quantity="3"/>
</sales>;
alert( sales.item.(@type == "carrot").@quantity );
alert( sales.@vendor );
for each( var price in sales..@price ) {
alert( price );
}
實現
E4X 的第一個實現是由 Terry Lucas 和 John Schneider 設計的,出現在 BEA 於2002年2月發佈的 Weblogic Workshop 7.0中。BEA 的實現是基於 Rhino, 並且於2004年6月先於 ECMAScript E4X 規範發佈。John Schneider 當時寫了一篇關於 BEA 的 Workshop 的文章(頁面存檔備份,存於互聯網檔案館)。這個 E4X 語言前身的參考文檔目前仍然可用。
- E4X 在(至少部分地)SpiderMonkey(Gecko的JavaScript引擎)和 Rhino(Mozilla 的另一個用 Java 而非 C 寫的 JavaScript 引擎)中實現。
注意:為了正確地在Firefox 1.5中運行E4X,你必須在腳本的HTML標籤中將類型(type)值後面加入「;e4x=1」字串(例:<script type="text/javascript; e4x=1">)。
- 由於 Mozilla Firefox 是基於 Gecko 引擎的,所以它可以用 E4X 運行腳本。該規範相當新,只有1.5及以後版本支持。
- Macromedia的ActionScript3腳本語言完整地支持 E4X,ActionScript 3 在2005年末已可用。Adobe 於 2006年6月28日隨 Flash Player 9 正式的發佈了該語言。
- E4X 在 Flash CS3、Adobe AIR 和 Adobe Flex 中可用,因為它們都使用 ActionScript 3 作為腳本語言。
- E4X 在 Adobe Acrobat 和 Adobe Reader 8.0 或更高版本中可用。
- E4X 在 Aptana 的 Jaxer Ajax 應用伺服器中可用,該伺服器使用了 Mozilla 的伺服器端引擎。
- 從 Alfresco Community Edition 2.9B 以後,E4X 也可以在在這個企業文檔管理系統中可用。