[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: question about generate-id()
On Thu, August 5, 2010 7:49 am, Dave Pawson wrote: > On Wed, 04 Aug 2010 18:18:40 -0400 > "G. Ken Holman" <gkholman@xxxxxxxxxxxxxxxxxxxx> wrote: > >> The uniqueness of identifiers is guaranteed only when generate-id() >> is used for every identifier. This makes sense because generate-id() >> has no way of knowing which of your attributes are identifiers and >> which are not. > > Not even when the 'id' values are @id? That sounds wrong Ken. Possibly not everybody uses @id to mean an ID, plus there's plenty of other attributes, such as @name, that may or may not be IDs. The only attribute that is guaranteed to be an ID is @xml:id, and that postdates XSLT 1.0 by about six years. > 16.6.4 > There is no guarantee that a generated unique identifier will be > distinct from any unique IDs specified in the source document. > > Yuk. IMHO that's a spec weakness. More constrained, surely > it's not rocket science to implement. You could do it yourself with keys and a bit of checking, but in the general case, not everybody will need to search a possibly large source document in the off-chance that a duplicate ID will be generated (though if you keep using the same XSLT processor over slightly modified versions of the same source document, you do stand a good chance of creating duplicates.) In this brave new world of streaming XSLT, you might not see the existing ID value until after you've generated what would be a duplicate ID. The earlier idea of adding a timestamp to the generated ID, or even a known prefix if you do things in fixed phases, would be less overhead than avoiding existing IDs. I've also implemented a uuid() extension function for a client to guarantee that generated IDs are unique. Regards, Tony Graham Tony.Graham@xxxxxxxxxxxxxxxxxxxxxx Director W3C XSL FO SG Invited Expert Menteith Consulting Ltd XML Guild member XML, XSL and XSLT consulting, programming and training Registered Office: 13 Kelly's Bay Beach, Skerries, Co. Dublin, Ireland Registered in Ireland - No. 428599 http://www.menteithconsulting.com -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- xmlroff XSL Formatter http://xmlroff.org xslide Emacs mode http://www.menteith.com/wiki/xslide Unicode: A Primer urn:isbn:0-7645-4625-2
|
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
|