[XSL-LIST Mailing List Archive Home]
[By Thread]
[By Date]
[Recent Entries]
[Reply To This Message]
Re: How to use generate-id() inside an xsl:function w
Subject: Re: How to use generate-id() inside an xsl:function without a node available?
From: "Andrew Welch" <andrew.j.welch@xxxxxxxxx>
Date: Tue, 27 Feb 2007 20:20:48 +0000
|
On 2/27/07, Abel Braaksma <abel.online@xxxxxxxxx> wrote:
Hi List,
This seems an obvious question to ask, but I couldn't find anything on
the net (but more often than not, it is a matter of wrong keywords, I am
sure). The issue is this: I have a function that generates some nodes
based on some strings and these nodes must receive a unique ID/IDREF
value. Normally, one would use generate-id(), but inside a function (or
inside anything that does not have a context node), generate-id() will fail.
My question: how can I create unique identifiers without a node in sight?
Example function (which will err):
<xsl:function name="my:dupSVGText">
<xsl:variable name="new-id" select="generate-id()" />
<svg:text id="{$new-id}">some text</svg:text>
<svg:use xlink:href="#{$new-id}" y="10" />
</xsl:function>
My original function is a bit larger (ahum, counted > 100 lines today,
time for refactoring...) and creates some SVG objects that reference one
another, which is why I must make sure the ID for referencing the
xlink:href attributes are unique within the document. Don't let the SVG
and XLink upset or distract you, I just mention it to explain my use-case.
And no, there's no way that there will be a node in sight (it is really
disconnected from the source document). Yes, I can use different
techniques than xsl:function if needed (of course). Oh, and before I
forget: I can do so with extension functions or assignable variables
(saxon), but I'd rather not to.
As generate-id() provides node identity and "there's no node in sight"
then I would say generate-id() is the wrong function to use here.
I guess you'll have to add a param to the function and supply the id -
whatever's calling the function should be able to come up with a
suitable value...
|
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format
RSS 2.0 |
|
Atom 0.3 |
|
|