ECMAScript for XML

From Wikipedia, the free encyclopedia
Revision as of 11:47, 21 January 2025 by imported>Winderz IoT (Browser support: This only links to the Internet Explorer version)
(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

ECMAScript for XML (E4X) was an extension to ECMAScript (which includes ActionScript, JavaScript, and JScript) to add native support for XML.[1] The goal was to provide a simpler alternative to the DOM interface for accessing XML documents. E4X added XML as a primitive data structure to allow for faster accessTemplate:Clarification needed and better support within the language.

E4X was standardized by Ecma International in the ECMA-357 standard. The first edition was published in June 2004 and the second edition in December 2005. However, the E4X standard was deprecated by the Mozilla Foundation in 2014,[2] and it was withdrawn by ISO/IEC in 2021.[1]

The first implementation of E4X was designed by Terry Lucas and John Schneider and appeared in BEA's Weblogic Workshop 7.0, released in February 2002.Script error: No such module "Unsubst". BEA's implementation was based on Rhino and released before the ECMAScript E4X spec was completed in June 2004.Script error: No such module "Unsubst".

Browser support

E4X is supported by Mozilla's Rhino, as well as by Tamarin, the JavaScript engine used in the Flash virtual machine.Script error: No such module "Unsubst". However, it is not supported by other common engines like Nitro (Safari), V8 (Google Chrome), Carakan (Opera), and Chakra (Internet Explorer).[3]

E4X was supported by SpiderMonkey (used in Firefox and Thunderbird). However, E4X was deprecated in Firefox 10[4] and eventually removed in Firefox 21.[5]Template:Clarification needed

E4X was supported by the OpenOffice.org software suite.Script error: No such module "Unsubst".

Example

var sales = <sales vendor="John">
    <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 == "carrot").@quantity );
alert( sales.@vendor );
for each( var price in sales..@price ) {
  alert( price );
}
delete sales.item[0];
sales.item += <item type="oranges" price="4"/>;
sales.item.(@type == "oranges").@quantity = 4;

See also

  • JSX – an XML based markup specifically for DOM manipulation

References

Template:Reflist

External links

Template:Ecma International Standards Template:ISO standards Template:List of IEC standards

  1. a b Script error: No such module "citation/CS1".
  2. Script error: No such module "citation/CS1".
  3. Script error: No such module "citation/CS1".
  4. Script error: No such module "citation/CS1".
  5. Script error: No such module "citation/CS1".