private bool IsNameStartChar(char ch)
{
return
(ch >= 'a' && ch <= 'z') ||
(ch >= 'A' && ch <= 'Z') ||
(ch == ':') ||
(ch == '_') ||
(ch >= '\u00C0' && ch <= '\u00D6') ||
(ch >= '\u00D8' && ch <= '\u00F6') ||
(ch >= '\u00F8' && ch <= '\u02FF') ||
(ch >= '\u0370' && ch <= '\u037D') ||
(ch >= '\u037F' && ch <= '\u1FFF') ||
(ch >= '\u200C' && ch <= '\u200D') ||
(ch >= '\u2070' && ch <= '\u218F') ||
(ch >= '\u2C00' && ch <= '\u2FEF') ||
(ch >= '\u3001' && ch <= '\uD7FF') ||
(ch >= '\uF900' && ch <= '\uFDCF') ||
(ch >= '\uFDF0' && ch <= '\uFFFD');
//(ch >= '\u10000' && ch <= '\uEFFFF');
}