2

Windows で xsltproc を使用し、エンティティではなく docbook 5 ドキュメントで xi:include を使用しようとしています。

残念ながら、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

これで動作するはずですか?

4

1 に答える 1

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 の処理に関するものなので、名前空間を認識するスタイルシート ( http://sourceforge.net/projects/docbook/files/docbook-xsl-ns/から入手できるdocbook-xsl-ns ) に切り替えることをお勧めします。その場合、名前空間の削除は必要ありません。

の使用についても言及してxi:includeいます。XInclude に関する問題は、名前空間の削除の問題とはおそらく無関係です。「Windowsのバージョンはこれをサポートしていません」と言うとき、「これ」が何を意味するのかわかりません。

以下も参照してください。

于 2013-05-17T08:50:22.953 に答える