[1] [[DOM]] [[実装]]の混合について。 [2] 仕様書: -[DOM 3] 1.3.5 Mixed DOM Implementations [3] XML 語彙を開発するとその語彙の XML 実現値を操作するために特化した API を定義することがよく行われていまして、 [[MathML]] や [[SVG]] のように通常は DOM を拡張することで実現しています。 SVG や MathML の実現値はしばしば XHTML など他の語彙の文書に埋込まれます。 構文的には [[XML名前空間]]を使って語彙を統合できるのですが、 DOM 2 では異なる DOM 実装を一つの応用から同時に使うには問題があることがわかりました。 DOM 3 ではこの点が改良されています。 DOM 3 を実装する DOM 実装は、特定の DOM を実装する部分部品と DOM 界面を通じてシームレスに探索・操作することができるように協調することができるべきです。 物体に関する通常の[RUBYB[型変換][typecast]]操作は与えられた文書型について遺物 code が期待する界面に対応するべきです。実行時に結合された物体の複数の DOM 特別化から選択するためには型変換技術は適当ではないかもしれません。 すべてが束縛の物体模型で定義された通り同じ物体の一部ではないかもしれないからです。 衝突が一番はっきりしているのは [CODE(DOM)[[[Document]] 物体で、 同じ種類の語彙で構成される文書では、どの要素も [CODE(DOM)[Document]] 物体と所有者が同じですから、特別化サービスや特別化節の構築を [CODE(DOM)[Document]] に気兼ねなく頼むことができます。 ところが、異なる種類の語彙が混ざっている場合は、 それぞれの要素が異なる特別化サービスや API を期待するのですが、文書階層の所有者や[[根]]はあくまで1つしかないのです。