ECMAScript for XML

ECMAScript for XML

[1] E4X (ECMAScript for XML) は XML の native support を追加した ECMAScript を拡張した言語です。

仕様書

[3] mozilla/js/rhino/examples/E4X/e4x_example.js <http://lxr.mozilla.org/mozilla/source/js/rhino/examples/E4X/e4x_example.js> (名無しさん)

[4] なんかしらないけど E4X が微妙に流行ってる? (名無しさん 2005-09-23 17:11:21 +00:00)

[5] E4X - MDC <http://developer.mozilla.org/en/docs/E4X> (名無しさん)

[6] E4XJavaScript 1.6 (Gecko 1.8 / Firefox 1.5 以降で対応) に取り込まれました。 (名無しさん)

[7] E4XHTML に埋め込む時は、

<script type="text/javascript; e4x=1"
    src="js-with-e4x.js"></script>

のようにします。

JavaScript 1.6 な環境では e4x=1 引数が無くても E4X が有効になるようですが、 後方互換性のためには明記しておいた方が良いでしょう。

特に HTML注釈宣言 (のようなもの) の取り扱いで予期せぬ誤りのもとになります。

(名無しさん 2005-11-19 01:24:16 +00:00)

[8] Kazuho@Cybozu Labs: E4X-XSS 脆弱性について (2007-01-11 09:01:03 +09:00 版) <http://labs.cybozu.co.jp/blog/kazuho/archives/2007/01/e4x-xss.php> (名無しさん 2007-01-11 00:11:46 +00:00)

[9] Collection & Copy - ヒアドキュメント、E4X (2007-04-23 08:44:54 +09:00 版) <http://d.hatena.ne.jp/brazil/20060512/1147427737> (名無しさん)

[10] Latest topics - outsider reflex (Piro(SHIMODA Hiroshi) 著, 2007-04-23 09:22:51 +09:00 版) <http://piro.sakura.ne.jp/latest/blosxom/event/2007-04-22_mozillapartyjp8.0.htm> (名無しさん 2007-04-23 00:25:25 +00:00)

[11] E4X in Firefox 発表資料: Days on the Moon (2007-04-23 09:52:13 +09:00 版) <http://nanto.asablo.jp/blog/2007/04/22/1459018> (名無しさん 2007-04-23 00:52:32 +00:00)

[12] Mar 25 2007 :: Shibuya.js Shibuya.es / nulog, NULL::something : out of the washer (2007-04-23 10:01:42 +09:00 版) <http://lowreal.net/blog/2007/03/25/1> (名無しさん 2007-04-23 01:04:54 +00:00)

[13] Hatena::agenda (2007-06-04 13:05:55 +09:00 版) <http://d.hatena.ne.jp/jintrick/20070604> (名無しさん 2007-06-04 10:55:36 +00:00)

[15] Bug 311071 &#8211; treat <! as the start of a comment to end of line, unless e4x=1 (was: page keeps reloading) (2008-04-07 08:23:25 +09:00 版) <https://bugzilla.mozilla.org/show_bug.cgi?id=311071> (名無しさん)

[16] Bug 309242 &#8211; E4X should be on by default, while preserving the comment hiding hack (2008-04-07 08:24:49 +09:00 版) <https://bugzilla.mozilla.org/show_bug.cgi?id=309242> (名無しさん)

[17] Bug 311157 &#8211; Comment-hiding compromise left E4X parsing/scanning inconsistent ( 版) <https://bugzilla.mozilla.org/show_bug.cgi?id=311157>

[18] E4Xのデフォルトnamespaceが... - hogehoge ( 版) <http://d.hatena.ne.jp/teramako/20090325/p1>

[19] E4Xは確かに便利なんだけど... - hogehoge ( 版) <http://d.hatena.ne.jp/teramako/20090323/p1>

[20] FirefoxのE4XはXPathより便利? - bits and bytes (Kentaro Kumagai 著, 版) <http://labs.gmo.jp/blog/ku/2007/08/firefoxe4xxpath.html>

[21] C++ で無理矢理 E4X のような XML 埋め込みを実現してみる - muddy brown thang ( 版) <http://d.hatena.ne.jp/moriyoshi/20090422/1240406986>

e4x 引数 (text/javascript 媒体型)

[22] text/javascript 媒体型e4x 引数は、E4X が完全に有効であるかを表します。

[23]

媒体型
text/javascript
引数名
e4x (「E4X」より)
1
既定値
version に依存
状態
非標準

値と意味

[24] e4x=1 とすると、 E4X が完全に有効となります。 指定がない場合、 version が 1.5 以下では一部が無効、 1.6 以降では完全に有効となります。 (version既定値は最新版のようです。)

[25] E4X - MDC ( 版) <https://developer.mozilla.org/en/E4X> によると、e4x が 1 の場合にはすべての E4X の機能が有効になりますが、 そうでない場合 (で 1.5 以下の場合) には注釈CDATA区間が無効になるようです。

実装

[26] この機能は JavaScript 1.6 の一部として Gecko が最初に実装しました。

[27] Web Applications 1.0スクリプトの処理の規定の中で text/javascript; e4x=1JavaScript + E4X を意味するとしています。

ただし Web Applications 1.0 自体が e4x 引数を規定しているわけでも、著者に対する要件を定めているわけでもないので、 この引数自体は依然標準化されていない状態が続いています。

関連

[32] E4X を参考にした改良案として E4H があります。

歴史

[28] IRC logs: freenode / #whatwg / 20111019 ( ( 版)) <http://krijnhoetmer.nl/irc-logs/whatwg/20111019#l-256>

[29] E4X | Mozilla Developer Network ( ( 版)) <https://developer.mozilla.org/en-US/docs/E4X>

[30] Web Applications 1.0 r7625 Fly your flags at half mast for E4X. ( ( 版)) <http://html5.org/tools/web-apps-tracker?from=7624&to=7625>

[14] State Chart XML (SCXML): State Machine Notation for Control Abstraction ( 版) <http://www.w3.org/TR/scxml/#ecma-profile>

Implementations may support JSON [RFC 4627] or ECMAScript for XML (E4X) [E4X].

[31] Give JavaScript MIME types a <dfn> to refer to · whatwg/html@8d7fe57 ( 版) <https://github.com/whatwg/html/commit/8d7fe572bca136e1397ab8fae57db791fbf8ec13>