Saxon: функция result-document () не работает без сообщения об ошибке - PullRequest
0 голосов
/ 31 января 2019

Я звоню Саксону (9,6 НЕ) из командного файла:

Transform -t -s:"in.xml" -xsl:"ChangeFileName.xsl" -o:"changefilename.txt" 1>>convert.log 2>&1

Команда 1>>convert.log 2>&1 отправляет стандартный вывод ошибок Саксона в файл convert.log.

Преобразованиевызывает XSLT, который выводит 2 текстовых файла:

 <xsl:template match="manual">
         <xsl:result-document method="text" href="version.txt">
                 <xsl:text> </xsl:text><xsl:value-of select="/manual/bookVariables/Variable[@Name='USR_Manual_Version']/@Value"/><xsl:text> </xsl:text>
         </xsl:result-document>  
         <xsl:result-document method="text" href="state.txt">
              <xsl:text> </xsl:text><xsl:value-of select="/manual/bookVariables/Variable[@Name='USR_Manual_State']/@Value"/>
         </xsl:result-document>
 </xsl:template>

Это работает, когда я запускаю преобразование из своей собственной учетной записи пользователя, но не работает, когда я использую другую учетную запись: текстовые файлы state.txt и version.txtне созданы.

Я пытаюсь устранить неисправность, но Саксон не выводит никаких сообщений об ошибках.Мой файл журнала просто содержит

Writing to file:/Z:/version.txt

без указания того, что запись не удалась или почему она не удалась.

Хуже того, когда я запускаю команду Transform непосредственно из окна командной строки, она завершается успешно.

Как получить более подробную информацию об ошибках из Саксонии?

1 Ответ

0 голосов
/ 31 января 2019

Tricky.Маловероятно, что вы получите больше информации из Saxon, потому что Saxon, вероятно, не знает, что файлы не были успешно записаны.Обычно с такими проблемами файлы действительно существуют, но они не там, где вы ожидаете.

Одно предложение: попробуйте запустить с опцией -T.Получившаяся трассировка должна сообщить вам, завершилось ли преобразование (очевидно, успешно) или преждевременно прервалось на каком-то этапе.

Еще одно предложение: поэкспериментируйте с использованием абсолютных URI (например, file: /// x /y / z.txt) в атрибуте href.

Я забыл большую часть того, что я когда-то знал о файловых системах Windows, но есть ли вероятность того, что при сбое учетной записи буква Z диска будет сопоставлена ​​сгде-то неожиданное?

...