This led me to believe a qualified name is expected.
Maybe it is, but you don't need to look for its separator ahead with wcschr(). Reader has something for qname that would be better to duplicate here - check prefix, skip separator, check local name. Duplicated separators will be caught by this.