At 2010-08-08 10:17 +0100, Dave Pawson wrote:
On Sun, 08 Aug 2010 09:19:55 +0100
Michael Kay <mike(_at_)saxonica(_dot_)com> wrote:
> > a given node? Again, a node from which nodeset?
> > All possible input nodes from the source document, doc() functions?
> Any node that you pass to the function as an argument. The result is
> unique in the sense that if you call the function on two different
> nodes, you get two different identifiers.
So not 'unique' as xml:id defines unique?
Yes as xml:id defines "unique", just not within xml:id's uniqueness scope.
It has the same properties as xml:id, just in a different value set
than where you find a document's xml:id values.
It *is* an identifier. It *is* a name token. It *is* unique in
*its* value set.
It also happens to have a lexical constraint of only alphanumeric
characters, thus allowing stylesheet writers to augment the
identifier with "-", "." and "_" to construct custom identifiers on
top of generated identifiers without any name collision.
Or as the spec puts it: "it
> always generates the same identifier for the same node and ...
> different identifiers are always generated from different nodes."
Again only in the context of the call to the function.
I.e. there is no explicit scope.
That sentence describes the scope: the set of nodes. That scope
doesn't say anything about the document's identifiers, but just to be
clear, Mike cites the sentence in 16.6.4 in response to what you posit here:
> > My inferences: I assumed (clearly wrongly by this thread) that it
> > generated an ID value (call it xml:id for now) that was unique as
> > per the definition in XML, i.e. unique amongst the nodes of the
> > input document.
> The spec explicitly says "There is no guarantee that a generated
> unique identifier will be distinct from any unique IDs specified in
> the source document.".
So 'generate-a-random-string' might be more accurate than
No, "generate-a-name-token-suitable-for-an-id()" might be more
"accurate", but wouldn't be more suitable. The function generates an
identifier. The values returned qualify as identifiers. Even the
name "generate-an-id()" is no better than "generate-id()". Though,
in retrospect, I would have liked it to have been "generated-id()"
since that reflects the nature that it doesn't change when visit the
same node twice within a single transformation, but I can live with that.
I really hope this helps you feel more comfortable that the
specification has got it right in this situation.
. . . . . . . . . . Ken
XSLT/XQuery training: after http://XMLPrague.cz 2011-03-28/04-01
Vote for your XML training: http://www.CraneSoftwrights.com/s/i/
Crane Softwrights Ltd. http://www.CraneSoftwrights.com/s/
G. Ken Holman mailto:gkholman(_at_)CraneSoftwrights(_dot_)com
Male Cancer Awareness Nov'07 http://www.CraneSoftwrights.com/s/bc
Legal business disclaimers: http://www.CraneSoftwrights.com/legal
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>