【问题标题】:Orbeon XBL and xxbl:transformOrbeon XBL 和 xxbl:transform
【发布时间】:2021-09-19 00:22:17
【问题描述】:

我仍处于了解和学习使用 XBL 组件的早期阶段。我正在尝试使用样式表在主实例中的节点内容上生成 HTML“报告”(暂时搁置如果该节点发生更改则更新它的问题)。我可以让样式表运行并生成其中没有任何值的 HTML,但我仍在尝试了解如何将数据 get 到样式表。我查看了“XForm Sandbox”示例“xbl-xslt.xhtml”,它确实在我的应用程序中运行。该示例在自定义标记内使用 xform 重复,并且在样式表中有一个模板与引用自定义标记的匹配项,所以我假设这就是样式表获取其数据的方式。

我不希望它生成任何 XForm 标记,只生成 HTML。在 XBL 绑定中,我使用 xxbl:mode="binding" 作为属性。我只想在自定义标签上添加一个ref 属性,但我不知道如何将数据传递给样式表。 (目前在我的样式表中,所有内容都在 <xsl:template match="/"> 元素下。) 我注意到“备用表”示例有这样的:

<xsl:template match="@*|node()">
    <xsl:copy>
         <xsl:if test="/*">
              <xsl:attribute name="xxbl:scope">outer</xsl:attribute>
         </xsl:if>
         <xsl:apply-templates select="@*[not(name() = ('style1', 'style2'))]|node()"/>
    </xsl:copy>
</xsl:template>

还有这个:

<xsl:template match="foo:table-alternate">
  <xh:table>
      <xsl:apply-templates select="@*|node()"/>
  </xh:table>
</xsl:template>

我想这是这个工作的关键,但我怎么能简单地在我的 xbl 的自定义标签上添加一个 ref 属性并让这个工作?我一直在查看 Orbeon 文档、“沙盒”示例和其他地方,但我可能仍然误解了 XBL 组件的一些基本原理。谁能指出我正确的方向?

【问题讨论】:

  • 我试图在下面的回答中提供一些上下文。如果我误解了你的问题,请告诉我。 -亚历克斯

标签: orbeon xbl


【解决方案1】:

您是说要将绑定到您的组件的节点中的数据传递给 XSLT?如果是这样,那是不可能的,而且 XSLT 不应该与 XBL 结合使用。

将 XBL 中的 XSLT 视为某些其他语言中的宏,作为 meta-programming 的一种形式,它允许您在“表单编译时”运行代码,并且该代码能够生成 XForms 和 HTML。由于它在“编译时”运行,因此数据尚不可用。主要语言仍然是 XForms,在大多数情况下,您不需要在 XBL 组件中使用 XSLT。

【讨论】:

    猜你喜欢
    • 2011-12-05
    • 2011-10-17
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 2021-08-23
    • 1970-01-01
    • 2011-05-28
    • 2013-01-02
    相关资源
    最近更新 更多