* DOMImplementationRegistry 物体 (DOM)

[1] [[DOM 3]] 未満では、 [[DOM]] 仕様書は[[界面]]だけを規定しており、
DOM [[応用]]は処理を開始する時に実装依存の code を書かなければなりませんでした。
これでは移植性に欠けるなどの問題がありました。そこで、
DOM 3 では [DFN[[CODE(DOM)[DOMImplementationRegistry]]]]
物体が導入されました。

[2] 仕様書:
- [DOM 3] 1.3.7 Bootstrapping
<IW:DOM3:"Core/core.html#Bootstrap">

[3] [CODE(DOM)[DOMImplementationRegistry]] 物体には、
応用が[[機能]]に基づいて実装を探すことのできる関数が用意されることになっています。
ただし、この辺りの作法はどうしても言語依存にならざるを得ませんから、
DOM 仕様書本体では詳しく規定されていません。
(但し [[Java]] 束縛と [[ECMAScript]] 束縛では具体的に規定されています。)

[4] 成員:
,種類,名前,説明
,メソッド,[CODE(DOMm)[[[getDOMImplementation]]]],機能群文字列を受付る。適当な [CODE(DOMi)[[[DOMImplementation]]]] が見つかるまで既知の [CODE(DOMi)[[[DOMImplementationSource]]]] に依頼して探しまくってそれを返す。
,メソッド,[CODE(DOMm)[[[getDOMImplementationList]]]],機能群文字列を受付る。[CODE(DOMi)[DOMImplementationSource]] に依頼して適当な [CODE(DOMi)[DOMImplementation]] をすべて探す。

2つのメソッドは [CODE(DOMi)[[[DOMImplementationSource]]]]
で規定されているものと同じです。

[5] [CODE(DOM)[DOMImplementationRegistry]] には任意個の
[CODE(DOM)[DOMImplementationSource]] 物体を登録できます。
1つの[CODE(DOM)[DOMImplementationSource]] は任意の個数の
[CODE(DOM)[DOMImplementation]] 唯一物体を返しても構いませんし、
新しい [CODE(DOM)[DOMImplementation]] 物体を構築しても構いません。
どちらかは要求された機能が [CODE(DOM)[DOMImplementation]]
の特別化状態を必要としているかによります。

[[#comment]]

* メモ