Querying a document collection does not seem to return non-XML files
I'm running the Alpha 3 Docker instance.
I'm finding that I can't see the PDF files I have installed alongside my XML documents.
This had worked fine with eXist-db and I've changed nothing other that switch to the FusionDB instance.
My simplified xquery is:
xquery version "3.1"; declare namespace d="DAV:"; for $doc in collection('/repository/grantcv1') return ( let $fileURI := base-uri($doc) return <d:response xmlns:d="DAV:"> <d:href>{$fileURI}</d:href> </d:response> ) I get all the XML files, but nothing else. I used to get the complete list of files in the folder.
The behavior you see in eXist was true for eXist 5.2.0 and lower, but with https://github.com/eXist-db/exist/pull/3349, the next release of eXist will match the behavior you see in FusionDB. The change was to ensure fn:collection() function would return proper document-node() nodes (containing XML data, not binary data). As an alternative for your use case, consider xmldb:get-child-resources().
Thanks @joewiz. @grantcv1 The change was made so that FusionDB (and eXist-db) become more compliant with the W3C XQuery specifications. There is some explanation and details in the issue that Joe referenced.
For returning a list of URI as your query above is shown, it is actually more efficient to use xmldb:get-child-resources as suggested by Joe.
I hope that helps? Let us know if you need any more support in this area.