2016-05-02 11 views
0

Мой вопрос очень прост. Я просто хочу знать, поможет ли покупка профессиональной версии Saxon с разрешением URI файла, поскольку профессиональная версия имеет расширение EXPath.Saxon HE vs Saxon PE: Разрешение файла URI

Я прошу об этом, потому что, как бы я ни старался (передавая параметры командной строки, используя file:///C|/path/to/text.csv и т. Д.), Saxon-HE отказывается позволить моим таблицам стилей загружать необработанный текстовый файл, используя unparsed-text('file:///C:/path/to/text.csv'), и будет разрешать файл, если он исходит от одного из подключенных сетевых дисков, unparsed-text('file://example.com/Dept/path/to/text.csv').

Я должен спросить об этом, потому что в саксонской документации указано, что unparsed-text() - NOT dependant on any custom URI resolver classes being used.

+1

'unparsed-text ('file: /// C: /path/to/text.csv')' отлично выглядит, вы можете сказать нам, какую именно ошибку вы получите, указав точную версию Saxon HE, который вы используете, показывая нам, как вы это называете, используя опцию '-t' из командной строки, например, для подробной диагностики ошибок. –

+0

Чтобы быть справедливым, Saxon не дает никаких ошибок: только таблица стилей укажет, когда CSV-файл не может быть найден. Таблица стилей, которую я использую, [основана на этом примере] (http://andrewjwelch.com/code/xslt/csv/csv-to-xml_v2.html), и я сохранил большую часть таблицы стилей без изменений, помимо сопоставления того, что XML, который мне нужен в шаблоне, который генерирует документ. –

+0

Так что 'unparsed-text-available()' дает false для ваших попыток. Являются ли URI действительно такими же простыми, как 'file: /// C:/path/to/text.csv' или есть ли пробелы в именах каталогов? –

ответ

1

Простой ответ на ваш простой вопрос: нет. Есть много преимуществ для коммерческих саксонских изданий, но они не волшебная фея пыли: если вы используете URI, который не может быть разыменован в Saxon-HE, тогда вам нужно решить, что вы делаете неправильно, а не надеяться, что различное программное обеспечение будет работать для вас.

Я бы предложил сначала попробовать его в самом простом случае. Создайте файл с именем c:/test.txt, а затем попробуйте указать его как unparsed-text('file:///c:/test.txt'). Вернитесь к нам и расскажите, работает ли это.

+0

К сожалению, попытка разрешить URI из 'file: /// c: test.txt' не работает. Единственный способ трансформации - когда путь разрешен с сетевого диска. Однако это может быть связано с тем, как настроены сетевые диски; Наша переменная '% HOMESHARE% 'постоянно связана с сетевым диском. –

+0

@LeeS, 'файл: /// c: test.txt' неверно, ему не хватает косой черты после двоеточия:' file: /// c:/test.txt'. –

+0

Это была опечатка; извините –

0

Ответ должен всегда проверять кодировку исходного текста ПЕРЕД НАЧАЛОМ вы пытаетесь разобрать его в UTF-8, хотя XSLT. : ^)