Wraps a validator {@link XMLComponent} and isolates
it from the rest of the components.
For the performance reason, when a validator from Xerces is used
for a parser from Xerces, we will do "chating" by building an
XNI pipeline. This saves the overhead of conversion between
XNI events and SAX events.
However, if we just insert the validator component into the
parser pipeline, the {@link XMLComponentManager} that the parser
uses could change the way the validator works. On the other hand,
certain configuration (such as error handlers) need to be given
through a parser configuration.
To avoid this harmful interaction, this class wraps the validator
and behaves as an insulation. The class itself will implement
{@link XMLComponent}, and it selectively deliver properties to
the wrapped validator.
Since the exact set of properties/features that require insulation
depends on the actual validator implementation, this class is
expected to be derived to add such validator-specific insulation
code. |