ECMAScript для XML (E4X) — расширение языка программирования, добавляющее естественную поддержку XML в стандарт языка ECMAScript. Цель — обеспечить альтернативу DOM-интерфейсам для упрощения синтаксиса для доступа к XML-документам. Также предлагается новый способ отображения XML. До выпуска E4X, доступ к XML всегда осуществлялся на объектном уровне. Вместо этого E4X рассматривает XML как примитивный тип (как например, строки, целые числа, булевы значения). Это обеспечивает повышение скорости доступа, лучшую поддерживаемость и удобство использования в качестве структуры данных программы.

ECMAScript для XML
Орган стандартизации Ecma International, ИСО и Международная электротехническая комиссия

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.

Примечания

править
  1. SpiderMonkey 1.6.0 release notes Архивировано 15 апреля 2009 года.
  2. Rhino 1.6R1 Change log. Дата обращения: 5 мая 2010. Архивировано 6 июля 2010 года.

Ссылки

править