public void parse() throws IOException {
  fReader=getReader(fSource);
  fSource=null;
  int readSize=fReader.read(fTempString.ch,0,fTempString.ch.length - 1);
  fHandler.fHasIncludeReportedContent=true;
  while (readSize != -1) {
    for (int i=0; i < readSize; ++i) {
      char ch=fTempString.ch[i];
      if (!isValid(ch)) {
        if (XMLChar.isHighSurrogate(ch)) {
          int ch2;
          if (++i < readSize) {
            ch2=fTempString.ch[i];
          }
 else {
            ch2=fReader.read();
            if (ch2 != -1) {
              fTempString.ch[readSize++]=(char)ch2;
            }
          }
          if (XMLChar.isLowSurrogate(ch2)) {
            int sup=XMLChar.supplemental(ch,(char)ch2);
            if (!isValid(sup)) {
              fErrorReporter.reportError(XMLMessageFormatter.XML_DOMAIN,"InvalidCharInContent",new Object[]{Integer.toString(sup,16)},XMLErrorReporter.SEVERITY_FATAL_ERROR);
            }
          }
 else {
            fErrorReporter.reportError(XMLMessageFormatter.XML_DOMAIN,"InvalidCharInContent",new Object[]{Integer.toString(ch2,16)},XMLErrorReporter.SEVERITY_FATAL_ERROR);
          }
        }
 else {
          fErrorReporter.reportError(XMLMessageFormatter.XML_DOMAIN,"InvalidCharInContent",new Object[]{Integer.toString(ch,16)},XMLErrorReporter.SEVERITY_FATAL_ERROR);
        }
      }
    }
    if (fHandler != null && readSize > 0) {
      fTempString.offset=0;
      fTempString.length=readSize;
      fHandler.characters(fTempString,fHandler.modifyAugmentations(null,true));
    }
    readSize=fReader.read(fTempString.ch,0,fTempString.ch.length - 1);
  }
}

public void parse ( ) throws IOException { fReader = getReader ( fSource ) ; fSource = null ; int readSize = fReader . read ( fTempString . ch , 0 , fTempString . ch . length - 1 ) ; fHandler . fHasIncludeReportedContent = true ; while ( readSize != - 1 ) { for ( int i = 0 ; i < readSize ; ++ i ) { char ch = fTempString . ch [ i ] ; if ( ! isValid ( ch ) ) { if ( XMLChar . isHighSurrogate ( ch ) ) { int ch2 ; if ( ++ i < readSize ) { ch2 = fTempString . ch [ i ] ; } else { ch2 = fReader . read ( ) ; if ( ch2 != - 1 ) { fTempString . ch [ readSize ++ ] = ( char ) ch2 ; } } if ( XMLChar . isLowSurrogate ( ch2 ) ) { int sup = XMLChar . supplemental ( ch , ( char ) ch2 ) ; if ( ! isValid ( sup ) ) { fErrorReporter . reportError ( XMLMessageFormatter . XML_DOMAIN , "InvalidCharInContent" , new Object [ ] { Integer . toString ( sup , 16 ) } , XMLErrorReporter . SEVERITY_FATAL_ERROR ) ; } } else { fErrorReporter . reportError ( XMLMessageFormatter . XML_DOMAIN , "InvalidCharInContent" , new Object [ ] { Integer . toString ( ch2 , 16 ) } , XMLErrorReporter . SEVERITY_FATAL_ERROR ) ; } } else { fErrorReporter . reportError ( XMLMessageFormatter . XML_DOMAIN , "InvalidCharInContent" , new Object [ ] { Integer . toString ( ch , 16 ) } , XMLErrorReporter . SEVERITY_FATAL_ERROR ) ; } } } if ( fHandler != null && readSize > 0 ) { fTempString . offset = 0 ; fTempString . length = readSize ; fHandler . characters ( fTempString , fHandler . modifyAugmentations ( null , true ) ) ; } readSize = fReader . read ( fTempString . ch , 0 , fTempString . ch . length - 1 ) ; } }
read the input stream as text , and pass the text on to the xincludehandler using calls to characters ( ) . this will read all of the text it can from the resource .
