Previous | Next | Indexes
Zvon > Tutorials > XSLT 2.0 Tutorial > Stylesheet Functions (9/11) >

Return type errors

If the return value of a function cannot be transformed to the required type, a fatal error is produced.

XSLT

      <xsl:stylesheet
                  xmlns:my="myFunctions"
                  xmlns:sch="http://www.w3.org/2001/XMLSchema"
                  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                  version="2.0"
                  exclude-result-prefixes="my sch">
            <xsl:output  method="xml"
                        indent="yes"
                        omit-xml-declaration="yes"/>

            <xsl:function  name="my:return-number"
                        as="sch:integer">
                  <aaa>10</aaa>
                  <bbb>10</bbb>
            </xsl:function>

            <xsl:function  name="my:return-node">
                  <aaa>10</aaa>
                  <bbb>10</bbb>
            </xsl:function>

            <xsl:template  match="/aaa">
                  <xxx>
                        <xsl:copy-of  select="my:return-node()"/>
                  </xxx>
                  <yyy>
                        <xsl:copy-of  select="my:return-number()"/>
                  </yyy>
            </xsl:template>

      </xsl:stylesheet>
XML

      <aaa/>
Output

Error:


error - XPTY0004
A sequence of more than one item is not allowed as the result of function my:return-number()


Transformation failed: Run-time errors were reported


Previous chapter: Variables and Parameters
Next chapter: Comparisons
Previous page: Return type of a function
Next page: Types of parameters