Re: [xsl] [XSLT 2.0] Determining the datatype of the value returned from a function?

Subject: Re: [xsl] [XSLT 2.0] Determining the datatype of the value returned from a function?
From: David Carlisle <davidc@xxxxxxxxx>
Date: Fri, 17 Jun 2005 17:11:00 +0100
> For example, if the function returns
> the integer 5 then: 
>  
>     "$value instance of xs:integer" 
>  
> should yield true 

That will be true automatically: you don't have to declare it.
Values always have some type and instance of will check that type
(at run time).

    <xsl:value-of select="$num"/>

value-of always generates a text node with string value the
serialisation of the value supplied, so you will always lose type
information that way.


You want xsl:sequence if you want to return values other than text.
<xsl:function name="ex:Test">
    <xsl:param name="letter"/>
    <xsl:choose>
         <xsl:when test="$letter eq 'A'">
             <xsl:sequence select="5""/>
         </xsl:when>
         <xsl:when test="$letter eq 'B'">
             <xsl:sequence select="xsd:decimal(5.0)""/>
         </xsl:when>
         ...
         <xsl:otherwise>
             <xsl:value-of select="'Error'"/>
         </xsl:otherwise>
    </xsl:choose>
</xsl:function>
 

David

________________________________________________________________________
This e-mail has been scanned for all viruses by Star. The
service is powered by MessageLabs. For more information on a proactive
anti-virus service working around the clock, around the globe, visit:
http://www.star.net.uk
________________________________________________________________________

Current Thread