Dear Hans-Jürgen,
a question about the function file:list. The documenation says: "The returned paths are relative to the provided path." My understanding is that if the path is a/b/c and this dir contains a file fool.xml, the returned path would be "fool.xml", rather thatn "a/b/c/fool.xml".
completely true: this is why we have recently aligned the functionality of the file:list() function to match the current EXPath documentation. I have just added a post hoc entry in our Wiki to avoid future surprises [1].
If you want to prefix the relative file paths with the root directory without writing too many LOCs, you can take advantage of the XQuery 3.0 "simple map" and "concatenate" operators:
let $p := "/root/path" return file:list($p) ! ($p || '/' || .)
Hope this helps, Christian