code: protected QName _verifyQName(QName n)
          throws TypedXMLStreamException
      {
          String ln = n.getLocalPart();
          int ix = WstxInputData.findIllegalNameChar(ln, mCfgNsEnabled, mXml11);
          if (ix >= 0) {
              String prefix = n.getPrefix();
              String pname = (prefix != null && prefix.length() > 0) ?
                  (prefix + ":" +ln) : ln;
              throw _constructTypeException("Invalid local name \""+ln+"\" (character at #"+ix+" is invalid)", pname);
          }
          return n;
      }
docs: Method called to verify validity of the parsed QName element
  or attribute value. At this point binding of a prefixed name
  (if qname has a prefix) has been verified, and thereby prefix
  also must be valid (since there must have been a preceding
  declaration). But local name might still not be a legal
  well-formed xml name, so let's verify that.