Hi Pascal, > My problem is that the referenced document IS NOT included at all if i remove > the xpointer attribute (I have the same error message). As it works on your > side, I guess my baseX installation is not good. I think I'll have a look at > that.
Here’s a minimized test case on command line. Do you still get the same error for that one? doc.xml: <main xmlns:xi="http://www.w3.org/2001/XInclude"> <xi:include href="include.xml"/> </main> include.xml: <include/> Query: > basex "doc('doc.xml')" <main xmlns:xi="http://www.w3.org/2001/XInclude"> <included xml:base="include.xml"/> </main> Ideally, the include should work no matter if fn:doc is called or if a new database is created (at least with OpenJDK). > One more question : I understand that baseX "resolves" the xinclude when > adding the file into the database. But later, if I change the source files > (the ones I call from the main one), will the main file be changed > dynamically ? or do I need to reload this main file to baseX to perform the > xinclude operations again ? You’ll need to reload the file. The references will be fully resolved, and the file will get embedded in the mail file. > If answer 2, I guess I could just resolve the xinclude before loading into > baseX (in a dedicated xsl) and load the result in baseX, would it make a > difference ? Absolutely. Or you can do everything in XQuery. Here’s one quick’n’dirty solution to achieve that: declare namespace xi = 'http://www.w3.org/2001/XInclude'; declare option db:xinclude 'false'; let $doc := doc('EV.xml') update { for $inc in .//xi:include let $id := replace($inc/@xpointer, '.*\(|\)', '') let $included-doc := doc($inc/@href) return replace node $inc with id($id, $included-doc) } return ( $doc (: write to database... db:create('db', $doc, 'doc.xml') :) (: write back to file... file:write('doc.xml', $doc) :) ) If you want to work with documents in the database, the doc() calls can e.g. be replaced with db:open('db', 'doc.xml') calls. Hope this helps, Christian On 2/17/21, pascaljoub...@gmail.com <pascaljoub...@gmail.com> wrote: > Hi Christian, > Yes ideally I was hoping for the xpointer to work but I read in previous > posts that instead of a named element [element(EP15)], i could use > descendent path notation [element(1/2/1/1)] and that it should work. That's > not ideal but in my case, I think it will work (all the files are > structured in a very similar way). > https://mailman.uni-konstanz.de/pipermail/basex-talk/2015-April/008607.html > My problem is that the referenced document IS NOT included at all if i > remove the xpointer attribute (I have the same error message). As it works > on your side, I guess my baseX installation is not good. I think I'll have a > look at that. > > One more question : I understand that baseX "resolves" the xinclude when > adding the file into the database. But later, if I change the source files > (the ones I call from the main one), will the main file be changed > dynamically ? or do I need to reload this main file to baseX to perform the > xinclude operations again ? > If answer 2, I guess I could just resolve the xinclude before loading into > baseX (in a dedicated xsl) and load the result in baseX, would it make a > difference ? > > Thanks > Pascal > > -----Message d'origine----- > De : Christian Grün <christian.gr...@gmail.com> > Envoyé : mercredi 17 février 2021 19:18 > À : pascaljoub...@gmail.com > Cc : BaseX <basex-talk@mailman.uni-konstanz.de> > Objet : Re: [basex-talk] BaseX, xinclude and xpointer > > Hi Pascal, > > Thanks for the sample files. The error you reported is returned by Java’s > default XML parser (the one from Xerces), so I guess we can’t resolve that > easily unless the XPointer support is improved in a future version of Java. > As you may have seen, the referenced document will be fully included if you > remove the xpointer attribute, but that’s probably not what you need. > > Out of interest, I checked if Saxon can handle XPointer attributes. As it > relies on the default parser as well, it returns the same error message as > BaseX. > > I remember there have been previous posts on that issue; e.g here [1]. > > Sorry for that! > Christian > > [1] > https://mailman.uni-konstanz.de/pipermail/basex-talk/2015-June/009021.html > > > > On Wed, Feb 17, 2021 at 10:03 AM Christian Grün <christian.gr...@gmail.com> > wrote: >> >> > When I add the file into BaseX I now have the following message when >> > adding the main file into BaseX. >> > >> > > An include with href 'EP15.xml'failed, and no fallback element was >> > > found. >> >> Feel free to send us/me the files in question, I can have a look at that. > >