HI --
In the process of trying to find the differences between two collections of
schemas (the XML differences, as opposed to the not-semantically-meaningful
differences in the order of the definitions), I find myself wanting to
stick UIDs on everything. (So I can go "oh, this element node is
different, but it has descendant elements UIDs also in the list of
differences, I don't want this one, the descendants are more precise"
(because if I don't do something like this, I'm getting xsd:schema every
time...))
I haven't done anything with updating expressions before.
By itself, in the GUI,
for $x in /descendant-or-self::*
return insert node(attribute UID {generate-id($x)}) into $x
works. Since I would like everything in one query, with a little flailing
I've got as far as
let $new as document-node()+ :=
for $each in db:open($newName)
return
copy $temp := $each
modify (
for $x in $temp/descendant-or-self::*
return insert node(attribute UID {generate-id($x)}) into $x
)
return $temp
return $new
And there are all the elements with UID attributes associated with them.
Is there a better way to do this?
Thanks!
Graydon