問題は xsl-fo が完全ではないことだと思います。XML を XSL-FO に変換するときにエラーが発生しますか、それとも XSL-FO を処理するときにエラーが発生しますか?
fo:root
また、名前空間が にある場合は、要素に名前空間を追加する必要はないと思いますxsl:stylsheet
。ただし、これは XSL プロセッサに固有のものである可能性があります。(私はサクソンを使用しています。)
アンテナハウスの経験はありませんが、同様の拡張機能を持つRenderXを使用しています。
XML ファイル、XSL スタイルシート、および結果の XSL-FO の例を次に示します。(RenderX では問題なく動作します。)
XML ファイル
<?xml version="1.0" encoding="UTF-8"?>
<root/>
XSL スタイルシート
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:rx="http://www.renderx.com/XSL/Extensions">
<xsl:output indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="/root">
<fo:root>
<rx:meta-info>
<rx:meta-field name="title" value="Some Title"/>
<rx:meta-field name="author" value="DevNull"/>
<rx:meta-field name="subject" value="Some Subject"/>
<rx:meta-field name="keywords" value="abc def ghi jkl"/>
</rx:meta-info>
<fo:layout-master-set>
<fo:simple-page-master master-name="my-page">
<fo:region-body/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="my-page">
<fo:flow flow-name="xsl-region-body">
<fo:block/>
</fo:flow>
</fo:page-sequence>
</fo:root>
</xsl:template>
</xsl:stylesheet>
XSL-FO出力
<?xml version="1.0" encoding="UTF-8"?>
<fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format"
xmlns:rx="http://www.renderx.com/XSL/Extensions">
<rx:meta-info>
<rx:meta-field name="title" value="Some Title"/>
<rx:meta-field name="author" value="DevNull"/>
<rx:meta-field name="subject" value="Some Subject"/>
<rx:meta-field name="keywords" value="abc def ghi jkl"/>
</rx:meta-info>
<fo:layout-master-set>
<fo:simple-page-master master-name="my-page">
<fo:region-body/>
</fo:simple-page-master>
</fo:layout-master-set>
<fo:page-sequence master-reference="my-page">
<fo:flow flow-name="xsl-region-body">
<fo:block/>
</fo:flow>
</fo:page-sequence>
</fo:root>
rx:
renderx 拡張機能 ( ) をアンテナ ハウス拡張機能に交換すれば、うまくいくと思います。XSL-T を使用して XSL-FO を生成する前に、まず XSL-FO をレンダリングしてみてください。
お役に立てれば。