Simple QName provider using an immutable cache.
Simple QName provider using an immutable cache. It can be long-lived.
Trivial, non-caching, QName provider.
"Updatable" QName provider.
The implicit global QNameProvider is by default a "trivial" QNameProvider, but can be updated.
The implicit global QNameProvider is by default a "trivial" QNameProvider, but can be updated.
Being a val holding an UpdatableQNameProvider, instead of a var holding any QNameProvider, the identifier
QNameProvider.globalQNameProvider
is stable, and therefore its members can be imported.
Be careful: this global instance should be updated only during the "startup phase" of the application. Also be careful to choose an instance that is thread-safe and designed for a "long life" (unlike caching providers that can only grow a lot).