ECMAScript для XML
ECMAScript для XML (E4X) — расширение языка программирования, добавляющее естественную поддержку XML в стандарт языка ECMAScript. Цель — обеспечить альтернативу DOM-интерфейсам для упрощения синтаксиса для доступа к XML-документам. Также предлагается новый способ отображения XML. До выпуска E4X, доступ к XML всегда осуществлялся на объектном уровне. Вместо этого E4X рассматривает XML как примитивный тип (как например, строки, целые числа, булевы значения). Это обеспечивает повышение скорости доступа, лучшую поддерживаемость и удобство использования в качестве структуры данных программы.
E4X стандартизирован организацией Ecma International в стандарте ECMA-357. Первая версия была опубликована в июне 2004, вторая — в декабре 2005.
Пример
var sales = <sales vendor="Джон">
<item type="горох" price="4" quantity="6"/>
<item type="морковь" price="3" quantity="10"/>
<item type="чипсы" 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» компании BEA Systems, выпущенном в феврале 2002 года. Реализация от BEA основывалась на Rhino и была выпущена прежде чем спецификации ECMAScript E4X были закончены (в июне 2004 года). Джон Шнайдер заодно написал статью о 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 также доступен в этой корпоративной системе документооборота.
- Mozilla Firefox 21 и более поздние версии больше не поддерживают E4X.
Примечания
- SpiderMonkey 1.6.0 release notes Архивировано 15 апреля 2009 года.
- Rhino 1.6R1 Change log
Ссылки
- Стандарт ECMA-357 (англ.)
- E4X at faqts.com (англ.)
- Слайды с Презентации 2005 E4X от Брендана Эйха, старшего архитектора Mozilla (англ.)
- E4X на Mozilla Developer Center Архивная копия от 19 апреля 2008 на Wayback Machine (англ.)
- 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 (англ.)