Subject: Re: Random?
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Fri, 29 Apr 2005 22:51:02 +1000
|
Hi Ali,
On 4/29/05, Ali Choumane <ali.choumane@xxxxxxx> wrote:
> Hi Dimitre,
>
> I am using the template "randNext" in random.xsl :
>
> ...
> <sentence>
> <xsl:attribute name="stamp">
> <xsl:call-template name="randNext">
> <xsl:with-param name="arg1" select="1"/>
> </xsl:call-template>
> </xsl:attribute>
> <xsl:attribute name="state">nonDesamb</xsl:attribute>
> <xsl:value-of select="concat($arg1/sentence[last()], $arg2)"/>
> </sentence>
> ...
>
> and this is a part of result of transformation:
> ...
> <sentence stamp="39022" state="nonDesamb">111 111 111</sentence>
> <sentence stamp="39022" state="nonDesamb"> 222 222</sentence>
> <sentence stamp="39022" state="nonDesamb"> 333 333 333</sentence>
> <sentence stamp="39022" state="nonDesamb"> 444 444 444</sentence>
> <sentence/>
> <sentence stamp="39022" state="nonDesamb">555 555 555</sentence>
> <sentence stamp="39022" state="nonDesamb"> 666 666 666</sentence>
> <sentence stamp="39022" state="nonDesamb"> 777 777 777</sentence>
> <sentence stamp="39022" state="nonDesamb"> 888 888 888, 999
999999</sentence>
> ...
>
> As the result show, "stamp" it's not a key now. I think because "arg1" is
> fixed.
>
> and I am using the template "randomSequence" in random.xsl, but it can't
> resolve the problem.
randomSequence produces a sequence of (the pLength parameter) N
numbers. If the seed (the pSeed parameter) is the same on two
invocations of randomSequence, the two produced sequences are, of
course, the same.
> I think , if I put a variable value of "arg1" , can resolve the problem?
In order to achieve truly "random" results, the transformation has to
use some non-fixed number, such as the seconds part of the current
time -- and this can be passed as a parameter to the transformation by
the external code that invokes it.
Then this number can be used as a seed -- to be passed as the value of
the pSeed parameter.
> But how, when we can't change the value of variables in XSLT?
We can't and actually we don't need to.
Cheers,
Dimitre novatchev.
|