Из сообщения, кажется, совершенно очевидно, что вам нужно пройти net.sf.saxon.s9api.Qname
в качестве первого аргумента (не только строки "myVar"
).
И второй аргумент должен быть сконструирован как net.sf.saxon.s9api.XdmValue
.
Просто чтобы убедиться, что хороший способ, чтобы послать параметр, так что я могу получить его обратно с
<xsl:param ... />
?
В вашем XSLT таблицах стилей (основные один и любой модуль таблицы стилей, на который ссылается в директиве xsl:import
или xsl:include
), вы должны иметь глобальный (ребенок xsl:stylesheet
) xsl:param
с тем же именем, что и строки, используемых для построения Qname
, который вы передаете как первый аргумент setParameter()
.
Когда метод setParameter()
выполняется, а затем преобразование вызывается, то соответствующий глобальный xsl:param
будет иметь значение, которое было использовано для построения XdmValue
передается в качестве второго аргумента setParameter()
.
Спасибо. Но я считаю, что это слишком сложно или не очень связано с тем, что я пытаюсь сделать. Это действительно способ отправить параметр в «Таблицу стилей XSLT»? – Cybrix
Я не уверен, почему вы ожидаете менее «сложного» способа указать и передать внешние параметры. Имя параметра может быть любым QName (имя и пространство имен-uri), а значение параметра может быть любого типа XDM. Метод API для указания этих данных не может быть «более простым», чем обеспечивает один Saxon. Вы уверены, что знаете, что хотите? Если он отличается от метода 'setParameter()', тогда вам нужно отредактировать вопрос и подробно описать, что вы хотите сделать. Существует более простой способ передачи только строковых значений, и это делается в командной строке, вызывающей Saxon. –