Създаване на раздел CDATA с помощта на елемент xsl:text в xslt процесор

Ако приемем, че имам XSL променлива, наречена $apps с XML съдържание:

<APPLICATION><DATA1/><DATA2/><DATA3/></APPLICATION>

Опитвам се да генерирам низ от този XML, като се обработват специални XML знаци, използвайки:

let $applicationsModified := <xsl:text disable-output-escaping="yes"><![CDATA[</xsl:text><xsl:copy-of select="$apps"/><xsl:text disable-output-escaping="yes">]]></xsl:text>

Това, което получавам е:

let $applicationsModified := <?javax.xml.transform.disable-output-escaping?>&lt;/xsl:text&gt;&lt;xsl:copy-of select="$apps"/&gt;&lt;xsl:text disable-output-escaping="yes"&gt;<?javax.xml.transform.enable-output-escaping?>

Това, което искам да получа е:

<![CDATA[<APPLICATION><DATA1/><DATA2/><DATA3/></APPLICATION>]]>

Правя ли нещо нередно?


person user557060    schedule 28.04.2011    source източник
comment
Вече зададохте подобен въпрос тук: stackoverflow.com/questions/5815628/ Моля, вижте отговорите и коментарите там.   -  person ebruchez    schedule 30.04.2011
comment
Този въпрос беше публикуван, защото разделът CDATA не работи за мен - този въпрос се занимава със сериализация на XML. Сериализацията е различна от създаването на раздел CDATA. Тук конкретно търся решение как да създам раздел CDATA, както е подчертано във въпроса.   -  person user557060    schedule 09.05.2011
comment
Къде отива изходът на вашия XSLT? В XML тръбопровод? Питам, защото информацията за CDATA е забавен звяр: понякога е включена, понякога не. Например, XML Infoset не запазва границите на CDATA маркирани секции.   -  person ebruchez    schedule 09.05.2011
comment
Подава се в XML DB с помощта на процесор за изпращане и резултатите, които създадох по-горе, са от улавянето на кабела на това подаване (преди да достигне XML DB и след като бъде изпратено).   -  person user557060    schedule 10.05.2011
comment
let $applicationsModified := ... прилича повече на XQuery, отколкото на XSLT. Освен това, когато казвате, че получавам е..., как го разбирате? Моля, редактирайте въпроса си, за да го изясните (трябва да имаме цялата необходима информация от въпроса, за да възпроизведем проблема, който описвате), или ще предложа да го затворите като неясен.   -  person avernet    schedule 20.05.2011