[4] [[DOM]] [CODE(DOMi)@en[[[Document]]]] の [DFN[[CODE(DOMa)@en[[[implementation]]]]]] [[属性]]は、その[[文書]]に関連付けられた [CODE(DOMa)@en[[[DOMImplementation]]]] [[オブジェクト]]を返します。 * 仕様書 [REFS[ - [3] [CITE@en-US[DOM Standard]] ([TIME[2012-11-23 14:12:13 +09:00]] 版) ]REFS] * 取得器 [5] [[取得器]]は、その[[文書]]に関連付けられた [CODE(DOMi)@en[[[DOMImplementation]]]] [[オブジェクト]]を返さなければ[['''なりません''']] [SRC[>>3]]。 * 設定器 [6] この[[属性]]は[[読取専用]]です。 * 歴史 ** W3C DOM [8] [CODE(DOMa)@en[[[implementation]]]] [[属性]]および [CODE(DOMi)@en[[[DOMImplementation]]]] [[界面]]は [[DOM1]] で導入されました。 [1] 属性 [CODE[[VAR(DOM)[[[Document]]]].'''[CODE(DOM)[implementation]]''']] は、その[[文書]][[オブジェクト]]を処理している [[DOM]] 実装 [WEAK[(の [CODE(DOM)[[[DOMImplementation]]]] [[オブジェクト]])]] を返す [SRC[>>7]] とされていました。 [REFS[ -[7] [CITE@en[Document Object Model (Core) Level 1]] ]REFS] [2] また [[DOM応用]]は複数の [[DOM]] 実装の [[DOM]] [[オブジェクト]]を使って構わない [SRC[>>7]] とされていました。 [9] [[DOM0]] では [CODE(DOMi)@en[[[Document]]]] は予め1つ存在するものでしたが、 [[Java]] 等の [[Webブラウザー]]以外も考慮した [[W3C]] [[DOM]] では [CODE(DOMi)@en[[[Document]]]] は [[DOM]] 実装によって作られ複数存在し得るものと考えられていたようです。 また複数の [[DOM]] 実装が混在することも [[DOM1]] 時点から考慮されていました (これは [[DOM3]] で極まることになります)。 [CODE(DOMi)@en[[[DOMImplementation]]]] は[[シングルトン]]として実装されることを想定していたのでしょう。 ** DOM4 [10] [[DOM4]] においては [CODE(DOMi)@en[[[DOMImplementation]]]] は [CODE(DOMi)@en[[[Document]]]] ごとに存在するように改められました。従って複数 [CODE(DOMi)@en[[[DOMImplementation]]]] [[オブジェクト]]から複数個 [CODE(DOMi)@en[[[Document]]]] を作ったとしても、それらで [CODE(DOMi)@en[[[DOMImplementation]]]] は共有せず、それぞれのために新たに作られることとなります。 (これは現実の [[Webブラウザー]]の挙動を仕様化したものと思われます。)