xsl-list
[Top] [All Lists]

Re: Re: Creating unique node attributes in output

2003-05-03 18:39:51
Dimitre Novatchev wrote:
"Gregory Propf" <gpropf(_at_)cfl(_dot_)rr(_dot_)com> wrote in message
news:3EB3E7C6(_dot_)6010004(_at_)cfl(_dot_)rr(_dot_)com(_dot_)(_dot_)(_dot_)

I am trying to write a stylesheet that processes an xml file and assigns
a globally unique id tag to the output of each node I process.  These
tags are not present in the original xml.  I thought of just creating a
variable and incrementing it and using that but it seems that varaibles
are not really so variable in xsl.  How is this done?


In the general case even using generate-id() will not provide uniqueness -- the same node may be produced many times, or sometimes different nodes (in
temporary trees) are assigned the same (re-used when a temporary tree has
been disposed of) id.

This is a typical use-case for a Monad.

I would be at XML Europe next week and if somebody would be interested I can
demonstrate the current Monadic Computation implementation, which is part of
FXSL.



=====
Cheers,

Dimitre Novatchev.
http://fxsl.sourceforge.net/ -- the home of FXSL




 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



Ok from the w3c we have

"...Thus, the string is syntactically an XML name. An implementation is free to generate an identifier in any convenient way provided that it always generates the same identifier for the same node and that different identifiers are always generated from different nodes..."

It sure sounds like the node id will always be unique. Or am I not interpreting this right? I guess what concerns me is that I get unique ids within a given tree like this


<a>
  <b/>
  <b>
    <c/>
    <c/>
  </b>
  <b>
    <c/>
  </b>
</a>

All I really need is that within that kind of structure I get unique ids. That said, I tried it and got it to work. I am happy with the results and it certainly seems like it is producing unique ids. I'm just curious about the details. Thank you all for your help.



--
"Firing people can give you a pretty good buzz, but it's a poor, poor substitute for killing. I realize that now" - Dale Gribble


XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list



<Prev in Thread] Current Thread [Next in Thread>