You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-users@xalan.apache.org by BoD <Bo...@JRAF.org> on 2003/12/14 16:54:02 UTC
Passing parameters to a template, with xsltc?
Hi!
Does parameter passing in a template supported with xsltc?
Here is a simple stylesheet:
--
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://www.w3.org/1999/xhtml">
<xsl:template match="/">
Hello world!
<xsl:call-template name="test">
<xsl:with-param name="param1">mblelop</xsl:with-param>
</xsl:call-template>
</xsl:template>
<xsl:template name="test">
<xsl:param name="param1"/>
param1 = <xsl:value-of select="$param1"/>
</xsl:template>
</xsl:stylesheet>
--
Now is here a program that makes use of it:
--
new EnvironmentCheck().checkEnvironment(new PrintWriter(System.out));
File xmlSourceFile = new File("test.xml");
Source xmlSource = new StreamSource(xmlSourceFile);
File xsltFile = new File("test.xslt");
DocumentBuilderFactory documentBuilderFactory =
DocumentBuilderFactory.newInstance();
documentBuilderFactory.setNamespaceAware(true);
DocumentBuilder documentBuilder =
documentBuilderFactory.newDocumentBuilder();
Document xsltDocument = documentBuilder.parse(xsltFile);
DOMSource xsltDOMSource = new DOMSource(xsltDocument);
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Templates template = transformerFactory.newTemplates(xsltDOMSource);
Result outResult = new StreamResult(System.out);
template.newTransformer().transform(xmlSource, outResult);
--
Here is the result of this program:
--
#---- BEGIN writeEnvironmentReport($Revision: 1.23 $): Useful stuff
found: ----
version.DOM.draftlevel=2.0fd
java.class.path=webapps\blorp\WEB-INF\classes
version.JAXP=1.1 or higher
java.ext.dirs=C:\Program Files\Java\j2re1.4.2_03\lib\ext
#---- BEGIN Listing XML-related jars in:
foundclasses.sun.boot.class.path ----
xalan.jar-path=C:\j2sdk1.4.2_03\lib\endorsed\xalan.jar
xml-apis.jar-apparent.version=xml-apis.jar present-unknown-version
xml-apis.jar-path=C:\j2sdk1.4.2_03\lib\endorsed\xml-apis.jar
xercesImpl.jar-apparent.version=xercesImpl.jar from xerces-2_4
xercesImpl.jar-path=C:\j2sdk1.4.2_03\lib\endorsed\xercesImpl.jar
#----- END Listing XML-related jars in: foundclasses.sun.boot.class.path
-----
version.xerces2=Xerces-J 2.4.0
version.xerces1=not-present
version.xalan2_2=Xalan Java 2.5.2
version.xalan1=not-present
version.ant=not-present
java.version=1.4.2_03
version.DOM=2.0
version.crimson=present-unknown-version
sun.boot.class.path=C:\j2sdk1.4.2_03\lib\endorsed\xalan.jar;C:\j2sdk1.4.2_03\lib
\endorsed\xml-apis.jar;C:\j2sdk1.4.2_03\lib\endorsed\xercesImpl.jar;C:\Program
F
iles\Java\j2re1.4.2_03\lib\rt.jar;C:\Program
Files\Java\j2re1.4.2_03\lib\i18n.ja
r;C:\Program Files\Java\j2re1.4.2_03\lib\sunrsasign.jar;C:\Program
Files\Java\j2
re1.4.2_03\lib\jsse.jar;C:\Program
Files\Java\j2re1.4.2_03\lib\jce.jar;C:\Progra
m Files\Java\j2re1.4.2_03\lib\charsets.jar;C:\Program
Files\Java\j2re1.4.2_03\cl
asses
version.SAX=2.0
version.xalan2x=Xalan Java 2.5.2
#----- END writeEnvironmentReport: Useful properties found: -----
# YAHOO! Your environment seems to be OK.
<?xml version="1.0" encoding="UTF-8"?>
Hello world!
param1 = mblelop
--
As you can see, it works fine.
Now I add the system property to use xltc in my program:
String key = "javax.xml.transform.TransformerFactory";
String value = "org.apache.xalan.xsltc.trax.TransformerFactoryImpl";
Properties props = System.getProperties();
props.put(key, value);
System.setProperties(props);
And here is the new result:
--
#---- BEGIN writeEnvironmentReport($Revision: 1.23 $): Useful stuff
found: ----
version.DOM.draftlevel=2.0fd
java.class.path=webapps\blorp\WEB-INF\classes
version.JAXP=1.1 or higher
java.ext.dirs=C:\Program Files\Java\j2re1.4.2_03\lib\ext
#---- BEGIN Listing XML-related jars in:
foundclasses.sun.boot.class.path ----
xalan.jar-path=C:\j2sdk1.4.2_03\lib\endorsed\xalan.jar
xml-apis.jar-apparent.version=xml-apis.jar present-unknown-version
xml-apis.jar-path=C:\j2sdk1.4.2_03\lib\endorsed\xml-apis.jar
xercesImpl.jar-apparent.version=xercesImpl.jar from xerces-2_4
xercesImpl.jar-path=C:\j2sdk1.4.2_03\lib\endorsed\xercesImpl.jar
#----- END Listing XML-related jars in: foundclasses.sun.boot.class.path
-----
version.xerces2=Xerces-J 2.4.0
version.xerces1=not-present
version.xalan2_2=Xalan Java 2.5.2
version.xalan1=not-present
version.ant=not-present
java.version=1.4.2_03
version.DOM=2.0
version.crimson=present-unknown-version
sun.boot.class.path=C:\j2sdk1.4.2_03\lib\endorsed\xalan.jar;C:\j2sdk1.4.2_03\lib
\endorsed\xml-apis.jar;C:\j2sdk1.4.2_03\lib\endorsed\xercesImpl.jar;C:\Program
F
iles\Java\j2re1.4.2_03\lib\rt.jar;C:\Program
Files\Java\j2re1.4.2_03\lib\i18n.ja
r;C:\Program Files\Java\j2re1.4.2_03\lib\sunrsasign.jar;C:\Program
Files\Java\j2
re1.4.2_03\lib\jsse.jar;C:\Program
Files\Java\j2re1.4.2_03\lib\jce.jar;C:\Progra
m Files\Java\j2re1.4.2_03\lib\charsets.jar;C:\Program
Files\Java\j2re1.4.2_03\cl
asses
version.SAX=2.0
version.xalan2x=Xalan Java 2.5.2
#----- END writeEnvironmentReport: Useful properties found: -----
# YAHOO! Your environment seems to be OK.
<?xml version="1.0" encoding="UTF-8"?>
Hello world!
param1 =
--
As you can see, the value of param1 has been lost!
Is it a normal thing, or a bug?
Thank you very much for your help.
BoD