Gets an EName with the given namespace URI and local part
Gets an EName with the given optional namespace URI and local part
Gets an EName with the given local part, and without any namespace
Gets an EName parsed from the given string representation (in James Clark notation)
Provider of ENames, possibly from a cache of ENames. Typical implementations cache EName instances, to prevent any explosion of equal EName instances, thus unnecessarily increasing the memory footprint.
Implementation notes
It may seem rather lame that only the global ENameProvider variable can be updated. On the other hand, implicit ENameProvider 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.