BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース Web IDL:DOMスペックのW3C言語バインディングが新たな名前を取得

Web IDL:DOMスペックのW3C言語バインディングが新たな名前を取得

近ごろW3C Web Applications Working Group(リンク)は、 正式名称Language Bindings for DOM Specifications(リンク)であるWeb IDL(リンク)の作業草案を公表した。作業草案は、インターフェイスを定義するスペックで使用されるOMG IDLバージョン3.0(PDF)の構文サブセットを定義する。InfoQはWeb開発コミュニティに与える影響について、スペックエディターに話を聞いた。

作業草案によって定義されているインターフェイス定義言語はWeb IDLと呼ばれ、Webブラウザで実装されるよう設計されたインターフェイスを記述するのに使用することができる。Web IDLは、Webプラットフォームの共通スクリプトオブジェクトの振る舞いを、より簡単に指定できる機能を数多く備えた、IDLバリアントである。以前は 散文で記述されていたに違いない共通の機能をサポートするために、多くの拡張機能がIDLに提供されている。また、ECMAScript 3rd Edition(リンク)およびJava向けの正確な言語バインディングが提供されている。文書のIntroduction(リンク)の部分では、そのようなスペックを持つ理 由を説明している。

W3Cによって公表されたプログラミング言語インターフェイスを含むテクニカルレポートは、典型的にObject Management GroupのInterface Definition Language (IDL) [OMGIDL]を使用して説明されている。IDLは、言語に依存しない方法でこうしたインターフェイスを説明する手段を提供する。たいてい、 theIDLで記述されたインターフェイスが、指定された言語の構造とどのように対応するのかを詳述したドキュメントに追加の言語バインディング索引が含 まれている。

しかしながら、通常Web、ECMAScriptで使用されるこのような言語のスペックのバインディングは、相互運用性の結果に関して、正確性が低く指定 される。また、各スペックはECMAScriptグローバルオブジェクト上のプロパティと対応するDOMインターフェイスが記述したinIDLまたは、 ECMAScriptのNumberタイプにマップする符号なし長IDLタイプのような、同一の基本情報を記述する必要がある。

Web IDLはインターフェイスを定義するためにW3Cスペックで使用される言語を詳細に指定し、そうしたインターフェイスの ECMAScriptおよびJavaバインディングの正確な適合性要件を提供するよう設計されている。すでに公開されたスペックの実装者に対するガイドと して、ドキュメントは機能し、新たに公開されたスペックはこのドキュメントを参照し、インターフェイスの実装が相互運用可能であることを保証するように期 待されている。「HTML5の構築で信じられないほど役立つことが証明されている」とHTML 5(リンク)エディターの1人であるIan Hickson氏(リンク)は言う。Web IDL(リンク)を参照する別のスペックは XMLHttpRequest Level 2(リンク)であり、今年の2月25日に初めて公表された。

内容の一部変更のほかに、この改訂の主な変更(リンク)は、ドキュメントのタイトルが「Web IDL」になった。「ドキュメントが定義しているもの(IDL言語およびそれがマップする2つの言語)をより正確に示す名前である。そのドキュメントの以 前の名前は、インターフェイスをIDLで定義するスペックには適用できず、DOMのみに適用可能であるという印象を与えていた」とWeb IDL のエディターであるCameron McCormack(リンク)は語る。

Cameron氏はまたInfoQに、Web IDLがWeb開発コミュニティでどのようにして役に立つのかを説明した。
現在のDOM関連のスペックは、特定のインターフェイスを実装するECMAScriptのホストオブジェクトがどのように振る舞うのかについての概要を示 している。たとえば、ECMAScript Language Binding appendix of DOM Level 3 Core(リンク)は、DOM Level 3 Core向けのECMAScriptバインディングを説明しているが、NodeプロトタイプオブジェクトはElementオブジェクトのプロトタイプ チェーンにあることは述べていない。さまざまなAJAXツールキットがこれに依存しているが、標準化はされていない。

別の例としては、ホストオブジェクトで機能を呼び出す場合、どのようにタイプが強制されるのかが説明されていない。たとえば、以下をおこなうとき、

circleElement.setAttributeNS(null, 'cx', 2 * 50);

以下のように振る舞うものと予想する。

circleElement.setAttributeNS(null, 'cx', '100');

なぜなら、etAttributeNS()に対する3番目の引数がDOMStringだからである。これはどこにも定義されていないが、広く相互運用可能な振る舞いである。Web IDLは、このようにタイプの強制の動作方法を定義している。

そこでWeb IDLに「他のスペックの言語バインディングに対してさらに厳しい要求を課す」と、標準間の一貫性や同一の標準に対して開発された製品間の一貫性に関する限り、Web開発コミュニティはますます相互運用可能な世界になる。

原文はこちらです:http://www.infoq.com/news/2008/09/WebIDL

この記事に星をつける

おすすめ度
スタイル

BT