A workaround might be to switch off XInclude during parsing and implement an XPointer-aware XInclude processing function in XQuery, using xquery:eval() or xquery:eval-update() in order to update documents in place after or prior to inserting them into a database. As I said, a workaround.

Gerrit

On 20.03.2023 13:38, Christian Grün wrote:
Hi Virgile,

Thanks for giving us an update.

2 - the use of the xpointer attribute in the xi:included tag, which
systematically generates an error.

I see. Sorry for that. BaseX relies on the standard JDK library for
parsing XML documents. Unfortunately, XPointer is only partially
supported. It’s interesting to hear, though, that XPointer seems to be
fully supported by eXist-db. I remember that other users reported
problems with xpointer back to us in the past. You could check out the
replies in the past threads [1].

Maybe someone else who’s reading this knows a solution to correctly
resolve XPointer id references? Maybe it helps to embed a more current
version of Apache Xerces in the classpath?

1 - The presence of special characters such as the French "è" in the
file path. For some reason this does not bother Oxygen or eXist, only
BaseX.

Using non-ASCII characters shouldn’t cause any problems (or at least
we are not aware of any); we regularly such use file paths by our own.
Could you possibly provide us with a reproducible example?

Cordialement,
Christian

[1] 
https://www.mail-archive.com/search?l=basex-talk%40mailman.uni-konstanz.de&q=xpointer



Thank you very much for helping me to reach these conclusions, which
has allowed me to make a lot of progress:

1 - The problem is easy to solve: I just need to remove all traces of
unconventionality from my file names (simple but it was necessary to
think about it)
2 - I can put the items I want to include in the root of my file and
avoid using the xpointer attribute. The only disadvantage of this is
that my file is no longer valid with respect to the TEI and I can no
longer take advantage of this scheme to organise their metadata. This
won't stop me from working, but I'd like to take this opportunity to
ask you if you also have an error when you use xpointer in your files?
Is it simply a feature that BaseX does not support?

If necessary, here are the two files I use as a test for this purpose:

music.xml :

<music xmlns:xi="http://www.w3.org/2001/XInclude";>
      <title>Smoke on the water</title>
      <artist>Deep Purple</artist>
      <xi:include href="label.xml" xpointer="purple"/>
</music>

label.xml:

<list><label xml:id="purple">Purple Records</label></list>

Again, Oxygen tells me for its part that everything is valid, and the
tests with eXist included the xpointer feature. And if I remove the
xpointer attribute, I have no errors in sight.

If needed, I work with Java version 11, Windows 10 and BaseX 10.4

Thanks again for everything,

Regards,

Virgile Reignier

Reply via email to