code: protected final boolean isNameStartChar(char c)
      {
          /* First, let's handle 7-bit ascii range (identical between xml
           * 1.0 and 1.1)
           */
          if (c <= 0x7A) { // 'z' or earlier
              if (c >= 0x61) { // 'a' - 'z' are ok
                  return true;
              }
              if (c < 0x41) { // before 'A' just white space
                  return false;
              }
              return (c <= 0x5A) || (c == '_'); // 'A' - 'Z' and '_' are ok
          }
          /* Ok, otherwise need to use a big honking bit sets... which
           * differ between 1.0 and 1.1
           */
          return mXml11 ? XmlChars.is11NameStartChar(c) : XmlChars.is10NameStartChar(c);
      }
docs: Method that can be used to check whether specified character
  is a valid first character of an XML 1.0/1.1 name; except that
  colon (:) is not recognized as a start char here: caller has
  to verify it separately (since it generally affects namespace
  mapping of a qualified name).