[ http://issues.apache.org/jira/browse/XALANJ-2288?page=comments#action_12373177 ]
Brian Minchau commented on XALANJ-2288: --------------------------------------- Comments from Xalan-J triage on April 4, 2006: > Brian M. agreed to look into this one. > XSLTC redirect has problem with relative filenames > -------------------------------------------------- > > Key: XALANJ-2288 > URL: http://issues.apache.org/jira/browse/XALANJ-2288 > Project: XalanJ2 > Type: Bug > Components: XSLTC > Reporter: Stephen Suen > > According the javadoc of class Redirect: > > Filenames can be relative or absolute. If they are relative, the base > directory will be the same as the base directory for the output document. > > With Xalan interpretive processor, this works fine. But with XSLTC, the > output seems to be written > into the directory relative to the current working directory. > > Here's the stylesheet showing the problem (styles/writer.xsl): > > <?xml version="1.0" encoding="UTF-8" ?> > <xsl:stylesheet > xmlns:xsl="http://www.w3.org/1999/XSL/Transform" > xmlns:xalan=" http://xml.apache.org/xalan " > xmlns:redirect=" http://xml.apache.org/xalan/redirect" > extension-element-prefixes="xalan redirect" > version="1.0"> > <xsl:template name="checkExtensions"> > <xsl:if test="not(element-available('redirect:write'))"> > <xsl:message terminate="yes"> > <xsl:text>Extension element redirect:write NOT available.</xsl:text> > <xsl:text>XSL vendor: </xsl:text> > <xsl:value-of select="system-property('xsl:vendor')"/> > </xsl:message> > </xsl:if> > <xsl:if test="not(function-available('xalan:nodeset'))"> > <xsl:message terminate="yes"> > <xsl:text>Extension function xalan:nodeset NOT available.</xsl:text> > <xsl:text>XSL vendor: </xsl:text> > <xsl:value-of select="system-property('xsl:vendor')"/> > </xsl:message> > </xsl:if> > </xsl:template> > <!-- =================================================================== --> > <xsl:template name="write"> > <xsl:param name="filename"/> > <xsl:param name="content"/> > <xsl:param name="quiet" select="'0'"/> > <xsl:call-template name="checkExtensions"/> > <xsl:if test="$quiet = '0'"> > <xsl:message> > <xsl:text>Writing output to file: </xsl:text> > <xsl:value-of select="$filename"/> > </xsl:message> > </xsl:if> > <redirect:write file="{$filename}"> > <xsl:copy-of select="xalan:nodeset($content)"/> > </redirect:write> > </xsl:template> > <!-- =================================================================== --> > <!-- testcase > --> > <xsl:template match="/"> > <xsl:message> > <xsl:text>XSL Vendor: </xsl:text> > <xsl:value-of select="system-property('xsl:vendor')"/> > </xsl:message> > <xsl:call-template name="write"> > <xsl:with-param name="filename" select="'testout.xml'"/> > <xsl:with-param name="content" select="/"/> > </xsl:call-template> > </xsl:template> > > </xsl:stylesheet> > I process input document against this stylesheet with the following script: > > SETLOCAL > SET > CLASSPATH=E:\apache\xalan-j_2_7_0\serializer.jar;E:\apache\xalan-j_2_7_0\xalan.jar;E:\apache\xalan-j_2_7_0\xercesImpl.jar;E:\apache\xalan-j_2_7_0\xml-apis.jar > rm -r build > mkdir build > java -Duser.language=en org.apache.xalan.xslt.Process -xsltc -in > src/index.xml -xsl styles/writer.xsl -out build/main.xml > ENDLOCAL > The another output file named "testout.xml" is written out into current > working directory. -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
