module namespace tfi = "http://www.transfrance.info/"; declare default element namespace "http://www.transfrance.info/"; declare namespace set = "java:java.util.TreeSet"; declare namespace string = "java:java.lang.String"; declare variable $tfi:set := set:new(); declare function tfi:fetch-references2($element as element(), $files-to-resolve as xs:string*) { for $ref in $element//@ref let $resolved := id($ref), $filename := util:document-name($resolved) return if ( ($files-to-resolve = xmldb:decode-uri($filename)) and not(set:contains($tfi:set, string($ref))) ) then ( let $void := set:add($tfi:set, string($ref)) return ( { $tfi:set }, $resolved, tfi:fetch-references2($resolved, $files-to-resolve) ) ) else ( ) };