Skip Headers

Oracle® XML API Reference 10g Release 1 (10.1) Part No. B10789-01 |
| Contents

## Using Dom

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.