Your syntax is "correct" but it won't have any effect. CDATA sections don't have any representation in the tree data model (they aren't nodes), so the only way you can create them is at serialization time. Try <xsl:output cdata-section-elements="bookname"/>. It isn't possible to be any more selective than that.
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference