Я работаю с версией Saxon XSLT с открытым исходным кодом Saxon 9.0.0.2J от Saxonica и пытаюсь использовать Java-расширяемость в первый раз. Я запускаю в проблеме, которая, как я подозреваю, может быть ограничением в версии с открытым исходным кодом, но сначала захотела проверить, может ли быть что-то, что я здесь просто отсутствует.Не удается получить доступ к обновленному объекту Java от Saxon XSLT-процессора
Из нижеприведенного фрагмента моего результата получается, что конечное значение $ c1 не изменяется в результате вызова greg: setTime() - то есть переменная $ c1 в Saxon, по-видимому, отцепляется от базовой Java объект, и нет очевидного способа доступа к объекту, обновленного вызовом setTime().
УКАЗАНИЕ, что весь код в фрагменте проверен и работает в противном случае - то есть $ c1 правильно создается экземпляром getInstance(), $ startdate имеет правильный формат и $ d1 создается соответствующим образом.
Мысли?
<xsl:transform
.....
xmlns:sql="java:java.sql.Date"
xmlns:greg="java:java.util.GregorianCalendar"
.....
>
....
<xsl:element name="JobExpireDate">
<xsl:variable name="c1" select="greg:getInstance()" />
<xsl:variable name="d1" select="sql:valueOf($startdate)" />
<xsl:variable name="void" select="greg:setTime($c1,$d1)" />
<xsl:value-of select="$c1" />
</xsl:element>
Можете ли вы предоставить короткий автономный пример файла ввода XML и файла преобразования XSL? –
Нашел пример сам. См. Мой ответ. –