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 也可以在在这个企业文档管理系统中可用。

 外部链接 
 Tutorial from W3 Schools
 ECMA-357 standard
 E4X at faqts.com
 Slides from E4X Presentation by Brendan Eich, Mozilla Chief Architect

Category:XML