With standard XSL I could not find a way of doing this, but I used the possibility to create an extension module (in my case with libxslt - but seems to be standard XSL), which does the conversion. So, my XSL now looks like this:
<xsl:stylesheet version="1.0" ...
xmlns:tge="http://xmlsoft.org/xslt/tgeplugin"
extension-element-prefixes="tge">
...
<xsl:for-each select="bla:Book">
<xsl:text> "</xsl:text><tge:tgeplugin select="."/><xsl:text>"</xsl:text>
</xsl:for-each>
and my extension plugin implements "tgeplugin" (see examples with libxslt how to do that). There, I use a few libxml2 functions to effectively produce a new XML tag "<text>" containing the actual input XML as text value (with quotes escaped).
Not standard XSL, but for my problem probably the least ugly way :-)