Java DOM API
by Akhil Arora <akhil.arora@sun.com>

Java DOM APIはブラックウッド・プロジェクトの一部です。 それはドキュメント・オブジェクト・モデル(DOM)レベル1 仕様で指定された、Java bindingsのインプリメンテーションです。コア DOMインターフェースだけがインプリメントされます。

  • なぜ?(Why?)

  • Java DOM APIの主要な目的は、JavaアプレットとPlugletsが埋め込みのドキュメントと相互に作用しそれを修正する事を許す事です。 アプレットは、例えばディスプレイエリアを持ちさえする必要がありません、 それはDOM操作によって単独でその仕事を行うことができます。

  • どうやって?(How?)

  • Java DOM APIは JNIを使用して、C++ coreDOM APIの上に非常に薄い層として書かれています。各Javaオブジェクトは対応する C++ coreDOMオブジェクトにメソッド呼び出しをすべて委任します。

  • Using the API

  • API は Java アプレット、 Gecko を埋め込む Java Pluglets と Javaアプリケーションによって使われるように意図されます。 API を使う時に念頭におくべき若干の重要なものが下にリストアップされます。

    • スレッドでの安全性(Thread safety)

    • これらの呼び出しが main layout thread から行われるので、アクセスし、DocumentLoadListenerインターフェースのメソッドの内部から DOMを操作することは安全です。 他のスレッドからアクセスしようとかのDOMを操作しようとすることは危険です。 私たちは nsISupports Proxies を使用して、この制限の近くで働くことができるかもしれません。 (We may be able to work around this limitation using nsISupports Proxies.)

    • Nullのリターン(Null returns)

    • APIユーザは、Node.getAttributes()のようなメソッドからの nullのリターンをチェックする必要があります。 ノードが属性を持っていない場合、nullオブジェクトは仕様に従って、0要素を備えた空の NamedNodeMapの代わりに返されるでしょう。