Почему Саксон не производит никакого вывода файла? - PullRequest
0 голосов
/ 10 июня 2011

XSLT-парсеры должны создавать пустой файл, даже если нет явного текстового вывода. Однако у меня есть ситуация, когда Saxon-HE 9.3 вообще не выдает никаких файловых выходов.

Я скомпилировал файлы с помощью этой команды:

Transform -s:1.xml -xsl:2.xsl -o:3.html

При этом содержимое 1.xml равно:

<?xml version="1.0"?>
<!-- greeting.xml -->
<x>
<greeting>1</greeting><greeting>2</greeting>
</x>

А содержимое 2.xsl равно:

<?xml version="1.0"?>
<!-- greeting3.xsl -->
<xsl:stylesheet version="2.0" 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="html"/>

  <xsl:template match="/"/>
</xsl:stylesheet>

Однако выходных данных нет (даже пустой файл). Нет сообщений об ошибках.

В чем могла быть проблема?

Ответы [ 2 ]

2 голосов
/ 10 июня 2011

Вполне возможно, что преобразование будет на 100% правильным и при этом не даст результата.Вот пример таблицы стилей, которая делает именно это:

<xsl:template match="/"/>

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

1 голос
/ 11 июня 2011

Вероятно, это ошибка или проблема с «недостаточными привилегиями».

Когда файлы 1.xml , 2.xsl и Transform.exe находится на рабочем столе, проблем с выводом нет.

Но когда файлы находятся в C:\, выдается сообщение об ошибке:

Не удалось создать файл выходного файла: / c: //3.html: доступ к пути 'c: \ 3.html' запрещен.

Еще по какой-то причине, когда файлыв C:\Program Files\Saxonica\SaxonHE9.3N\bin есть нет выходных и нет сообщений об ошибках.

...