2013-07-29 4 views
0

Я пытаюсь использовать Saxon 9.1.0.8 HE применять (в последнее время) Docbook XSL и получаю это:Saxon не поддерживает `Saxon: output` больше

Don't know how to chunk with SAXON 9.1.0.8 from Saxonica 
Processing terminated by xsl:message at line 46 in chunker.xsl 

Docbook источник XSL утверждает, что:

<!-- This stylesheet works with XSLT implementations that support --> 
<!-- exsl:document, saxon:output, or Xalan's redirect:write --> 
<!-- Note: Only Saxon 6.4.2 or later is supported. --> 

... и визит в линии 46, указанные в сообщении об ошибке (которое проверяет для element-available('saxon:output')) и Saxon documentation, показывают, что корень проблемы не в том, что Saxon больше не признает расширение saxon:output.

This source предполагает, что сделать Saxon 9,4 совместим с XSLT 1.0 (который является то, что таблицы стилей находятся, и что saxon:output раньше хорошо в первую очередь), своего рода «обратную совместимость поведения» должна быть включена. Но почему, и как?

(The DocBook стилей в вопросе действительно указать <xsl:stylesheet version="1.0" xmlns:saxon="http://icl.com/saxon">.)

+0

Это действительно вопрос в списке рассылки [Saxon Помощь] (https://lists.sourceforge.net/lists/listinfo/saxon-help), хотя Майкл Кей иногда изредка болтается здесь. –

+1

Это скорее вопрос о docbook. –

+0

Спасибо всем за очень полезные ответы. Решена моя практическая проблема, связанная с docbook. (Я собираюсь ответить на вопрос @ MichaelKay, что более новые версии Saxon не предназначены для такой обратной совместимости, насколько XSLT 1.0 или устаревшие элементы расширения идут, эта часть вопроса кажется мне о Саксоне и, следовательно, о XML инструменты программирования, поэтому я решил задать здесь.) –

ответ

3

Я не эксперт в DocBook, но я считаю, что таблицы стилей Docbook 1.0, вероятно, лучше всего работают с Saxon 6.5.5, и если вы хотите использовать последние версии Saxon (например, для повышения производительности), то вам, вероятно, с помощью таблиц стилей Docbook 2.0: см

http://norman.walsh.name/2011/08/25/docbook-xslt-2

1

Saxon 9 поддерживает XSLT 2.0, так что просто использовать <xsl:result-document> для создания нескольких результирующих деревьев.

2

Если вы хотите запустить таблицы стилей XSLT 1.0, пытаясь получить доступ к расширениям в пространстве имен xmlns:saxon="http://icl.com/saxon", тогда вы должны использовать lastest version of Saxon 6, который является 6.5.5, я думаю.

Saxon 9 - это процессор XSLT 2.0, и я не думаю, что комментарий, говорящий о «Saxon 6.4.2 или новее», имеет смысл в Saxon 9, он говорит только о выпусках Saxon 6.x XSLT 1.0 процессор.

Помимо этого я согласен с Кеном, если вы хотите использовать Saxon 9, затем отредактируйте таблицы стилей, чтобы использовать XSLT 2.0 xsl:result-document.