ECMAScript para XML ( E4X ) fue una extensión de ECMAScript (que incluye ActionScript , JavaScript y JScript ) para agregar soporte nativo para XML . [1] El objetivo era proporcionar una alternativa más simple a la interfaz DOM para acceder a documentos XML. E4X agregó XML como una estructura de datos primitiva para permitir un acceso más rápido [ aclaración necesaria ] y un mejor soporte dentro del lenguaje.
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 en diciembre de 2005. Sin embargo, el estándar E4X fue descontinuado por la Fundación Mozilla en 2014 [2] y fue retirado por ISO/IEC en 2021 [1].
La primera implementación de E4X fue diseñada por Terry Lucas y John Schneider y apareció en el Weblogic Workshop 7.0 de BEA , publicado en febrero de 2002. [ cita requerida ] La implementación de BEA se basó en Rhino y se publicó antes de que se completara la especificación ECMAScript E4X en junio de 2004. [ cita requerida ]
E4X es compatible con Rhino de Mozilla , así como con Tamarin , el motor de JavaScript utilizado en la máquina virtual Flash . [ cita requerida ] Sin embargo, no es compatible con otros motores comunes como Nitro ( Safari ), V8 ( Google Chrome ), Carakan ( Opera ) y Chakra ( Internet Explorer y Edge anterior a Chromium ). [3]
SpiderMonkey (utilizado en Firefox y Thunderbird ) admitía E4X . Sin embargo, E4X quedó obsoleto en Firefox 10 [4] y finalmente se eliminó en Firefox 21. [5] [ Aclaración necesaria ]
E4X fue respaldado por el paquete de software OpenOffice.org . [ cita requerida ]
var ventas = < ventas vendedor = "Juan" > < tipo de artículo = "guisantes" precio = "4" cantidad = "6" /> < tipo de artículo = "zanahoria" precio = "3" cantidad = "10" /> < tipo de artículo = "patatas fritas" precio = "5" cantidad = "3" /> </ ventas >; alerta ( ventas.artículo . ( @ tipo == "zanahoria" ). @ cantidad ); alerta ( ventas . @ vendedor ); para cada ( var precio en ventas .. @ precio ) { alerta ( precio ); } eliminar ventas.artículo [ 0 ] ; ventas.artículo + = < tipo de artículo = " naranjas " precio = "4" / >; ventas.artículo . ( @ tipo == " naranjas " ). @ cantidad = 4 ;