<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><section><h1>DOMImplementationRegistry 物体 (DOM)</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM 3</anchor> 未満では、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOM</anchor> 仕様書は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">界面</anchor>だけを規定しており、
DOM <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">応用</anchor>は処理を開始する時に実装依存の code を書かなければなりませんでした。
これでは移植性に欠けるなどの問題がありました。そこで、
DOM 3 では <dfn><code class="DOM">DOMImplementationRegistry</code></dfn>
物体が導入されました。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> 仕様書:<ul><li>[DOM 3] 1.3.7 Bootstrapping
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="DOM3:&quot;Core/core.html#Bootstrap&quot;" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="IW">IW:DOM3:&quot;Core/core.html#Bootstrap&quot;</anchor-external></li></ul></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> <code class="DOM">DOMImplementationRegistry</code> 物体には、
応用が<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">機能</anchor>に基づいて実装を探すことのできる関数が用意されることになっています。
ただし、この辺りの作法はどうしても言語依存にならざるを得ませんから、
DOM 仕様書本体では詳しく規定されていません。
(但し <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Java</anchor> 束縛と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ECMAScript</anchor> 束縛では具体的に規定されています。)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> 成員:<table><tbody><tr><td>種類</td><td>名前</td><td>説明</td></tr><tr><td>メソッド</td><td><code class="DOMm"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">getDOMImplementation</anchor></code></td><td>機能群文字列を受付る。適当な <code class="DOMi"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOMImplementation</anchor></code> が見つかるまで既知の <code class="DOMi"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOMImplementationSource</anchor></code> に依頼して探しまくってそれを返す。</td></tr><tr><td>メソッド</td><td><code class="DOMm"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">getDOMImplementationList</anchor></code></td><td>機能群文字列を受付る。<code class="DOMi">DOMImplementationSource</code> に依頼して適当な <code class="DOMi">DOMImplementation</code> をすべて探す。</td></tr></tbody></table></p><p>2つのメソッドは <code class="DOMi"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">DOMImplementationSource</anchor></code>
で規定されているものと同じです。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> <code class="DOM">DOMImplementationRegistry</code> には任意個の
<code class="DOM">DOMImplementationSource</code> 物体を登録できます。
1つの<code class="DOM">DOMImplementationSource</code> は任意の個数の
<code class="DOM">DOMImplementation</code> 唯一物体を返しても構いませんし、
新しい <code class="DOM">DOMImplementation</code> 物体を構築しても構いません。
どちらかは要求された機能が <code class="DOM">DOMImplementation</code>
の特別化状態を必要としているかによります。</p><form xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" ref="comment"></form></section><section><h1>メモ</h1></section></body></html>