// if ((ch >= 0xD800 && ch <= 0xDFFF) || ch >= 0xFFFE)
if ((b0 == 0xED && b1 >= 0xA0) || (b0 == 0xEF && b1 == 0xBF && b2 >= 0xBE)) {
fCurrentChunk = saveChunk;
fCurrentIndex = saveIndex;
fCurrentOffset = saveOffset;
fMostRecentData = saveChunk.toByteArray();
fMostRecentByte = b0;
return -1;
}
ch = ((0x0f & b0)<<12) + ((0x3f & b1)<<6) + (0x3f & b2);
if ((XMLCharacterProperties.fgCharFlags[ch] & XMLCharacterProperties.E_InitialNameCharFlag) == 0) { // zzzz yyyy yyxx xxxx (0x800 to 0xffff)