[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

[xsl] Unable to use the functions


Subject: [xsl] Unable to use the functions
From: "Lakshmi narayana" <lchintala@xxxxxxxxxxxx>
Date: Tue, 5 Jul 2005 15:16:50 +0500

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.newTransformer(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.newTransformer(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(StylesheetHandler.java:96
6)
	at
org.apache.xalan.processor.StylesheetHandler.getProcessorFor(StylesheetHandl
er.java:428)
	at
org.apache.xalan.processor.StylesheetHandler.startElement(StylesheetHandler.
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
Keywords