Создание раздела 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 с использованием обработчика отправки, и результаты, которые я получил выше, получены из перехвата этой отправки (до того, как она достигнет базы данных XML и после ее отправки).   -  person user557060    schedule 10.05.2011
comment
let $applicationsModified := ... больше похож на XQuery, чем на XSLT. Кроме того, когда вы говорите, что я получаю…, как вы это понимаете? Пожалуйста, отредактируйте свой вопрос, чтобы уточнить его (у нас должна быть вся информация, необходимая из вопроса, чтобы воспроизвести проблему, которую вы описываете), или я предложу закрыть его как расплывчатый.   -  person avernet    schedule 20.05.2011