I attached a xsl file, it'll let you re-create those warnings and errors. >Guoliang, > >Thanks! I've added the fix to the code tree. > >I can't really tell you why you get the warnings you get. >Are you able to send me the stylesheets you are compiling, >or maybe a fraction of the stylesheet (enough to reproduce >the warnings/errors). > >Morten > > >Guoliang Cao wrote: > >>I got a NullPointerException when I compile a stylesheet file, so I made a >>one-line change to this file. Hope it helps. >> >>xml-xalan/java/src/org/apache/xalan/xsltc/compiler/LiteralElement.java >> >>------- Line 285 ------------ >>- else if (qname.getNamespace().equals(XSLT_URI)) { >> >>+ else if (qname.getNamespace()!=null && >>qname.getNamespace().equals(XSLT_URI)) { >>or >>+ else if (XSLT_URI.equals(qname.getNamespace()) { >> >>BTW, I got a lot of errors like this, Is there anything I can do to get rid >>of them? Thanks. >> >>Warning: >> Attribute 'Action' outside of element. >> Attribute 'Service' outside of element. >> ...... >>Compile errors: >> Variable or parameter 'http://www.ispsoft.com:baseTime' is undefined. >> Variable or parameter 'http://www.ispsoft.com:Info' is undefined. >> Error parsing XPath expression '$Info'. >> Required attribute 'select' is missing. >> ...... >>
<?xml version="1.0"?> <xsl:stylesheet xmlns:req='http://www.ispsoft.com' xmlns:xsl="http://www.w3.org/1999/XSL/Transform" exclude-result-prefixes="req xsl" version="1.0"> <xsl:param name="requestType" select="'Normal'"/> <xsl:param name="baseTime" select="300"/> <xsl:variable name="myService" select="'Unknown'"/> <xsl:variable name="myAction" select="//req:service/@action"/> <xsl:template match="/req:request"> <result> <xsl:variable name="_Timeout">300</xsl:variable> <xsl:call-template name="addTimeout"> <xsl:with-param name="timeout" select="number($_Timeout)"/> </xsl:call-template> <xsl:attribute name="action"> <xsl:value-of select="$myAction"/> </xsl:attribute> <xsl:apply-templates select="req:account"/> </result> </xsl:template> <xsl:template match="req:account"> <xsl:apply-templates select="*"/> </xsl:template> <xsl:template name="addBaseTimeout"> <xsl:call-template name="addTimeout"> <xsl:with-param name="timeout" select="$baseTime"/> </xsl:call-template> </xsl:template> <xsl:template name="addTimeout"> <xsl:param name="timeout"/> <xsl:variable name="hour" select="floor($timeout div 3600)"/> <xsl:variable name="minute" select="floor(($timeout - $hour * 3600) div 60)"/> <xsl:variable name="second" select="$timeout mod 60"/> <xsl:attribute name="Timeout"> <xsl:if test="$hour > 0"> <xsl:value-of select="concat('+',$hour,'h')"/> </xsl:if> <xsl:if test="$minute > 0"> <xsl:value-of select="concat('+',$minute,'m')"/> </xsl:if> <xsl:if test="$second > 0"> <xsl:value-of select="concat('+',$second,'s')"/> </xsl:if> </xsl:attribute> </xsl:template> <xsl:template match="req:service[@action='add']"> <xsl:apply-templates mode="add" select="req:data"/> </xsl:template> <xsl:template mode="add" match="req:data"> <xsl:variable name="_info"> <username>a</username> </xsl:variable> <operation xmlns="http://www.ispsoft.com/service/Unknown"> <xsl:call-template name="addTimeout"> <xsl:with-param name="timeout" select="$baseTime*(count(//req:data)-1)"/> </xsl:call-template> <xsl:value-of disable-output-escaping="yes" select="'<![CDATA['"/> <xsl:apply-templates mode="addData" select="preceding-sibling::req:data|following-sibling::req:data"> <xsl:with-param name="_info" select="$_info"/> </xsl:apply-templates> <xsl:value-of disable-output-escaping="yes" select="']]>'"/> </operation> </xsl:template> <xsl:template mode="addData" match="req:data"> <xsl:param name="_info"/> <addData> <xsl:copy-of select="$_info"/> <xsl:copy-of select="."/> </addData> </xsl:template> <xsl:template match="*|@*"/> </xsl:stylesheet>