code: public void characters(char ch[], int start, int length)
            throws org.xml.sax.SAXException
    {
  
      flushPending();    
      
      try
      {
          if (inTemporaryOutputState()) {
              /* leave characters un-processed as we are
               * creating temporary output, the output generated by
               * this serializer will be input to a final serializer 
               * later on and it will do the processing in final
               * output state (not temporary output state).
               * 
               * A "temporary" ToTextStream serializer is used to
               * evaluate attribute value templates (for example),
               * and the result of evaluating such a thing
               * is fed into a final serializer later on.
               */
              m_writer.write(ch, start, length);
          }
          else {
              // In final output state we do process the characters!
              writeNormalizedChars(ch, start, length, m_lineSepUse);
          }
              
          if (m_tracer != null)
              super.fireCharEvent(ch, start, length);      
      }
      catch(IOException ioe)
      {
        throw new SAXException(ioe);
      }
    }
docs: Receive notification of character data.
  
  <p>The Parser will call this method to report each chunk of
  character data.  SAX parsers may return all contiguous character
  data in a single chunk, or they may split it into several
  chunks; however, all of the characters in any single event
  must come from the same external entity, so that the Locator
  provides useful information.</p>
  
  <p>The application must not attempt to read from the array
  outside of the specified range.</p>
  
  <p>Note that some parsers will report whitespace using the
  ignorableWhitespace() method rather than this one (validating
  parsers must do so).</p>
  
  @param ch The characters from the XML document.
  @param start The start position in the array.
  @param length The number of characters to read from the array.
  @throws org.xml.sax.SAXException Any SAX exception, possibly
  wrapping another exception.
  @see #ignorableWhitespace
  @see org.xml.sax.Locator