1) Standardize the existing behavior of the implementation, so that startElement("CDATA", component) and endElement("CDATA") start and end CDATA blocks.
This seems like a pretty big hack, which many uses of XML turn into. Perhaps provide a string constant with a qualified value (javax.faces.writer.CDATA)?