2013-05-15 2 views
2

Я пытаюсь использовать xsltproc для windows и xi: включить в документ docbook 5, а не сущности.Невозможно удалить пространство имен из документа DB5, не удается выполнить Ошибка в xsl: сообщение в строке 162 docbook.xsl:

К сожалению, версия для Windows этого не поддерживает.

Saxon 9,6 и msxsl как сообщить об ошибке:

Unable to strip the namespace from DB5 document, cannot proceed Error at xsl:message on line 162 of docbook.xsl: 

Я включил

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:d="http://docbook.org/ns/docbook" 
exclude-result-prefixes="d"> 

в моих настройках XSL.

Есть ли что-нибудь еще, что я должен делать?

Я отредактировал мой настройки стилей для

<?xml version='1.0'?> 

<xsl:import href="file:///C:/docbook/docbook-xsl-ns-1.78.1/fo/docbook.xsl"/> 

и использовать команду

>C:\docbook\Saxonica\SaxonHE9.5N\bin\transform -xi -xsl:my_fo.xsl -s:my_db.xml 

должны это сейчас работать?

ответ

2

Ни версия HE Saxon 9.5 (еще нет 9.6), либо msxsl поддерживает расширение exsl:node-set() (которое требуется при удалении пространства имен). Saxon 9 - это процессор XSLT 2.0, который в основном означает, что эта функция расширения не нужна (см. Также http://www.saxonica.com/documentation/html/extensions/functions/exslt.html). Для msxsl вам потребуется дополнительная загрузка (см. http://www.xml.com/pub/a/2003/08/06/exslt.html).

Он должен работать с Saxon 6.5.5 или xsltproc (процессоры XSLT 1.0).

Из сообщения об ошибке я вижу, что вы используете таблицы стилей, не поддерживающие пространство имен. Поскольку речь идет о обработке DocBook 5, я советую вам перейти на таблицы стилей, ориентированных на пространство имен (docbook-xsl-ns, доступное от http://sourceforge.net/projects/docbook/files/docbook-xsl-ns/). Тогда не будет необходимости в каком-либо расширении пространства имен.

Также упоминается использование xi:include. Любые проблемы с XInclude, вероятно, не связаны с проблемой удаления пространства имен. Я не уверен, что вы подразумеваете под «этим», когда говорите «версия для Windows не поддерживает это».

Смотрите также:

+0

Большое спасибо за отличный ответ. –

+0

Я рад, что смог помочь! – mzjn

 Смежные вопросы

  • Нет связанных вопросов^_^