DOM interfaces are represented as generic references to different implementations of the DOM specifications. They are parameterized by Node, which supports various specializations and instantiations. Of them, the most important is
xmlnode that corresponds to the current C implementation.
These generic references do not have a
NULL-like value. Any implementation should never create a stateless reference. If there is need to signal that something has no state, an exception should be thrown.
Many methods might throw the
SYNTAX_ERR exception, if the DOM tree is incorrectly formed, or
UNDEFINED_ERR, in the case of wrong parameters or unexpected
NULL pointers. If these are the only errors that a particular method might throw, it is not reflected in the method signature.
Actual DOM trees do not dependent on the context (
TCtx). However, manipulations on DOM trees in the current,
xmlctx based implementation require access to the current context (
TCtx). This is accomplished by passing the context pointer to the constructor of DOMImplRef. In multithreaded environment
DOMImplRef is always created in the thread context and, so, has the pointer to the right context.
DOMImplRef providea a way to create DOM trees. DomImplRef is a reference to the actual
DOMImplementation object that is created when a regular, non-copy constructor of
DomImplRef is invoked. This works well in multithreaded environment where DOM trees need to be shared, and each thread has a separate TCtx associated with it. This works equally well in a single threaded environment.
DOMString is only one of encodings supported by Oracle implementations. The support of other encodings is Oracle's extension. The
oratext* data type is used for all encodings.