XInclude не работает должным образом в командной строке Saxon, но работает с oXygen

У меня есть несколько XML-файлов, расшифровывающих рукописи, которые взяты из общего описания книги, в которой находятся эти рукописи. В моем XML они форматируются с помощью трех операторов включения, которые расположены следующим образом:

      <xi:include href="../Witness_Descriptions/Trinity_R_3_20.xml" xpointer="publication" xmlns:xi="http://www.w3.org/2001/XInclude"/>
<xi:include href="../Witness_Descriptions/Trinity_R_3_20.xml" xpointer="Trinity_R_3_20" xmlns:xi="http://www.w3.org/2001/XInclude"/>
<xi:include href="../Witness_Descriptions/Minor_Poems_Vol_II.xml" xpointer="MacCracken" xmlns:xi="http://www.w3.org/2001/XInclude"/>

Когда я запускаю xslt в oXygen, чтобы преобразовать его в html (используя встроенный в oXygen преобразователь Saxon-PE 10.6), он работает нормально. Однако мне нужна возможность генерировать сравнения между всем корпусом документов, для чего я использую преобразователь saxon-he 9 с помощью следующей командной строки:

      java -Xms128m -Xmx1024m -XX:+UseCompressedOops -cp saxon9he.jar net.sf.saxon.Query -t -xi -q:test.xq -o:1698815174.72894737321461.xml line=l.1 zone=EETS.ME.I marginalia=text collection=/home/matrygg/minorworksoflydgate.net/XML/Mumming_Eltham

Который собирает XML-файлы из определенного каталога, используя следующие две строки и $collection в качестве внешней объявленной переменной:

      let $collection:=concat($collection, '?select=*.xml')
let $q:=collection($collection)

Если у меня нет включений в XML-файлы в каталоге Mumming_Eltham, это работает нормально и делает то, что я ожидаю. Если я это сделаю - как я начал делать, как упоминалось выше, - я получу следующую ошибку:

      Warning: org.xml.sax.SAXParseException; systemId:
  file:/home/matrygg/minorworksoflydgate.net/XML/Mumming_Eltham/Trinity_College_R_3_20_Mumming_Eltham.xml; lineNumber: 22; columnNumber: 142; Include operation failed, reverting to fallback. Resource error reading file as XML (href='../Witness_Descriptions/Trinity_R_3_20.xml'). Reason: XPointer resolution unsuccessful.
Error on line 22 column 142 of Trinity_College_R_3_20_Mumming_Eltham.xml:
  SXXP0003: Error reported by XML parser: An include with href
  '../Witness_Descriptions/Trinity_R_3_20.xml'failed, and no fallback element was found.
Query failed with dynamic error: org.xml.sax.SAXParseException; systemId: file:/home/USERNAME/minorworksoflydgate.net/XML/Mumming_Eltham/Trinity_College_R_3_20_Mumming_Eltham.xml; lineNumber: 22; columnNumber: 142; An include with href '../Witness_Descriptions/Trinity_R_3_20.xml'failed, and no fallback element was found.

Для меня очевидно, что проблема в том, что она не обрабатывает относительные пути, но я не могу найти примеров того, как решить эту проблему в интерфейсе командной строки или XML, только через fn:resolve-uri в xsl. Есть ли способ сделать это в командной строке, или мне нужно указать абсолютные URI для всего, что я могу включить? Я проверил, файлы существуют в ожидаемом месте и должны иметь разрешения, позволяющие их анализировать.

0 ответов

Другие вопросы по тегам