Re: Random UUID in pure XSLT?

"Michael Kay [email protected]" <[email protected]>
Newsgroups gmane.text.xml.xsl.general.mulberrytech
Message-ID <[email protected]>
I was wondering about this requirement a few days ago, as it happens. 

One approach might be to add an extra "method" to the object returned by fn:random-number-generator.

If you don't like extension functions then an alternative now we have first-class functions is to construct an XDM function object in the calling application and pass it in to the stylesheet as a global stylesheet parameter. The function in this case might be a function that takes a random xs:double and delivers a random UUID. You could then call this function supplying random numbers generated using fn:random-number-generator.

To construct your own XDM function object in the calling application, implement net.sf.saxon.expr.Callable and wrap your implementation in a s9api XdmFunctionItem.


Michael Kay
Saxonica

> On 10 Nov 2020, at 16:36, Piez, Wendell A. (Fed) [email protected] <[email protected]> wrote:
> 
> XSL Friends –
>  
> Today I write from the day job, where I am researching the question of how can I go about producing random UUIDs, in dozens or hundreds, inside an XSLT pipeline, without extension functions in Saxon. The Java randomUUID() function works nicely when it’s available, but I need to distribute the capability for SaxonHE and eventually SaxonJS.
>  
> We do not have an available implementation of RFC 4122 v4 “random UUID” in pure XSLT do we, free to use (and study)? I know the functional nature of the language makes randomness, um, problematic (when isn’t it?), which sometimes means workarounds – that’s all fine. Indeed so would calling out to a web service if it is known to be reliable. I have thought about handing a list of UUIDs in at runtime, but as I said, there may sometimes be hundreds and perhaps thousands, which makes that approach seem a bit scary.
>  
> Any thoughts or perspective would be most welcome.
>  
> Thanks, Wendell
>  
>  
>  
> XSL-List info and archive
> EasyUnsubscribe (by email)
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/3329386
or by email: [email protected]
--~--
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.