IDL Grammer Example for DOM IDL

W3C DOM の IDL 定義を読むのに必要な主な文法の例文。このくらい知っていれば大体問題ないだろう。 module の扱いについてはよく理解していないので割愛。(^^;

この文書における「~型」という表現は、インターフェイスの型を指す。 Operation Declaration で言う「void」は戻り値が存在しないという意味。

この文書の ECMAScript に関する記述については、W3C の DOM 各仕様の ECMAScript Language Binding の項の概観であり、このような表現の記述は特にない。 W3C の DOM 仕様では、個々のオブジェクトについてそれぞれ定義している。

インターフェイス宣言(Interface Declaration) - OMG CORBA Spec. 3.7
// インターフェイス Node の定義:
interface Node {
	宣言;
	宣言;
	宣言;
	....
	....
};// Node インターフェイスの定義 ここまで

// インターフェイス HTMLDocument の定義 : Document インターフェイスを継承する
interface HTMLDocument : Document {
	....
	....
};// HTMLDocument インターフェイスの定義 ここまで

インターフェイスの継承(Interface Inheritance) - OMG CORBA Spec. 3.7.5

<OMG IDL 3.7.5 の冒頭部分の Excite 翻訳結果を若干修正したもの(爆)> インターフェイスは、別のインターフェイス(以後、派生インターフェイスの 基礎インターフェイスと呼ぶ)から派生することができる。 全インターフェイスがそうであるように、派生インターフェイスも新しい要素を宣言してよい。 加えて、派生インターフェイス内で再定義されなければ、基礎インターフェイスの要素は 派生インターフェイスの要素であるかのように参照することが出来る。 name resolution 演算子 ("::") を基礎要素を明示的に参照するために使用してよい; これは、派生インターフェイスの中で再定義された名前への参照を許す。 派生インターフェイスは継承された type, constant, そして exception names のいずれも 再定義できる。

ECMAScript では、インターフェイスは Object として実装される。 Object は、当該 Object について定義された method と property に加えて、 継承するインターフェイス(Object) の全ての method 及び property を持つ。
定数宣言(Constant Declaration) - OMG CORBA Spec. 3.9
// このインターフェイスは 符号無し short の定数 ELEMENT_NODE(値は1) を持つ。
const unsigned short      ELEMENT_NODE       = 1;
例外宣言(Exception Declaration) - OMG CORBA Spec. 3.11
// 例外 DOMException の定義:
exception DOMException {
  // この例外は符号無し short のメンバ code を持つ。
  unsigned short   code;
};
ECMAScript では、例外は Object として実装される。メンバは property として実装される。 例外については ECMA-262 第3版 のみのサポートとなる。
命令宣言(Operation Declaration) - OMG CORBA Spec. 3.12
// このインターフェイスは
// 戻り値が void 型(戻り値無し)の命令 open(引数無し) を持つ。
void                      open();

// このインターフェイスは
// 戻り値が void 型(戻り値無し)の命令 write(第一引数 text は DOMString型) を持つ。
void                      write(in DOMString text);

// このインターフェイスは
// 戻り値が Element 型の命令 getElementById(第一引数 elementId は DOMString型) を持つ。
Element                   getElementById(in DOMString elementId);

// このインターフェイスは
// 戻り値が Element 型の命令 createElement(第一引数 tagname は DOMString型) を持つ。
// このメソッドは DOMException 型の例外を発生させる。
Element                   createElement(in DOMString tagName)
                                        raises(DOMException);
ECMAScript では、命令は method として実装される。
属性宣言(Attribute Declaration) - OMG CORBA Spec. 3.13
// このインターフェイスは DOMString 型の属性 title を持つ。
         attribute  DOMString            title;

// このインターフェイスは DOMString 型の読取専用属性 referrer を持つ。
readonly attribute  DOMString            referrer;

// このインターフェイスは HTMLElement 型の属性 body を持つ。
         attribute  HTMLElement          body;

// このインターフェイスは HTMLCollection 型の読取専用属性 images を持つ。
readonly attribute  HTMLCollection       images;
ECMAScript では、属性は property として実装される。
詳細は OMG CORBA 2.4.2 Specification の 第3章 "OMG IDL Syntax and Semantics" を参照のこと。

Issued: / Revised: / All rights reserved. © 2001-2017 TAKI