[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

How to use generate-id() inside an xsl:function withou

Subject: How to use generate-id() inside an xsl:function without a node available?
From: Abel Braaksma <abel.online@xxxxxxxxx>
Date: Tue, 27 Feb 2007 21:04:51 +0100
 How to use generate-id() inside an xsl:function withou
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.

Any ideas? It seems easy enough, but I couldn't find any (quick) resolutions.

TIA,

Cheers,
-- Abel

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Cast Your Vote

We need your help – Vote for DataDirect XML Products!

  • Best SOA or XML site

Winners and finalists announced at SOA World Conference in November.

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2007 All Rights Reserved.