Пишу свою функцию в дин коде:
Код:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package ru.ttk.billing.xlst;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import ru.bitel.bgbilling.server.util.ServerUtils;
import ru.bitel.bgbilling.server.util.Setup;
import ru.bitel.common.XMLUtils;
/**
*
* @author lda
*/
public class ContractInfoUL {
private Setup setup = Setup.getSetup();
private Connection con;
public Element get(String cid){
Element result = null;
con = this.setup.getDBConnectionFromPool();
Document doc = XMLUtils.newDocument();
result = doc.createElement("data");
doc.appendChild(result);
result.setAttribute( "operator_name", "ООО Рога и Копыта");
result.setAttribute( "operator_site", "http://www.ru");
return result;
}
}
Далее в вызываем например в карточке регистрации договора:
Код:
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xalan="http://xml.apache.org/xalan"
xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:contract_info="ru.ttk.billing.xlst.ContractInfoUL" version="1.0">
<xalan:component prefix="contract_info" functions="get">
<xalan:script lang="javaclass" src="xalan://ru.ttk.billing.xlst.ContractInfoUL"/>
</xalan:component>
....
<xsl:template match="/card">
.....
<xsl:variable name="cid" select="contract/@cid" />
<xsl:variable name="info" select="contract_info:get( string($cid) )"/>
<xsl:variable name="operator_name" select="$info/@operator_name" />
<xsl:variable name="operator_site" select="$info/@operator_site" />
....
вот как то так...