Provider of QNames, possibly from a cache of QNames. Typical implementations cache QName instances, to prevent any explosion
of equal QName instances, thus unnecessarily increasing the memory footprint.
Implementation notes
It may seem rather lame that only the global QNameProvider variable can be updated. On the other hand, implicit QNameProvider
parameters in many places in the API would change the API quite a bit. These implicit parameters would be implementation
details leaking into the API. It was therefore decided not to introduce those implicit parameters, with the exception of only
a few places inside implementation code in the library.
Provider of QNames, possibly from a cache of QNames. Typical implementations cache QName instances, to prevent any explosion of equal QName instances, thus unnecessarily increasing the memory footprint.
Implementation notes
It may seem rather lame that only the global QNameProvider variable can be updated. On the other hand, implicit QNameProvider parameters in many places in the API would change the API quite a bit. These implicit parameters would be implementation details leaking into the API. It was therefore decided not to introduce those implicit parameters, with the exception of only a few places inside implementation code in the library.