2013-09-25 17 views
0

Я использую саксонскую библиотеку для применения некоторых преобразований XSLT 2.0.Как объявить переменную длительности в XSLT 2.0?

Я пытаюсь добавить код, который будет печатать все даты между двумя заданными датами.

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

Я написал следующее в моей XSLT:

<xsl:template name="get_rundatesNode"> 
    <xsl:param name="startDate" /> 
    <xsl:param name="endDate" /> 
    <xsl:variable name="oneDay" select='xs:dayTimeDuration("P1D")' /> 

    </xsl:template> 

Я вижу следующие ошибки из Saxon:

Ошибка при/XSL: таблица стилей/XSL: шаблон [2]/XSL : переменная [1] XPST0081 Ошибка синтаксиса XPath при char 0 в строке -1 в {xs: dayTimeDuration ("P1D"} : Префикс пространства необъявленных имен {xs} Предупреждение: at/xsl: stylesheet/xsl: template [2]/xsl: variable [1] SXWN9001: переменная без следующего собора i nstructions не действует

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

ответ

2

Все, что вам нужно, это объявление в верхней части таблицы стилей, который связывает xs префикс к W3C имен схемы, вероятно, также с директивой подрезать копирование пространств имен в результирующее дерево:

  xmlns:xs="http://www.w3.org/2001/XMLSchema" 
      exclude-result-prefixes="xs" 

Предупреждение просто говорит вам, что вы еще не закончили добавлять код к своему шаблону, и поэтому переменная ничего не сделает для вас.

+1

Еще один момент: тот факт, что ошибки расположены с использованием путей, а не номеров строк, указывает на то, что вы поставляете таблицу стилей как дерево, а не как файл: есть ли какая-то конкретная причина, по которой вы это делаете? Номера строк упрощают идентификацию и исправление ошибки. –

+0

Таблица стилей исходит из строковой переменной, которая в конечном итоге считывается из базы данных SQL. –

Смежные вопросы