Одна из возможностей - создать экземпляр Java-объекта в вашем скрипте XSLT;
<!-- Connection to the data provider. -->
<xsl:variable name="provider" xmlns:java="http://xml.apache.org/xalan/java"
select="java:my.sample.DataProvider.getInstance()" />
Использование его для последующего предоставления данных в сценарии:
<xsl:template match="node">
<xsl:variable name="mydata" xmlns:java="http://xml.apache.org/xalan/java"
select="java:getdata($provider, string(@attr))" />
Это вызовет метод getData(String)
для объекта, созданного статическим методом getInstance()
в вашем классе my.sample.DataProvider
.
Вы можете использовать такую настройку, чтобы получать значения из кэша (например, результаты запроса, которые вы пытаетесь передать в качестве параметра в текущей настройке), или выполнять запросы во время выполнения преобразования (предотвращая запросы к данным, которые посетил преобразование.)