ECMAScript para XML ( E4X ) fue la extensión del lenguaje de programación estándar ISO/IEC 22537:2006 que agrega soporte XML nativo a ECMAScript (que incluye ActionScript , JavaScript y JScript ). El objetivo era proporcionar una alternativa a las interfaces DOM que utiliza una sintaxis más simple para acceder a documentos XML. También ofreció una nueva forma de hacer visible XML. Antes del lanzamiento de E4X, siempre se accedía a XML a nivel de objeto. En cambio, E4X trató XML como un primitivo (como caracteres, números enteros y booleanos). Esto implicó un acceso más rápido, mejor soporte y aceptación como componente básico (estructura de datos) de un programa.
E4X fue estandarizado por Ecma International en el estándar ECMA-357. La primera edición se publicó en junio de 2004 y la segunda edición en diciembre de 2005.
El estándar E4X quedó obsoleto por la Fundación Mozilla en 2014. [1]
Fue retirado por ISO/IEC. [2]
E4X es compatible con Rhino de Mozilla , utilizado en OpenOffice.org y varios otros proyectos. También es compatible con Tamarin , el motor JavaScript utilizado en la máquina virtual Flash . No es compatible con otros motores comunes como Nitro ( Safari ), V8 ( Google Chrome ), Carakan ( Opera ), Chakra ( Internet Explorer y pre-Chromium Edge ). [3]
E4X también era compatible con SpiderMonkey (utilizado en Firefox y Thunderbird ), pero se eliminó. En Firefox 10, la sintaxis E4X ya no se aceptaba en SpiderMonkey cuando el "modo estricto" de ECMAScript 5 estaba habilitado. [4] Según Brendan Eich , "Esto indica el inicio de la desaprobación de E4X en SpiderMonkey". [5] y "se ha deshabilitado de forma predeterminada para páginas web (contenido) en Firefox 17, deshabilitado de forma predeterminada para Chrome en Firefox 20 y se ha eliminado en Firefox 21" [6]
var ventas = < proveedor de ventas = "John" > < tipo de artículo = precio "guisantes" = "4" cantidad = "6" /> < tipo de artículo = precio "zanahoria" = "3" cantidad = "10" /> < tipo de artículo = "chips" precio = "5" cantidad = "3" / > </ventas> ; alerta ( ventas . artículo .( @ tipo == "zanahoria" ). @ cantidad ); alerta ( ventas . @ proveedor ); para cada ( var precio en ventas .. @ precio ) { alerta ( precio ); } eliminar ventas . elemento [ 0 ]; ventas . artículo += < tipo de artículo = "naranjas" precio = "4" />; ventas . elemento .( @ tipo == "naranjas" ). @ cantidad = 4 ;
La primera implementación de E4X fue diseñada por Terry Lucas y John Schneider y apareció en Weblogic Workshop 7.0 de BEA lanzado en febrero de 2002. La implementación de BEA se basó en Rhino y se lanzó antes de que se completara la especificación ECMAScript E4X en junio de 2004. John Schneider escribió un artículo sobre las extensiones XML en el taller de BEA en ese momento.