ECMAScript for XML (E4X) was an extension to ECMAScript (which includes ActionScript, JavaScript, and JScript) to add native support for Extensible Markup Language (XML). [1] The goal was to provide a simpler alternative to the Document Object Model (DOM) interface for accessing XML documents. E4X added XML as a primitive data structure to allow faster access[ clarification needed ] and better support within the language.
E4X was standardized by Ecma International in the ECMA-357 standard. The first edition was published in June 2004 and the second edition in December 2005. However, the E4X standard was deprecated by the Mozilla Foundation in 2014, [2] and it was withdrawn by ISO/IEC in 2021. [1]
The first implementation of E4X was designed by Terry Lucas and John Schneider and appeared in BEA's Weblogic Workshop 7.0, released in February 2002.[ citation needed ] BEA's implementation was based on Rhino and released before the ECMAScript E4X spec was completed in June 2004.[ citation needed ]
E4X is supported by Mozilla's Rhino, as well as by Tamarin, the JavaScript engine used in the Flash virtual machine.[ citation needed ] However, it is unsupported by other common engines like Nitro (Safari), V8 (Google Chrome), Carakan (Opera), and Chakra (Internet Explorer). [3]
E4X was supported by SpiderMonkey (used in Firefox and Thunderbird). However, E4X was deprecated in Firefox 10 [4] and eventually removed in Firefox 21. [5] [ clarification needed ]
E4X was supported by the OpenOffice.org software suite.[ citation needed ]
varsales=<salesvendor="John"><itemtype="peas"price="4"quantity="6"/><itemtype="carrot"price="3"quantity="10"/><itemtype="chips"price="5"quantity="3"/></sales>;alert(sales.item.(@type=="carrot").@quantity);alert(sales.@vendor);foreach(varpriceinsales..@price){alert(price);}deletesales.item[0];sales.item+=<itemtype="oranges"price="4"/>;sales.item.(@type=="oranges").@quantity=4;