DOMインタフェースは、DOM仕様の様々な実装に対する汎用参照として表されます。DOMインタフェースはノード別にパラメータ化されるため、各種の特殊化およびインスタンス化がサポートされます。そのうち最も重要なのはxmlnode
で、これは現在のC実装に対応します。
これらの汎用参照はNULL
のような値になることはありません。実装が状態のない参照を作成することはありません。状態がないことを通知する必要がある場合、例外がスローされます。
多くのメソッドでは、DOMツリーの構成が誤っている場合はSYNTAX_ERR
例外をスローし、不正なパラメータまたは予期しないNULL
ポインタが使用されている場合はUNDEFINED_ERR
例外をスローします。個別のメソッドがスローするエラーがそれのみである場合は、メソッド・シグネチャには反映されません。
実際のDOMツリーはコンテキスト(TCtx
)に依存しません。ただし、現行のxmlctx
ベースの実装でDOMツリーを操作するには、現行のコンテキスト(TCtx
)へのアクセス権が必要です。そのためには、コンテキスト・ポインタをDOMImplRefのコンストラクタに渡します。マルチスレッド環境では、DOMImplRef
は必ずスレッド・コンテキスト内で作成されるため、正しいコンテキストへのポインタを持っています。
DOMツリーはDOMImplRef
により作成できます。DomImplRefは、DomImplRef
の通常の非コピー・コンストラクタが起動された場合に作成される、実際のDOMImplementation
オブジェクトに対する参照です。これは、DOMツリーを共有する必要があるマルチスレッド環境で適切に機能し、各スレッドに個別のTCtxが関連付けられます。シングル・スレッド環境でも同じく適切に機能します。
DOMString
は、Oracle実装でサポートされるエンコーディングの1つにすぎません。Oracleでは機能を拡張して他のエンコーディングもサポートしています。oratext*
データ型はすべてのエンコーディングに使用されます。