[7] [DFN[DOM0]] ([DFN[DOM [RUBY[水準][レベル]@en[level]] 0]]) は、 主に [[Webブラウザー]]によって実装されている、[[Web]] [[利用者エージェント]]の[[プラットフォーム]] [[API]] の総称です。 [8] 長らく [[DOM0]] は標準不在の状況が続いていましたが、最近では [[Web Applications 1.0]] ([[HTML5]]) によって規定されています。 (もっとも、 WA1 では「[[DOM0]]」という語は使っていません。) * DOM0 API - [13] [CODE(DOMi)@en[[[Window]]]] ([[Web Applications 1.0]]) - [14] [CODE(DOMi)@en[[[Navigator]]]] ([[Web Applications 1.0]]) - [15] [CODE(DOMi)@en[[[History]]]] ([[Web Applications 1.0]]) - [16] [CODE(DOMi)@en[[[Location]]]] ([[Web Applications 1.0]]) - [17] [CODE(DOMi)@en[[[BarProp]]]] ([[Web Applications 1.0]]) - [20] [CODE(DOMi)@en[[[Screen]]]] ([[CSSOM View]]) - [21] [CODE(DOMi)@en[[[HTMLDocument]]]] ([[DOM1 HTML]] / [[DOM2 HTML]] / [[Web Applications 1.0]]) - [18] [CODE(JS)@en[[[navigator.mimeTypes]]]] - [19] [CODE(JS)@en[[[navigator.plugins]]]] - [22] [RUBYB[[[事象取扱器属性]]]@en[event handler attributes]] ([[HTML4]] / [[Web Applications 1.0]]) * 歴史 ** 「DOM0」の登場 [9] [[DOM1]] ではそれまで [[Webブラウザー]]で実装されていた [[JavaScript]] [[API]] のすべてが標準化されたわけではありませんでした (むしろ旧来の JS API と共通する部分の方が少なかったです)。 そのため、[[DOM1]] 以前の [[DOM]] ということでそれらは「[[DOM水準0]]」と呼ばれるようになりました。 [1] > [DFN[DOM [RUBYB[水準] [level]] 0]] とは、 [[NN]] 3.0 及び [[IE]] 3.0 で提供されていた機能の混合である。 ;; [CITE@en[Document Object Model (HTML) Level 1]] [10] [[DOM0]] の範囲はそもそも明確ではありません。 >>1 の [[DOM1]] の説明に従うなら NN3 と IE3 が実装していた機能ですが、その[[和集合]]なのか[[積集合]]なのか、 [[DOM0]] とそれ以外の [[JavaScript]] [[API]] の境界はどこなのか、 と細かいことを言えばきりがありません。現在では [[DOM1]] 以降に含まれる機能は「[[DOM0]]」 に含まないニュアンスで語られることが多いように感じますが、 >>1 では「[[DOM0]] との互換性」が語られており、元々は [[DOM1]] の機能を除外する意図はなかったようです。 また、時代が下ると [[NN4]] や [[IE4]] 以降で追加された非標準の機能を「[[DOM0]]」 に含めることも出てきました。 ** Web Applications 1.0 [11] [[W3C]] は [[DOM1]] 以後も「[[DOM0]]」の標準化に興味を示しませんでした。 しかし [[Webブラウザー]]は[[後方互換性]]のために引き続き [[DOM0]] [[API]] を実装し続ける必要がありました。そうはいっても [[DOM0]] はほとんど undocumented に近く、他の [[Webブラウザー]]の動作をリバースエンジニアリングするしかない状況でした。 ですから、大まかな動作こそ共通してはいても、すべてが実装されていなかったり、 細かな挙動が異なっていたりしていました。 [12] 2004年に設立された [[WHATWG]] は、[[Webアプリケーション]]のための新規 [[API]] を整備すると共に、既存の [[Webブラウザー]]の undocumented な [[API]] を標準化し、[[Web]] の[[相互運用性]]を向上させることを目指していきました。 [[DOM0]] の機能は当初は [[Web Controls 1.0]] で、後に [[Web Applications 1.0]] で文書化されていき、現在ではほとんどの [[API]] が明確に規定されるに至っています。 * メモ - [2] NN2/IE3 以来の [[JavaScript]] の[[オブジェクト]]を、幾分汎用化して標準化したのが [[DOM]](1) でしたが、[[文書木]]ではなく[[ブラウザ]]の[[表示]]に関する部分とか、ブラウザの実装に強く依存する部分とかは、その後の DOM 2 や DOM 3 でも完全には標準化されずに残っています。また、標準化は不適当として落とされた機能も少なくありません。そのような DOM の周辺でありながら DOM ではない機能を、総称して DOM 0 と呼びます。[WEAK[DOM 1 勧告後にブラウザ実装が追加した機能もあります。]] - [3] DOM 3 までで相当するほとんどの機能が標準化されるようですから、いずれ使われなくなっていくでしょうが、ブラウザ独自機能への access や互換性のために当分まだまだばりばり使われようことが予想されます。 - [4] このような事情ですから、 DOM 0 の仕様を規定した規格や DOM 0 という決まった集合があるわけではありません。敢えて言うなら、 [[Netscape]]/[[mozilla.org]] や [[M$]] の [[reference]] がそれに当たるでしょう。 [5] [CITE[The Object Models]] ([[名無しさん]]) [6] [CITE[mrclay.org » Archive » Kill these DOM0 shortcuts]] ([TIME[2007-06-26 22:21:27 +09:00]] 版) ([[名無しさん]] [WEAK[2007-06-26 13:25:59 +00:00]])