> That would be so, except the generate-id() function has already filtered
> out all but the first of the nodes returned by the key() function.... it
> only operates on the first node in the set, when its argument is a node
set
> (since it returns a string, it has to pick one node and that's the one it
> picks).
That makes sense. My understanding is that I'm picking up the context of
the nodes in the for-each and comparing the first nodes of each group
matching the respective dataIds (there are multiple groups of nodes each
with a different dataId). This may be a ambiguity or even bug, the key
reference should probably make it explicit?
It's not the key() function that's reducing it to a single node, it's the
generate-id() function you are running on the nodes returned by key(). As in: