Введение

ECMAScript for XML (E4X) — это стандартное расширение языка программирования ISO/IEC 22537:2006, добавляющее встроенную поддержку XML в ECMAScript (включая ActionScript, JavaScript и JScript). Его целью было предоставить альтернативу DOM-интерфейсам, использующую более простой синтаксис для доступа к XML-документам, а также новый способ представления XML. До появления E4X доступ к XML всегда осуществлялся на уровне объектов. E4X же рассматривал XML как примитивный тип данных (как символы, целые числа и логические значения). Это подразумевало более быстрый доступ, улучшенную поддержку и возможность использования XML в качестве базового элемента (структуры данных) программы. E4X был стандартизирован Ecma International в стандарте ECMA 357. Первое издание было опубликовано в июне 2004 года, второе — в декабре 2005 года. Фонд Mozilla отказался от поддержки стандарта E4X в 2014 году, после чего он был отозван ISO/IEC.

Поддержка браузера

E4X поддерживается Rhino от Mozilla, используемым в OpenOffice.org и нескольких других проектах. Он также поддерживается Tamarin, JavaScript-движком, используемым во Flash Virtual Machine. Он не поддерживается другими распространенными движками, такими как Nitro (Safari), V8 (Google Chrome), Carakan (Opera), Chakra (Internet Explorer и Edge до Chromium). E4X также поддерживался SpiderMonkey (используется в Firefox и Thunderbird), но был удален. Начиная с Firefox 10, синтаксис E4X перестал поддерживаться в SpiderMonkey при включенном строгом режиме ECMAScript 5. По словам Брендана Эйха, "Это сигнализирует о начале устаревания E4X в SpiderMonkey" и "был отключен по умолчанию для веб-страниц (контента) в Firefox 17, отключен по умолчанию для интерфейса Firefox (chrome) в Firefox 20 и удален в Firefox 21".

Реализация

Первая реализация E4X была разработана Терри Лукасом и Джоном Шнайдером и появилась в BEA Weblogic Workshop 7.0, выпущенном в феврале 2002 года. Реализация BEA была основана на Rhino и выпущена до завершения спецификации ECMAScript E4X в июне 2004 года. В то время Джон Шнайдер написал статью о XML-расширениях в BEA Workshop. E4X был реализован в SpiderMonkey (JavaScript-движок Gecko) начиная с версии 1.6.0 и до версии 20, а также в Rhino (другой JavaScript-движок Mozilla, написанный на Java вместо C) начиная с версии 1.6R1. Поскольку Mozilla Firefox основан на Gecko, старые версии можно было использовать для запуска скриптов с использованием E4X. Однако эта функция устарела, начиная с релиза 16, и была удалена в релизе 18. Язык сценариев Adobe ActionScript 3 полностью поддерживает E4X. Первые предварительные версии ActionScript 3 стали доступны в конце 2005 года. Adobe официально выпустила язык вместе с Flash Player 9 28 июня 2006 года. E4X доступен в Flash CS3, Adobe AIR и Adobe Flex, поскольку они используют ActionScript 3 в качестве языка сценариев. E4X также доступен в версиях Adobe Acrobat и Adobe Reader 8.0 и выше (в частности, перенесен из SpiderMonkey версии 17, и предполагается, что он может быть удалён в будущем). E4X также доступен в Jaxer Ajax-сервере приложений Aptana, использующем движок Mozilla на серверной стороне. С выпуском Alfresco Community Edition 2.9B, E4X также стал доступен в этой корпоративной системе управления документами. E4X доступен как часть JavaScript-движка преобразования сообщений Mirth Connect.