code: private void initializeVariables() throws SAXException {
          prev = '\u0000';
          // First line
          line = 0;
          column = 1;
          linePrev = 0;
          columnPrev = 1;
          nextCharOnNewLine = true;
  
          // Set up the buffers for data and names
          dataBufferPos = 0;
          dataBuffer = new char[DATA_BUFFER_INITIAL];
          nameBufferPos = 0;
          nameBuffer = new char[NAME_BUFFER_INITIAL];
  
          // Set up the DTD hash tables
          elementInfo = new HashMap<>();
          entityInfo = new HashMap<>();
          notationInfo = new HashMap<>();
          skippedPE = false;
  
          // Set up the variables for the current
          // element context.
          currentElement = null;
          currentElementContent = CONTENT_UNDECLARED;
  
          // Set up the input variables
          sourceType = INPUT_NONE;
          inputStack = new LinkedList<>();
          entityStack = new LinkedList<>();
          tagAttributePos = 0;
          tagAttributes = new String[100];
          //rawReadBuffer = new byte[READ_BUFFER_MAX];
          readBufferOverflow = -1;
  
          inLiteral = false;
          expandPE = false;
          peIsError = false;
  
          doReport = false;
  
          inCDATA = false;
  
          symbolTable = new Object[SYMBOL_TABLE_LENGTH][];
  
          if (handler.checkNormalization) {
              normalizationChecker = new NormalizationChecker(handler);
              normalizationChecker.setErrorHandler(handler.getErrorHandler());
              normalizationChecker.start();
          } else {
              normalizationChecker = null;
          }
          if (handler.characterHandler != null) {
              characterHandler = handler.characterHandler;
              handler.characterHandler = null;
              characterHandler.start();
          } else {
              characterHandler = null;
          }
      }
docs: Re-initialize the variables for each parse.
  
  @throws SAXException