RE: [xsl] Unable to use the functions

Subject: RE: [xsl] Unable to use the functions
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 5 Jul 2005 13:59:25 +0100
Firstly, you need an XSLT 2.0 processor to run this.

Secondly, replace xsl:result with xsl:sequence - you are using an old
version of the XSLT 2.0 specification.

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: Lakshmi narayana [mailto:lchintala@xxxxxxxxxxxx] 
> Sent: 05 July 2005 11:17
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] Unable to use the functions
> 
> 
> Hi,
> I am trying to execute one function in XSLT. But I am getting the
> exceptions. Below are the code in XSL file and exceptions.
> Please suggest me the changes i had to make in XSLT to 
> execute the reverse
> function properly.
> 
> XSL Code.
> 
> <xsl:transform
>   xmlns:xsl="http://www.w3.org/1999/XSL/Transform";
>   xmlns:str="http://user.com/namespace";
>   version="1.0"
>   exclude-result-prefixes="str">
> 
> <xsl:function name="str:reverse">
>   <xsl:param name="sentence"/>
>   <xsl:result
>      select="if (contains($sentence, ' '))
>              then concat(str:reverse(substring-after($sentence, ' ')),
>                          ' ',
>                          substring-before($sentence, ' '))
>              else $sentence"/>
> </xsl:function>
> 
> <xsl:template match="/">
> <output>
>   <xsl:value-of select="str:reverse('DOG BITES MAN')"/>
> </output>
> </xsl:template>
> 
> </xsl:transform>
> 
> 
> Exceptions :
> 
> 
> javax.xml.transform.TransformerConfigurationException:
> javax.xml.transform.TransformerConfigurationException:
> javax.xml.transform.TransformerException:
> javax.xml.transform.TransformerException: xsl:function is not 
> allowed in
> this position in the stylesheet!
> 	at
> org.apache.xalan.processor.TransformerFactoryImpl.newTransform
> er(Transformer
> FactoryImpl.java:805)
> 	at MyTest.test(MyTest.java:31)
> 	at MyTest.main(MyTest.java:49)
> Caused by: javax.xml.transform.TransformerConfigurationException:
> javax.xml.transform.TransformerException:
> javax.xml.transform.TransformerException: xsl:function is not 
> allowed in
> this position in the stylesheet!
> 	at
> org.apache.xalan.processor.TransformerFactoryImpl.newTemplates
> (TransformerFa
> ctoryImpl.java:984)
> 	at
> org.apache.xalan.processor.TransformerFactoryImpl.newTransform
> er(Transformer
> FactoryImpl.java:788)
> 	... 2 more
> Caused by: javax.xml.transform.TransformerException:
> javax.xml.transform.TransformerException: xsl:function is not 
> allowed in
> this position in the stylesheet!
> 	at
> org.apache.xalan.processor.TransformerFactoryImpl.newTemplates
> (TransformerFa
> ctoryImpl.java:980)
> 	... 3 more
> Caused by: javax.xml.transform.TransformerException: 
> xsl:function is not
> allowed in this position in the stylesheet!
> 	at
> org.apache.xalan.processor.StylesheetHandler.error(StylesheetH
> andler.java:96
> 6)
> 	at
> org.apache.xalan.processor.StylesheetHandler.getProcessorFor(S
> tylesheetHandl
> er.java:428)
> 	at
> org.apache.xalan.processor.StylesheetHandler.startElement(Styl
> esheetHandler.
> java:662)
> 	at 
> org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1672)
> 	at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
> 	at 
> org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
> 	at 
> org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:667)
> 	at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
> 	at 
> org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
> 	at
> org.apache.xalan.processor.TransformerFactoryImpl.newTemplates
> (TransformerFa
> ctoryImpl.java:972)
> 	... 3 more
> 
> 
> Thanks,
> Laxmi Narayana Babu.
> OSI Technologies.

Current Thread