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"><![CDATA[</xsl:text>
<xsl:copy-of select="."/>
<xsl:text disable-output-escaping="yes">]]></xsl:text>
</xsl:element>
</content>
</part>
</XQMessage>
</XQMessageElem:XQMessage>
</xsl:template>
</xsl:stylesheet>
And data after tranformation I get:
<MyElement><![CDATA[<test>test</test>]]></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.
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,