Some good news,

I managed to get the include working when adding the files (either the 
minimized ones or my own files) using a command line or the basexGUI.

Unfortunately, i still have the error message when using the web interface 
(which is the only one I was using initially) and cannot figure out why.

 

Pascal

 

 

De : Christian Grün <christian.gr...@gmail.com> 
Envoyé : jeudi 18 février 2021 17:01
À : pascaljoub...@gmail.com
Cc : BaseX <basex-talk@mailman.uni-konstanz.de>
Objet : Re: [basex-talk] BaseX, xinclude and xpointer

 

Nevertheless, I have strange warnings :

 

Which of our distributions are you using? With the ZIP distribution, all 
libraries should be correctly added to the classpath.

 

But I guess that won't solve your xinclude issue. Maybe you can find out more 
by comparing my minimized example with your setup.

 

Cheers,

Christian

 

 


[warning] /usr/bin/basex: Unable to locate /usr/share/java/tagsoup.jar in 
/usr/share/java
[warning] /usr/bin/basex: Unable to locate /usr/share/java/xml-resolver.jar in 
/usr/share/java
[warning] /usr/bin/basex: Unable to locate /usr/share/java/jing.jar in 
/usr/share/java

Could that be the cause of my problems when adding files to the database ?

Thanks for the other answers. 

Pascal

-----Message d'origine-----
De : Christian Grün <christian.gr...@gmail.com 
<mailto:christian.gr...@gmail.com> > 
Envoyé : jeudi 18 février 2021 11:11
À : pascaljoub...@gmail.com <mailto:pascaljoub...@gmail.com> 
Cc : BaseX <basex-talk@mailman.uni-konstanz.de 
<mailto:basex-talk@mailman.uni-konstanz.de> >
Objet : Re: [basex-talk] BaseX, xinclude and xpointer

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 <mailto:pascaljoub...@gmail.com>  
<pascaljoub...@gmail.com <mailto: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 
> <mailto:christian.gr...@gmail.com> > Envoyé : mercredi 17 
> février 2021 19:18 À : pascaljoub...@gmail.com 
> <mailto:pascaljoub...@gmail.com>  Cc : BaseX 
> <basex-talk@mailman.uni-konstanz.de 
> <mailto: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 <mailto: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.
>
>

Reply via email to