code: public static boolean isValidXmlNameStartChar(char ch, boolean colonEnabled)
      {
          if (ch == ':') {
              return colonEnabled;
          }
          return (ch >= 'A' && ch <= 'Z')
              || ch == '_'
              || (ch >= 'a' && ch <= 'z')
              || (ch >= 0xC0 && ch <= 0xD6)
              || (ch >= 0xD8 && ch <= 0xF6)
              || (ch >= 0xF8 && ch <= 0x2FF)
              || (ch >= 0x370 && ch <= 0x37D)
              || (ch >= 0x37F && ch <= 0x1FFF)
              || (ch >= 0x200C && ch <= 0x200D)
              || (ch >= 0x2070 && ch <= 0x218F)
              || (ch >= 0x2C00 && ch <= 0x2FEF)
              || (ch >= 0x3001 && ch <= 0xD7FF)
              || (ch >= 0xF900 && ch <= 0xFDCF)
              || (ch >= 0xFDF0 && ch <= 0xFFFD)
              || (ch >= 0x10000 && ch <= 0xEFFFF);
      }
docs: Returns <code>true</code> if the given value is a valid first character
  of an XML name.
  <p>
  See http://www.w3.org/TR/xml/#NT-NameStartChar.
  </p>
  
  @param ch the character to check
  @param colonEnabled if this flag is <code>true</code> then this method
  accepts the ':' symbol.
  @return <code>true</code> if the given value is a valid first character
  for an XML name