XSL CDATA problem

Posted by tannikas on 17-Aug-2011 02:33

Hi,

I'm using Sonic ESB 8.0 XML Transormation to tranform xml message, but I can't copy xml data into CDATA section.

Example:

XSL code:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
        xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        xmlns:XQHeaderFunc="java:com.sonicsw.xq.service.xform.HeaderExtension"
        xmlns:saxon="http://saxon.sf.net/"
        exclude-result-prefixes="XQHeaderFunc saxon"
        xmlns:XQMessageElem="http://www.sonicsw.com/sonicxq/com.sonicsw.xq.service.xform.TransformationElementFactory"
          extension-element-prefixes="XQMessageElem" xmlns:saxon1="http://saxon.sf.net" >
             
    <xsl:output method="xml" omit-xml-declaration="yes" cdata-section-elements="MyElement"/>

    <saxon:script language="java"
            implements-prefix="XQHeaderFunc"
            src="java:com.sonicsw.xq.service.xform.HeaderExtension">
    </saxon:script>
   
    <xsl:template match="/">
        <XQMessageElem:XQMessage>
            <XQMessage cloneHeaders="true">
                <part>
                    <header>Content-Type=text/xml,Content-ID=test</header>
                    <content>
                        <xsl:element name="MyElement">
                            <xsl:text disable-output-escaping="yes">&lt;![CDATA[</xsl:text>
                                <xsl:copy-of select="."/>
                            <xsl:text disable-output-escaping="yes">]]&gt;</xsl:text>
                       </xsl:element>
                       </content>
                </part>
            </XQMessage>
        </XQMessageElem:XQMessage>
    </xsl:template>
</xsl:stylesheet>

And data after tranformation I get:

<MyElement>&lt;![CDATA[<test>test</test>]]&gt;</MyElement>

But I need:

<MyElement><![CDATA[<test>test</test>]]></MyElement>

Seems like  disable-output-escaping="yes" doesn't work and everything stays escaped anway!? How can I achieve that?

If I use XML Spy for tranformation then same example works fine.

All Replies

Posted by JimmyPoulin on 17-Aug-2011 10:17

Hi,

I'm not sure why you use the Sonic XSL extensions to create a new message:

If you would just use the Transform step to transform your xml to a new message part or overwrite the original part it should be fine.

Regards,

This thread is closed