code: public void characters(char ch[], int start, int length) throws SAXException {
  		if (state != SEEN_DATA) {
  
  			/* Look for non-whitespace. */
  
  			int end = start + length;
  			while (end-- > start) {
  				if (!isXMLWhitespace(ch[end]))
  					break;
  			}
  
  			/*
  			 * If all the characters are whitespace, save them for later. If
  			 * we've got some data, emit any saved whitespace and update our
  			 * state to show we've seen data.
  			 */
  
  			if (end < start) {
  				saveWhitespace(ch, start, length);
  			} else {
  				state = SEEN_DATA;
  				emitWhitespace();
  			}
  		}
  
  		/* Pass on everything inside a data field. */
  
  		if (state == SEEN_DATA) {
  			super.characters(ch, start, length);
  		}
  	}
docs: Filter a character data event.
  
  @param ch
  The characters to write.
  @param start
  The starting position in the array.
  @param length
  The number of characters to use.
  @exception org.xml.sax.SAXException
  If a filter further down the chain raises an exception.
  @see org.xml.sax.ContentHandler#characters