XSLT-шаблон выводится по-разному при разных установках Saxon?(Exist-DB) - PullRequest
0 голосов
/ 13 декабря 2018

На моем сайте я использую XQuery 3.1 (в eXist-db 4.4) для вывода XSLT 2.0 преобразований TEI-XML документов.

Возьмем, к примеру, этот документ http://medieval -inquisition.huma-num.fr / doc / MS609-0176

В моей функции я получаю документ tei-xmlMS609-0176.xml как $doc и динамически подготовленный XSLT как $stylesheet, а затем выполнить transform:transform

Сериализованный $stylesheet (со всеми узлами, включенными для параметров) и документ tei-xmlвставлено здесь: https://xsltfiddle.liberty -development.net / bdxtrg / 6

Одним из основных заданий этого преобразования является вывод сносок.

Преобразование в скрипте XSLTвыводит правильно: есть 3 сноски.

Но на сайте идентичное преобразование и саксонский процессор, использующий идентичные документы, выводит 5 сносок .

На самом деле проблема (во всех преобразованиях) заключается только в обработке tei:date[@type='deposition_date'].Преобразование - это «тройная обработка» всех ссылок на tei:date[@type='deposition_date'], где оно существует только один раз в файле.Это происходит с этим одним элементом в каждом документе (что можно увидеть, посмотрев на любой элемент на сайте).

С точки зрения этапов процесса: номера сносок добавляются в текст,затем в отдельном режиме файл XSLT затем использует эти цифры для построения сносок внизу.Поэтому проблема заключается в первом шаге.

Номера сносок присваиваются tei:date[@type='deposition_date'] в строке 80-84 в скрипте XSLT.Они обрабатываются в уникальном шаблоне из других элементов.

Для справки, функция Xquery:

declare function document:doc-docview($node as node(), $model as map(*), $docset as xs:string)
{   
  let $stylesheet := document-view:doc-view-xslt($docset)

  let $doc := doc(concat($globalvar:URIdata,$docset))

   return transform:transform($doc,$stylesheet,())
}

Я совершенно не понимаю, как справиться с этой проблемой.Это тот же процессор (саксонский), но другой результат?Могу ли я внести некоторые изменения в файл XSLT, чтобы смягчить эту проблему?

(я выполнил точно такое же преобразование в Oxygen (также используя Saxon), и он также дает правильные результаты.)

Доступ к среде eXist-db и ее тестирование можно получить здесь http://ciham -digital.huma-num.fr / exist / apps / eXide / index.html в каталоге / db / apps /deheresi / data / MS609-0176.xml и / db / apps / deherei / modules / просмотр документа (функция) document-view:doc-view-xslt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...