Xslt 如何在eXist db中生成XSL-FO的同时保留处理指令?

Xslt 如何在eXist db中生成XSL-FO的同时保留处理指令?,xslt,exist-db,processing-instruction,Xslt,Exist Db,Processing Instruction,有没有一种方法可以使eXist按原样返回处理指令?似乎它在输出中忽略了它 如果我使用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.te

有没有一种方法可以使eXist按原样返回处理指令?似乎它在输出中忽略了它

如果我使用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选项exist:serialize“method=xhtml-media-type=text/xml-process xsl-pi=yes”在我的查询的序言中,但无效

更新I

我的场景的步骤是:

  • 从数据库加载文档
  • 将其传递给
    transform:transform()
    函数
  • 调用
    transform:transform()
    函数时,我向它传递一个基本样式表,其中包括其他样式表
  • 我需要将处理指令添加到
    页面母版
    的样式表中,该样式表包含渲染引擎稍后使用的FO文档的根。此样式表包括(
    )到基本样式表中(收集所有样式表)并传递给函数

  • 使用XSLT时,要输出处理指令,请使用
    右两列
    ,以在转换结果中使用pi

    使用XSLT时,要输出处理指令,请使用,也就是说,
    右两列
    在转换结果中有pi

    您能说明重现问题的步骤吗?好的,谢谢,我刚刚更新了问题@joewiz对我来说这听起来像一个bug,因为prolog声明似乎不会像预期的那样影响查询结果。Honja,您是否尝试在xquery中使用以查看PI是否保留在那里?@duncdrum从下面标记为正确的答案中,我觉得问题是在XSLT级别(即,在transform:transform函数的范围内),而不是在调用XSLT的xquery级别。您能说明重现问题的步骤吗?好,谢谢,我刚刚更新了问题@joewiz对我来说这听起来像一个bug,因为prolog声明似乎不会像预期的那样影响查询结果。Honja,您是否尝试在xquery中使用以查看PI是否保留在那里?@duncdrum从下面标记为正确的答案中,我认为问题出现在XSLT级别(即,在transform:transform函数的范围内),而不是调用XSLT的xquery级别。谢谢!实际上,在我的例子中,正确的版本是
    右边的两列
    。如果可以,请更新答案,我会将其标记为解决我的问题。@HonzaHejzl,对不起,我没有注意到空格,只是认为它是一个没有数据的pi。现在更正。谢谢!实际上,在我的例子中,正确的版本是
    右边的两列
    。如果可以,请更新答案,我会将其标记为解决我的问题。@HonzaHejzl,对不起,我没有注意到空格,只是认为它是一个没有数据的pi。现在更正。