[1] 属性 Document.
(読取り専用。) は、当該文書の文書型宣言です。doctype
XML 文書で、文書型宣言がなされていた場合には、
DocumentType
が返されます。
文書型宣言が無い場合や、 HTML 文書の場合は、
null
が返されます。
[2] DOM 1 の >>2 の規定は、文書型宣言のある HTML 文書の存在を黙殺している点で問題があります。 しかしながら、 HTML (SGML な。) の文書型宣言も扱うとなると、 SGML の DTD の物体モデルにまで立入る必要が出てきますから、仕様策定や実装の労力が激増します。 妥協点として妥当なところかもしれません。
[4] >>2 でも、 DOM 2 までは文書型定義は具体的には扱ってないからその問題は大して存在しないような。
ほんとの理由は、 HTML を SGML 的に扱ってる UA がほぼ皆無だから、 DTD を扱うことに意味は無いし、 そんなことしてる UA なんてないだろう、っていうことでしょうな。
[3] DOM 1 は文書型定義の編集に対応していませんから、 この属性を設定することは出来ません (し、その内容をいじることも出来ません)。
[5]
DOM水準1と DOM水準2は、 HTML 文書では常に null
だとしていました。
(名無しさん)
[6]
DOM水準3は、 HTML 文書に実際に文書型宣言があるかに関わらず、
DocumentType
節点を返してもよいとしています。
(名無しさん)
[7]
不正な文書で、文書要素より後に
DocumentType
があったり、
複数 DocumentType
があったりする場合にどうなるのかは不明です。
(名無しさん)