private void startCDATA(char[] ch, int off, int len) throws SAXException { final int limit = off + len; int offset = off;   _saxHandler.characters(BEGCDATA, 0, BEGCDATA.length);   for (int i = offset; i < limit - 2; i++) { if (ch[i] == ']' && ch[i + 1] == ']' && ch[i + 2] == '>') { _saxHandler.characters(ch, offset, i - offset); _saxHandler.characters(CNTCDATA, 0, CNTCDATA.length); offset = i+3; i += 2; } }   if (offset < limit) { _saxHandler.characters(ch, offset, limit - offset); } _cdataTagOpen = true;
public void startCDATA() throws TransletException { try {  _saxHandler.characters(BEGCDATA, 0, BEGCDATA.length); _cdataTagOpen = true; } catch (SAXException e) { throw new TransletException(e); }
    private void startCDATA(char[] ch, int off, int len) throws SAXException {        final int limit = off + len;        int offset = off;        // Output start bracket - "<![CDATA["        _saxHandler.characters(BEGCDATA, 0, BEGCDATA.length);        // Detect any occurence of "]]>" in the character array        for (int i = offset; i < limit - 2; i++) {            if (ch[i] == ']' && ch[i + 1] == ']' && ch[i + 2] == '>') {                _saxHandler.characters(ch, offset, i - offset);                _saxHandler.characters(CNTCDATA, 0, CNTCDATA.length);                offset = i+3;                i += 2; 	// Skip next chars ']' and '>'            }        }        // Output the remaining characters        if (offset < limit) {	    _saxHandler.characters(ch, offset, limit - offset);	}	            _cdataTagOpen = true;    }