2017-12-04 12 views
1

eXistに処理命令をそのまま返す方法はありますか?それは何とか出力でそれを無視するようです。eXist-dbでXSL-FOを生成しながら処理命令を保存するにはどうすればいいですか?

XEPをレンダリングエンジンとして使用する場合、処理手順は非常に便利です。したがって、XSL-FOドキュメントのルートの前または開始直後に保存することができれば幸いです。

私はテンプレートを持っている場合:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:tei="http://www.tei-c.org/ns/1.0" version="2.0"> 
    <xsl:template match="/"> 
     <fo:root> 
     <?xep-pdf-page-layout two-columns-right?> 

それは単に返す:

<fo:root xmlns:tei="http://www.tei-c.org/ns/1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format"> 
    <fo:layout-master-set> 

私は処理命令の保存に触れて試してみた:私のクエリのプロローグで declare option exist:serialize "method=xhtml media-type=text/xml process-xsl-pi=yes";が、無駄に。

UPDATE I

私のシナリオの手順は以下のとおりです。transform:transform()関数を呼び出しながらtransform:transform()機能

  • に渡しDB
  • からドキュメントをロード

    1. 、I他のスタイルシートを含む1つの基本スタイルシート
    2. dレンダーエンジンによって後で使用されるFOドキュメントのルートをカバーするpages-mastersのスタイルシートに処理命令を追加します。このスタイルシートは、(すべてのスタイルシートを集める)基本的なスタイルシートに含まれ(<xsl:include/>)、関数に渡されます。 XSLTで
  • +1

    問題を再現する手順を説明できますか? – joewiz

    +0

    ありがとう、私はちょうど質問を更新しました! –

    +0

    @joewizプロローグの宣言が期待どおりのクエリ結果に影響を与えていないように見えるため、これは私のバグのようです。 Honja、あなたのxqueryに[計算されたコンストラクタの構文](https://www.w3.org/TR/xquery-31/#id-computed-pis)を使ってPIが保存されているかどうか確認してみましたか? – duncdrum

    答えて

    4

    、出力処理命令使用https://www.w3.org/TR/xslt/#creating-processing-instructionsに、それは、変換結果にPI <?xep-pdf-page-layout two-columns-right?>を有すること<xsl:processing-instruction name="xep-pdf-page-layout">two-columns-right</xsl:processing-instruction>あります。

    +0

    ありがとう!実際、私の場合の正しいバージョンは ' 2列右'です。できる場合は、回答を更新してください、私はそれを私の問題を解決するものとしてマークします。 –

    +0

    @HonzaHejzl、申し訳ありませんが、私はこのスペースに気づいていなかったし、ちょうどそれがデータなしのπだと思っていました。今修正されました。 –

    関連する問題