ECMAScript для XML (E4X) — расширение языка программирования, добавляющее естественную поддержку XML в стандарт языка ECMAScript. Цель — обеспечить альтернативу DOM-интерфейсам для упрощения синтаксиса для доступа к XML-документам. Также предлагается новый способ отображения XML. До выпуска E4X, доступ к XML всегда осуществлялся на объектном уровне. Вместо этого E4X рассматривает XML как примитивный тип (как например, строки, целые числа, булевы значения). Это обеспечивает повышение скорости доступа, лучшую поддерживаемость и удобство использования в качестве структуры данных программы.
E4X стандартизирован организацией стандарте ECMA-357. Первая версия была опубликована в июне 2004, вторая — в декабре 2005.
Пример
var sales = <sales vendor="Джон">
<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 == "морковь").@quantity );
alert( sales.@vendor );
for each( var price in sales..@price ) {
alert( price );
}
delete sales.item[0];
sales.item += <item type="апельсины" price="4"/>;
sales.item.(@type == "апельсины").@quantity = 4;
Реализации
Первая реализация E4X была разработана Терри Лукасом и Джоном Шнайдером и появилась в «Weblogic Workshop 7.0» компании статью о XML-расширениях в BEA «Workshop».
- E4X реализован в SpiderMonkey (движок JavaScript на основе Gecko), начиная с версии 1.6.0[1], и в Rhino (еще один движок JavaScript от Mozilla, написанный на Java вместо Си), начиная с версии 1.6R1[2].
- Поскольку Mozilla Firefox основан на Gecko, то его можно использовать для запуска скриптов, написанных с использованием E4X. Спецификация поддерживается в выпуске 1.5 и далее.
- Скриптовый язык ActionScript 3 от Adobe полностью поддерживает 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 и выше.
- E4X доступен в сервере приложений Jaxer Ajax от компании Aptana, который использует движок Mozilla на стороне сервера.
- Начиная с релиза Alfresco Community Edition 2.9B, E4X также доступен в этой корпоративной системе документооборота.
Примечания
- SpiderMonkey 1.6.0 release notes
- Rhino 1.6R1 Change log
Ссылки
- Стандарт ECMA-357 (англ.)
- E4X at faqts.com (англ.)
- Слайды с Презентации 2005 E4X от Брендана Эйха, старшего архитектора Mozilla (англ.)
- E4X на Mozilla Developer Center (англ.)
- Introducing E4X at xml.com: сравнение E4X и json (англ.)
- Processing XML with E4X на Mozilla Developer Center (англ.)
- Tutorial from W3 Schools (англ.)
- E4X: Beginner to Advanced на Yahoo Developer Network (англ.)