Hi Christian --
I can't give you a real example because it's the client's health care data, and I would be fed to the rippy fish if I posted any of it.
I've created an example with trivial data, zipped that up, and attached it. (Create a database from example.xml, and run threePartMatchesEG.xq against that DB.)
(I think) the difficult part is:
let $found := //*[@name eq $match(1)][./descendant::*[@name eq $match(2)][./descendant::*[@name eq $match(3)]]]
This works, but it's going over the entire database for every three part class-operation-specifier compound name. I can't shake the feeling that there's a more efficient way to do this, but I can't see what it might be.
Thanks!
Graydon