This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Xalan Java TransformerException?


I am adding clarifications to my original question.

The formatter and the requestMap *have*
to be params in this case.  I pass the formatter and the requestMap using

1. Transformer.setParameter("formatter", formatter) and
2. Transformer.setParameter("requestMap", requestMap)

in my java code.

3. I then get the value stored with AnalyticsStartTime key
in the requestMap ( which is type java.Util.HashMap )

4. Lastly, I format the above value according to the formatter
and store the value in the AnalyticsStartTime  variable for use
later in the in the xsl.



<!-- 1. formatter is type java.text.SimpleDateFormat -->
	<xsl:param name="formatter"/>
<!-- 2. requestMap is type java.Util.HashMap -->
	<xsl:param name="requestMap"/>
<!-- 3. -->
	<xsl:variable name="StartTime" 
select="java:get($requestMap,'AnalyticsStartTime')"/>
<!-- 4. -->
	<xsl:variable name="AnalyticsStartTime" select="java:format($formatter,  
$StartTime)"/>



Hope this clarifies. Thanks.


-----Original question-------
I am getting the following exception:

javax.xml.transform.TransformerException: For extension function, could not
find method java.lang.String.format([ExpressionContext,] #UNKNOWN
(java.util.Date))

For the following XSL fragment :
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
xmlns:java="http://xml.apache.org/xslt/java";
extension-element-prefixes="java"
exclude-result-prefixes="java">

<!-- formatter is type java.text.SimpleDateFormat -->
<xsl:param name="formatter"/>
<!-- request is type java.Util.HashMap -->
<xsl:param name="requestMap"/>

<xsl:variable name="StartTime"
select="java:get($requestMap,'AnalyticsStartTime')"/>
<xsl:variable name="AnalyticsStartTime" select="java:format($formatter,
$StartTime)"/>


Questions:
1. Why does the XSL complier think format() is being called for a String?

When I resolve format() completely as follows:
<xsl:variable name="AnalyticsStartTime"
select="java:java.text.SimpleDateFormat.format($formatter,  $StartTime)"/>

The exception is:
For extension function, could not find method static
java.text.SimpleDateFormat.format([ExpressionContext,] #STRING, #UNKNOWN
(java.util.Date)).


2. How can I fix this?

Thanks a lot for your help and suggestions.

Sudhir

_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]