Как использовать EXSLT в среде Visual Studio

Можно ли использовать функции EXSLT в Visual Studio? Я пишу и отлаживаю свои скрипты xslt в VS. Что я должен сделать, чтобы иметь возможность использовать, например, функцию date:add()? Как должен выглядеть очень простой скрипт? Большое спасибо, Петр

2 ответа

Решение

В последних трех версиях Visual Studio (2010, 2008 и 2005 гг.) Используется XSLT-процессор.NET XslCompiledTransform. XslCompiledTransform не реализует никакую функцию EXSLT, кроме common:node-set() - так вот вам не повезло.

Я не думаю, что есть простой и естественный способ использовать другие процессоры XSLT в Visual Studio, и даже для этого может быть какая-то хитрость, в этом случае не удастся выполнить отладку XSLT.

Наконец, EXSLT обычно обеспечивает ограниченную реализацию XSLT некоторых функций EXSLT. Конечно, это гораздо менее мощно и удобно, но вы можете пойти по этому пути.

Моя личная рекомендация - начать использовать XSLT 2.0, который намного мощнее, чем XSLT 1.0, поэтому нет необходимости использовать EXSLT в приложении XSLT 2.0.

Конечно, в VS нет поддержки XSLT 2.0, но есть и другие превосходные IDE, такие как oXygen, которые, помимо прочего, предоставляют хорошие отладчики XSLT 2.0 и XQuery.

Обновление: Вы можете использовать стороннюю реализацию EXSLT для XslCompiledTransform: модуль EXSLT.NET проекта MVP - XML.

Вы также можете использовать тег msxml:script для включения ваших собственных функций в XSLT. Это отлично работает для простых функций, а также может быть отлажено в VS2005 и выше, например

<msxml:script implements-prefix="user">
  <![CDATA[ 
  function toUpperCase(str)
  {
    return str.toUpperCase();
  }
  ]]>
</msxml:script>
Другие вопросы по тегам