* 文書物体模型 [1] [DFN[文書物体模型]] ([DFN[Document Object Model]], [CODE[DOM]]) は、[[プログラム言語]]などを介して [[HTML]] や [[XML]] などの文書や、 [[WWWブラウザ]]などの[[利用者エージェント]]の機能などにアクセスするための抽象的な[[界面]]や処理模型などの総称です。 [[#comment]] ** 水準 [9] DOM の仕様には[DFN[[RUBYB[水準] [level]]]]があります。 :[[DOM水準0]]:[[Netscape Navigator 3]] と [[WinIE 3]] が実装していた [[DHTML]] 機能のうちの object model を指します。標準仕様は存在しませんし、 [[NN]] と IE で非互換な部分も少なくありません。 :[[DOM水準1]]:[[HTML]] 文書や [[XML]] 文書から作った[[文書木]]を扱うためのごく基本的な機能をまとめた仕様です。 DOM 水準 0 の一部を取り込んでいますが、 ブラウザに大きく依存する部分は含まれていません。 :[[DOM水準2]]:HTML 文書や XML 文書 [WEAK[([[XML名前空間]]を使ったものを含みます。)]] から作った文書木や [[CSS]] [[スタイル・シート]]などを扱うための機能をまとめた仕様です。 細かな部分を除いて DOM 水準 1 の上位互換です。 :[[DOM水準3]]:HTML 文書や XML 文書 [WEAK[(XML 名前空間を使ったものを含みます。)]] の文書木を操作したり、 [[DTD]] や [[XML Schema]] に基づいて検証したりするための機能をまとめた仕様です。 XML 文書を読み書きすることもできます。 DOM 水準 2 に対する追加機能として設計されています。 水準は実際には実装の難易度や操作の自由度とはあまり関係が無く、 歴史的な順序関係を示しているに過ぎません。また、 高水準の仕様が低水準の仕様をすべてカバーしているわけではありません。 水準がついている中核部分の仕様とは別に、 [[SVG]] のような[[マーク付け言語]]などに対応する仕様もあります。 [[#comment]] ** 標準化 [2] [[DOM]] の中核部分の[[標準化]]は [[W3C]] が行っています。 詳しくは W3C の DOM に関するサイト [CITE[W3C Document Object Model]] をご覧下さい。 [8] W3C が制定した DOM 関係の仕様書は [CITE[Document Object Model (DOM) Specifications]] にその一覧があります。 - [3] ''Document Object Model (DOM) Level 1 Specification'' - [6] ''Errata in REC-DOM-Level-1-19981001'' [14] [CITE[XML Schema API]] [[XML Schema]] に access するための界面です。 DOM じゃないですが、実際上 DOM です。 ([[名無しさん]]) [15] [CITE[System and Environment Framework]] ([[名無しさん]]) [16] [CITE[XPath Expressions in XForms]] ([[名無しさん]]) [17] [CITE[CGM Open - Techncial]] [[WebCGM]] DOM は開発中。 ([[名無しさん]] [WEAK[2004-09-26 14:51:58 +00:00]]) [18] [[CML]] の DOM は Java の reference 実装だけで IDL がない模様。 ([[名無しさん]]) [19] ''Voice Extensible Markup Language (VoiceXML) 2.1'' [[VoiceXML 2.0]] の次の版ですが、 DOM 的ポイントは、 - DOM 水準 2 読取専用部分集合の ECMAScript 束縛が定義されている。 -- ただし、 [CODE(XML)[[[data]]]] 要素で XML 文書を参照した時に使えるだけ。 VoiceXML 文書本体は、相変わらず独自なもののみ。 - [CODE(XML)[[[access-control]]]] 処理指令による DOM 木への access 制御が定義されている。 -- 但し、ホスト名による all or nothing の制御しかできない。 VoiceXML の [CODE(XML)[data]] に使う限りほとんど面白味がないような。 DOM の access 制御は汎用化された仕様が独立にあっても良いと思うがどうよ? ([[名無しさん]]) [20] とはいうものの W3C の DOM 担当のところは完全に maintainance mode っぽいからなー (これ以上仕様作っても誰も実装しなさそうだし) と思って ''Document Object Model Activity Statement'' を読んでみる。 DOM 活動には現在 DOM [[IG]] 1つだけがあるらしい。 DOM IG の憲章は6月で期限切れと書いてあるが・・・憲章がない。探してみたけど見つからない。非公開なのか? DOM IG は Public Page もないみたいだし (DOM Activity と一体なのか)、 今何やってるんだろうね? ([[名無しさん]] [WEAK[2004-11-17 02:03:22 +00:00]]) [22] Digest Values for DOM (DOMHASH) [27] [CITE[CSS3 module: Presentation Levels]] ([[名無しさん]]) [28] >>22 [[RFC 2803]] ([[名無しさん]]) [29] >>22,>>28 I-D 00 では IDL への追加提案が載ってて、 I-D 01 では Java 束縛への追加提案に変わってて、 RFC ではなんにもなくなっているのがなんとも(w ([[名無しさん]]) [30] [CITE[jp.go.aist.gda.dom]] [[GDA]] 向けに拡張された DOM の実装。 ([[名無しさん]]) - [10] ''Document Object Model (DOM) Requirements'' [31] = [CITE[Level 2 DOM Last Call Disposition of Comments]] (DOM水準2 LC 期間) = [CITE[Level 2 DOM Candidate Recommendation Disposition of Comments]] (DOM水準2 CR 期間) = [CITE[Level 2 DOM Candidate Recommendation Disposition of Comments]] (DOM水準2 CR2 期間) = [CITE[DOM Level 2 HTML Issues List]] (DOM水準2 HTML LC 期間) = [CITE[DOM Level 2 HTML Candidate Recommendation Issues List]] (DOM水準2 HTML CR3 期間) = [CITE[DOM Level 3 Core Issues List]] (DOM水準3 中核 [ABBR[LC] [Last Call]] 期間) = [CITE[DOM Level 3 Load and Save Issues List]] (DOM水準3 LS LC 期間) = [CITE[DOM Level 3 Validation Issues List]] (DOM水準3 検証 LC 期間) = [CITE[DOM Level 3 Events Issues List]] (DOM水準3 事象 LC 期間) = [CITE[DOM Level 3 XPath Issues List]] (DOM水準3 XPath LC 期間) = [CITE[Candidate Recommendations DOM Level 3 Issues]] (DOM水準3 中核・LS CR 期間) = [CITE[DOM Level 3 Validation Issues List]] (DOM水準3 検証 CR 期間) = [CITE[DOM Level 3 Issues List]] (DOM水準3 中核・LS [ABBR[PR] [勧告提案]] 期間) - [CITE[DOM Level 3 Core Issues List]] (DOM水準3 勧告後) - [CITE[DOM Issues list]] > This document is a "wish list" of enhancements to and concerns about the DOM that were not addressed in Level 1, Level 2, or Level 3. Note that the DOM Working Group has not committed to work on most of these points. ([[名無しさん]]) [33] [DASE] [CITE[DTV A S E L 1 (DASE-1) P 2: D A E ATSC Standard]] は DOM 水準 0 の機能の一部を標準化しています。 ([[名無しさん]] [sage]) [34] [DDE] [CITE[Declarative Data Essence -- Transitional]] は DOM の subset と少々の拡張からなる profile です。 ([[名無しさん]] [sage]) [35] SMPTE 366M-2002, [CITE[Television ― Declarative Data Essence ― Document Object Model Level 0 (DOM-0) and Related Object Environment]] というのがあるそうですが、有料です。 ([[名無しさん]] [sage]) [36] ECMAScript Mobile Profile は [[DOM水準0]] を含む [[DOM]] の profile をも規定しています。 ([[名無しさん]] [sage]) [38] [[XHTML 1.0]] の互換性指針には [[DOM]] に関する言及があります。 - [[XHTML 1.0]] -- [CSECTION[C.11. Document Object Model and XHTML]] (参考) ([[名無しさん]] [sage]) [39] -[CITE[SVG WG: Charter]] -[CITE[SVG Roadmap]] [[DOM水準3]] の事象と XPath は DOM WG が諦めて WG Note にしてしまいましたが、 いつのまにか SVG WG が続きを担当することになっていたそうです。 で、そろそろ PR が出るはずですが・・・でませんねぇ(藁 ([[名無しさん]] [WEAK[2005-04-08 09:18:44 +00:00]]) [[#comment]] * DOM data model & XPath data model [26] [CITE[Document Object Model (DOM) Requirements]] , (両版とも該当部分は同内容) XPath in DOM の新しい WG を作るという提案があったそうですが、却下されたそうで、 結局従来の DOM WG で作業していたそうです。 両データ・モデルの関係についての極簡単な考察が述べられています。 [[XPath 2.0]] を待つべきかどうかという問題も提示されています。 [23] [CITE[XSL Transformations (XSLT) Version 1.1]] (2001年8月作業原案) は XPath の拡張関数を実装する [CODE(XSLTe)[[VAR[xslt:]][[script]]]] 要素型を定義しており、それとともに DOM 束縛も定義しています。 それには DOM と XPath の data model の対応も含まれています。 [[XSLT 1.1]] は結局 [[WD]] のまま放棄され、 [[XSLT 2.0]] の開発が続けられていますが、今のところ XSLT 2.0 に同様の機能はないようです。 [24] [CITE[XPath Expressions in XForms]] ([[XForms 1.0]]: 2003年10月勧告) XForms は XPath も DOM 事象もふんだんに用いているのですが、 XPath 式と DOM 物体が直接かかわりあう場面がないため、 両データ・モデルの関係についての規定はありません。 [25] [CITE[DOM Level 3 XPath]] (2004年2月作業部会ノート) XPath を DOM に取り入れるために一部データ・モデルを修正しています。 この仕様自体は十分な実装が期待できないため勧告になりませんでした。 Req. では XPath 2.0 データ・モデルについて触れられていましたが、 結局 XPath 1.0 しか扱っていません。 XPath 2.0 を待っていると作業が遅れに遅れた上に、 極めて強い型付きの XPath 2.0 と普通程度に強い型付きの DOM の統合は困難を極めたかもしれません。 [[#comment]] ** 実装 - [4] ''The DOM in Mozilla'' - [12] ''Document Repository'' : Mozilla の DOM の IDL がみれる [37] [CITE[SourceForge.net: Project Info - XPath over HTML for MSIE]] [[WinIE]] で [[DOM水準3]] [[XPath]] を使うためのスクリプト。 ([[名無しさん]]) [[#comment]] ** メモ - [5] 正直、 DOM が [[UTF-16]] 前提にしてるのは問題だと思うのですが。 [[length]] は UTF-16 での文字列のオクテット長の半分 (16ビット1バイトのバイト数) を返さないといけないらしいですが、文字列が UTF-16 でない言語では役に立たないのでして。ほんとに言語独立性を考えたのか小一時間(ry - [7] ''Ginga's Translations Web Site'' - [11] ''MetaGraphic Cell B4F - Scripts'' [13] DOM仕様書入門? [Q[DOM入門に仕様書を推奨する記事]]です。 DOM の仕様書を初めて読むときには参考になるかもしれません。 ([[名無しさん]] [WEAK[2004-03-17 01:46:35 +00:00]]) [21] さてそれで偶々気づいたのだけど、 DOM の頁の幾つかは最初の目次の部分をスクリプト で自動生成している。今まで全然気づかなかったぞ。 [ABBR[GJ] [Good job]]! ([[名無しさん]] [WEAK[2004-11-17 02:09:32 +00:00]]) [[#comment]] * ダウンロード専門会員 [32] 一部の[[パソコン通信]]の掲示板などで使われていた隠語で、 [Q[Download Only Member]] を略して [DFN[DOM]] と呼んでいたそうです。 会員相互の対話によって成立している場所において、 ただ利益だけを一方的に享受 (特に、用意されている[[ファイル]]を[[ダウンロード]]) するだけの会員を揶揄してそう呼んでいます。類義語に [ABBR[[[ROM]]] [Read only member]] があります。 [[#comment]] * memo