ECMAScript for XMLとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > ECMAScript for XMLの意味・解説 

ECMAScript for XML

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2024/06/09 14:51 UTC 版)

ECMAScript for XMLE4X)は、ECMAScriptActionScriptDMDScriptJavaScriptJScript を含む)にネイティブのXMLサポートを追加するプログラミング言語拡張である。その目的は、DOMインタフェースの代替として、単純な構文でXML文書にアクセスできるインタフェースを提供することである。E4Xがリリースされるまで、XMLへのアクセスには常にオブジェクトレベルが関与していた。E4XではXMLを文字や整数と同様のプリミティブ型として扱う。そのため、アクセスが高速化され、サポートが容易になり、プログラムの構成要素(データ構造)としても扱いやすくなる。

E4XはEcmaインターナショナルECMA-357 (PDF) として標準化した。初版は2004年6月に公表され、第2版が2005年12月に公表された。

E4Xは、2014年にMozilla Foundationによって非推奨とされている[1]

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 );
}

実装

最初の実装は Terry Lucas と John Schneider が設計したもので、2002年2月にリリースされたBEAシステムズの Weblogic Workshop 7.0 に含まれていた。BEAの実装は Rhino に基づくもので、E4X の標準化が完了する以前にリリースされている。リリース時、John Schneider は BEA の XML 拡張について記事を書いた。E4X言語以前のリファレンス文書が現在も公開されている[1]

E4Xは、SpiderMonkeyGeckoJavaScriptエンジン)や Rhino(同じくMozilla用にJavaで書かれたJavaScriptエンジン)で実装されている。

Mozilla Firefox は Gecko ベースなので、E4X を使ったスクリプトを実行可能であった(バージョン1.5以降)が、Firefox 17から段階的に無効化され、同21で削除される予定である[2]。なお、Firefox 1.5 で正しくスクリプトを実行するには、スクリプトの type 属性の最後に "; e4x=1" を追加する必要がある(例えば、<script type="application/javascript; e4x=1">)。

アドビの ActionScript 3 でも E4X を完全サポートしている。これが公式にリリースされたのは、2006年の Adobe Flex 2.0 と Flash Player 9 の一部としてである。他に、Flash CS3、Adobe AIRAdobe Acrobat/Reader(8.0以降)でもサポートされている。

Aptanaの Jaxer Ajax アプリケーションサーバは、Mozilla のエンジンをサーバ側で使っているため、E4X に対応している。

コンテンツ管理システム (CMS) の Alfresco Community Edition 2.9B でも E4X をサポートしている。

批判

多くのE4X実装は、DOMノードとE4Xモデルの間で、インポート/エクスポートする手段を提供していない。

競合規格

JSON

JSONは XML の代替となる可能性がある。JSON は XML に似たオブジェクト指向のデータ記述言語である。JSON は ECMA-404 として ECMAインタナショナル により標準化されており、JavaScript からは、 JSON オブジェクトのメソッドにより操作する。

上掲の例を JSON を使った場合、次のようになる。

const json = `{
  "vendor": "John",
  "items": [
    { "type": "peas",   "price": 4, "quantity":  6 },
    { "type": "carrot", "price": 3, "quantity": 10 },
    { "type": "chips",  "price": 5, "quantity":  3 }
  ]
}`;
const sales = JSON.parse(json);

alert(sales.items.find(item => item.type === "carrot").quantity);
alert(sales.vendor);
sales.items.forEach(item => alert(item.price));

DOMParser

JavaScript には、XML や HTML の文字列から DOM の Document クラスを生成する DOMParser インターフェイスが用意されている。

E4X の例を DOMParser インターフェイスを使った場合、次のようになる。

const xml = `<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>`;

const parser = new DOMParser();
const sales = parser.parseFromString(xml, 'text/xml');
const items = Array.from(sales.getElementsByTagName("item"));
alert(items.find(item => item.getAttribute("type") === "carrot").getAttribute("quantity"));
alert(sales.getElementsByTagName("sales").item(0).getAttribute("vendor"));
items.forEach(item => alert(item.getAttribute("price")))

脚注

関連項目

外部リンク


「ECMAScript for XML」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

ECMAScript for XMLのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



ECMAScript for XMLのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのECMAScript for XML (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS