[1] [DFN[DOM3]] は、[[DOM]] の第3世代仕様群でした。

* 仕様

[15] 完成したとされる DOM3 仕様には次のものがありました。

[FIG(list)[
- [2] [[DOM3中核]] ([[DOM3中核]] + [[DOM3 XML]]) (→ 現 [[DOM Standard]])
- [3] [[DOM3 LS]] (→ 事実上廃案)
- [4] [[DOM3妥当性検証]] (→ 事実上廃案)
]FIG]

[16] 形式的に [[W3C勧告]]になったとはいえ、また [[Java]] でいくらか実装されたとはいえ、
これらはほとんど [[Webブラウザー]]に実装されることはありませんでした。一部の
[[Webブラウザー]]が [[DOM3 Core]] や [[DOM3 LS]] の一部機能を実装していましたが、
[[相互運用性]]が低く利用もされ(でき)なかったため、後の [[DOM Standard]]
により [[DOM3 Core]] の新機能の大部分と [[DOM3 LS]] の全部は廃止されています。

;; [17] なお [[DOM3 LS]] の [[CR]] に存在し後に[[廃止]]され[[W3C勧告]]版には含まれなかった
[CODE(JS)@en[[[document.load]]]] は複数の [[Webブラウザー]]が実装していたので、
[[HTML Standard]] で改めて規定されています。同じく [[DOM3 LS]] の [[CR]]
にあって削除された [CODE(DOMa)@en[[[markupContent]]]] の着想元と思われる
[CODE(DOMa)@en[[[innerHTML]]]] も後に [[WHATWG]] で標準化されています。

[18] 次の DOM3 仕様は [[DOM WG]] では完成せずに放棄されましたが、後に他の [[WG]]
で開発が再開されました。しかし [[W3C勧告]]にはなっていません。

[FIG(list)[
- [5] [[DOM3事象]] (→ 現 [[DOM Standard]]、[[UI Events]])
- [10] [[DOM3 XPath]] (→ 標準不在)
]FIG]

[20] [[DOM3 Events]] の新機能の大部分は [[Webブラウザー]]にはやはり実装されず、
開発再開後に廃止されています。

[19] 次の DOM3 仕様は開発の初期の段階で放棄されています。

[FIG(list)[
- [6] [[DOM3抽象スキーマ]]
- [7] [[DOM3表示および書式付け]]
]FIG]

* 新機能の概要

[23] 詳細は各仕様の項をご覧ください。

[24] [[XML情報集合]]との整合性のための機能が [[DOM3 Core]]、
[[DOM3 LS]]、[[DOM3 XPath]] で追加されています。元々 [[DOM]] と [[XPath 1.0データモデル]]
(と [[SAX]]) の[[和集合]]に近い形で開発された [[XML情報集合]]が [[XML]]
関連仕様の中心であると (この時代には) 考えられたため、
[[DOM]] に欠けていた機能が追加されました。それに基づき [[XML文書]] (テキストまたはバイナリー)
との相互変換や [[XPath 1.0]] の評価の [[API]] が規定されています。

;; [25] しかしそのほとんどは理論上の整合性のための機能で[[著者]]が必要としていなかったので、
[[Webブラウザー]]にも実装されませんでした。

[26] [[XML Schema]] を中心とする[[スキーマ]]や [[PSVI]]
に関する機能が [[DOM3 Core]]、[[DOM3 LS]]、 [[DOM3 Validation]] に追加されています。

;; [27] しかし[[著者]]に必要な機能でなかったので、 [[Webブラウザー]]には無視されています。

;; [28] [[スキーマ]]自体を扱う [[API]] も [[DOM1]] 時代から構想があり、
[[DOM3 AS]] として [[WD]] が出版されていますが、結局放棄されています。
なおその [[XML Schema]] 限定の完成形が [[XML Schema API]] として 
[[Member Submission]] になっています。

[29] [[Java]] 環境で複数の [[DOM実装]]を組み合わせて使うための機能が [[DOM3 Core]]
に追加されています。

;; [30] [[Webブラウザー]]で必要な機能ではなかったので、実装されていません。

[31] [[XML名前空間]]風の[[名前空間]]の仕組みを導入したり、
[[VoiceXML]] のイベントモデルとの統合を試みたりする拡張が
[[DOM3 Events]] に追加されています。

;; [32] 理論的整合性のための機能でしかなかったので、 [[DOM WG]]
解散後に破棄されています。

* 歴史

[8] [[DOM3]] は [[DOM WG]] が2000年代初め頃に開発していましたが、 >>2-4 の3つだけを完成させて残りは断念して解散してしまいました。

[9] 残りは長らく放置されていましたが、 [[DOM3 Events]] については [[SVG WG]]、[[Web APIs WG]]
を経て [[WebApps WG]] に引き取られて作業が再開されました。00年代も半ばのことでした。

[11] ところが再開された [[DOM3 Events]] も進行は大変遅く、編集者が何度も変わっています。
(詳しくは [[DOM3 Events]] の項を参照。)

[12] [[DOM3]] の完成したことになっている >>2-4 も [[Webブラウザー]]への実装は進まず、むしろ [[DOM2]]
から追加された部分のほとんどは [[Java]] によりマッチした機能や [[XML Schema]] との整合性のための機能など
[[Web]] からは必要とされていないものばかりでした。

[13] そうした機能を除去して一から書きなおされた仕様が [[WHATWG]] で [[Web DOM Core]] としてまとめられ、 [[DOM]]、[[DOM4]]
を経て現在は [[DOM Standard]] となっています。これにより [[DOM3]] は事実上役目を終えた状態になっています。

;; [[DOM Standard]] を参照。

[14] ただし [[WebApps WG]] は [[DOM4]] と並行して [[DOM3 Events]] の作業をまだ続けており、特に [[UIEvents]]
に相当する部分は [[DOM Standard]] にも含まれていないので代替となる仕様が存在していない状態でした。
また [[DOM3 XPath]] も代替が存在せず、およそ10年間改訂されていないものの [[DOM3]] が最新となっています。

;; [[DOM XPath]] を参照。

[21] その後 [[DOM3 Events]] の [[DOM Standard]] に含まれない部分の開発が積極的になり、
2015年には改めて [[UI Events]] に改称されています。

;; [[UI Events]] を参照。

[22] これにより実質的に標準不在状態の [[DOM XPath]] を除き、 [[DOM3]]
はすべて事実上現行仕様では無くなりました。


[33] [CITE@en[Mark ElementTraversal Rec as obsolete · Issue #96 · w3c/WebPlatformWG]]
([TIME[2018-04-05 14:40:16 +09:00]])
<https://github.com/w3c/WebPlatformWG/issues/96>