Мне нужно предоставить таблицу стилей XSLT аргументом, который может содержать различный объем данных, определенный во время выполнения. Я пытаюсь получить различное количество уникальных QNames в таблице стилей, которые затем ссылаются на оценку строк XPath. Моя первоначальная попытка состояла в том, чтобы предоставить эти данные в виде отдельного XML-документа, а затем использовать функцию document()
для доступа к ее контенту через <xsl:variable>
. Это, однако, оказалось хлопотным в моем случае.Существуют ли ограничения <xsl:param> для передачи параметров в таблицу стилей, о которой следует знать?
Поскольку я полагаться на болезненную 1.0 версии стилей и нужно оценивать строковые значения в XPath выражений с использованием функции dyn:evaluate
EXSLT, которая отказывается обрабатывать фрагменты результирующего дерева внутри XPath переменных (как описано here), я решил передать аргумент таблице стилей как строку, разделенную пробелами, через <xsl:param>
, где каждое значение является квалифицированным именем в нотации Кларка, например {org:example:foo}name
.
Это решение работает, однако я заинтересован в использовании <xsl:param>
для чего-то подобного. Следует ли злоупотреблять <xsl:param>
описанным выше способом? Существуют ли какие-либо ограничения, о которых следует знать при выполнении этого, например ограничения по длине?
Как и сейчас, ваш вопрос слишком широк или, скажем, ненаправленный. Почему вы предполагаете, что такой недостаток будет «xsl: param»? Произошел ли какой-либо из ваших экспериментов с ним или вы заметили какие-либо проблемы? –
@ MathiasMüller, no. До сих пор ни один из моих тестовых случаев не удался, но это не значит, что они не могут. Я предполагаю, что должны быть ограничения. Или бы реализации, такие как Xalan, просто обрабатывали любую строку, которая помещается в ОЗУ? – predi