Subject: RE: 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: 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.
|