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