public static boolean isQname(String s) {
    int len = s.length();
    if (len == 0)
      return false;
    if (!isNameStartCharNs(s.charAt(0)))
      return false;
    for (int i = 1; i < len; i++) {
      char c = s.charAt(i);
      if (!isNameChar(c)) {
        if (c == ':' && ++i < len && isNameStartCharNs(s.charAt(i))) {
          for (++i; i < len; i++)
            if (!isNameCharNs(s.charAt(i)))
              return false;
          return true;
        }
        return false;
      }
    }
    return true;
  }