Subclasses may overwrite those methods with more efficient implementations
e.g. using caching. This class also adds optional support for
NamespaceListeners. To enable listener support call the constructor
with supportListeners set to true. The default
constructor will not enable listener support and all listener related
methods will throw an UnsupportedOperationException in that case.