xslt: Импорт файла стилей, содержащего <msxsl:script
От: teleroot  
Дата: 24.05.12 16:00
Оценка:
Добрый день!
Используется процессор от MS. В проекте имеется множество файлов xslt, сформированных по принципу модульности.
Линковка файлов осуществляется с помощью инструкции xsl:import, которая до некоторого времени меня полностью устраивала, т.к. в отличие от xsl:include позволяла разрешать конфликты имен шаблонов, переменных и проч.
Проблема:
Если в линкуемом файле содержится блок msxsl:script, то данный файл не удается импортировать более чем один раз. Например, если есть утилитарный файл шаблонов utils.xslt и он используется в файлах a1.xslt и a2.xslt, то мы не сможем импортировать эти два файла в еще один файл main.xslt — возникает ошибка "This method has the same name and parameter types as another method in this class"
То есть xsl:import, похоже, не ресолвит конфликты блоков script.

Пробовал вариант
<msxsl:script language="JScript" implements-prefix="ext">
<![CDATA[
this['replace'] = function(x, from, to) {
return x.replace(new RegExp(from, 'g'),to);
}
]]>
</msxsl:script>

Но к сожалению он работает только, если трансформация производится в IE. В Visual Studio 2010 при отладке ошибка "Expected identifier" на (this[..])

Может кто знает волшебное решение?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.