[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
Re: [xsl] testing for string and number in XSLT 2.0 was Re: [xsl] Test For Numeric Values?
Subject: Re: [xsl] testing for string and number in XSLT 2.0 was Re: [xsl] Test For Numeric Values? From: James Fuller <jim.fuller@xxxxxxxxxxxxxx> Date: Fri, 08 Apr 2005 13:32:51 +0200 |
>The xsl:analyze-string construct could be written more simply as > ><xsl:value-of select="matches($select, '[\d]+')"/> > > i like the matches() function...neat >>this is fine and dandy in a basic XSLT 2.0 processor, and potentiall >>could be extended, though I find it uncomfortable that xsl:function >>automatically casts my params as xs:string when there is no >>declaration, >> >> > >It doesn't. If you don't declare the types of your parameters then they >actual values supplied in the function call are passed through unchanged. > > > ok understand, btw I assume that tunnel params are not in affect within params in xsl:functions.... >>so doing something like the following (in an XSLT 2.0 >>processor that is >>schema aware). >> >> >> Test X (xs:integer) matching string >> using istype:<xsl:value-of select="type:istype($x,'number')"/> >> using isnumber:<xsl:value-of select="type:isnumber($x)"/> >> using isstring:<xsl:value-of select="type:isstring($x)"/> >> >> > >This doesn't require a schema-aware processor, you aren't doing anything >here that's not available in a basic processor > > ok..yes David just corrected me >>will through out an error, I guess I could employ the >>use-when attribute >>to check for schema conformance (does this exist as a system >>property?). >> >> > >Yes it does but you don't need it here > > >>btw, does anyone else find it weird that xsl:function doesnt have the >>ability to prescribe a return type ?...I wanted to return a boolean >>type... >> >> > >Then (a) declare the type > ><xsl:function name="x" as="xs:boolean"> > > yes just discovered this as well...feels right, though once again not the use of XML Schema datatypes....or the option not to use them. >and (b) return a value of that type > ><xsl:sequence select="matches($arg, '\d+')"/> > >In fact, I think the function you want is: > ><xsl:function name="type:is-number" as="xs:boolean"> > <xsl:param name="arg" as="xs:string"/> > <xsl:sequence select="matches($arg, '\d+')"/> ></xsl:function> > > > so explain to me the scenario <xsl:variable name="x" select="example/test[1]" as="xs:integer"/> <xsl:function name="type:is-number" as="xs:boolean"> <xsl:param name="arg" as="xs:string"/> <xsl:sequence select="matches($arg, '\d+')"/> </xsl:function> hehe, no pls dont answer that! really I understand now; the fact that BASIC conformance meant XML Schema datatypes are still being used completely went under my radar...so I now understand that value for BASIC conformance is directed towards implementators... many thx for taking the time to answer my lame questions. jim
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] sum function and math exp, Pawson, David | Thread | Re: [xsl] testing for string and nu, David Carlisle |
Re: [xsl] testing for string and nu, David Carlisle | Date | Re: [xsl] testing for string and nu, Dimitre Novatchev |
Month |
Keywords