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.