private int scanNCName(String data,int endOffset,int currentOffset){
  int ch=data.charAt(currentOffset);
  if (ch >= 0x80) {
    if (!XMLChar.isNameStart(ch)) {
      return currentOffset;
    }
  }
 else {
    byte chartype=fASCIICharMap[ch];
    if (chartype != CHARTYPE_LETTER && chartype != CHARTYPE_UNDERSCORE) {
      return currentOffset;
    }
  }
  while (++currentOffset < endOffset) {
    ch=data.charAt(currentOffset);
    if (ch >= 0x80) {
      if (!XMLChar.isName(ch)) {
        break;
      }
    }
 else {
      byte chartype=fASCIICharMap[ch];
      if (chartype != CHARTYPE_LETTER && chartype != CHARTYPE_DIGIT && chartype != CHARTYPE_PERIOD && chartype != CHARTYPE_MINUS && chartype != CHARTYPE_UNDERSCORE) {
        break;
      }
    }
  }
  return currentOffset;
}

private int scanNCName ( String data , int endOffset , int currentOffset ) { int ch = data . charAt ( currentOffset ) ; if ( ch >= 0x80 ) { if ( ! XMLChar . isNameStart ( ch ) ) { return currentOffset ; } } else { byte chartype = fASCIICharMap [ ch ] ; if ( chartype != CHARTYPE_LETTER && chartype != CHARTYPE_UNDERSCORE ) { return currentOffset ; } } while ( ++ currentOffset < endOffset ) { ch = data . charAt ( currentOffset ) ; if ( ch >= 0x80 ) { if ( ! XMLChar . isName ( ch ) ) { break ; } } else { byte chartype = fASCIICharMap [ ch ] ; if ( chartype != CHARTYPE_LETTER && chartype != CHARTYPE_DIGIT && chartype != CHARTYPE_PERIOD && chartype != CHARTYPE_MINUS && chartype != CHARTYPE_UNDERSCORE ) { break ; } } } return currentOffset ; }
scans a ncname . from namespaces in xml [ 5 ] ncname : : = ( letter | ' _ ' ) ( ncnamechar ) [ 6 ] ncnamechar : : = letter | digit | ' . ' | ' - ' | ' _ ' | combiningchar | extender
