如何在 XLST1.0 模板中引发错误?
How to raise an error inside an XLST1.0 template?
因为我在网上找不到任何东西(甚至在堆栈溢出上也找不到),我希望你能帮助我找出如何在 XSL 转换运行时引发异常。它在 Oracle Service Bus 11 中运行,因此我们只有 XLST1.0 功能:(
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="//DATA">
<parsed>
<xsl:for-each select="ITEM">
<xsl:choose>
<xsl:when test="COND = 'X'">
<xsl:text>disabled</xsl:text>
</xsl:when>
<xsl:when test="COND = ''">
<xsl:text>running</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>HERE SHOULD AN ERROR BE RAISED!</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</parsed>
</xsl:template>
</xsl:stylesheet>
您可以使用非常方便的 xsl:message 和 terminate="yes|no"
属性。在您的情况下,您可以按如下方式实现它:
<xsl:template match="//DATA">
<parsed>
<xsl:for-each select="ITEM">
<xsl:choose>
<xsl:when test="COND = 'X'">
<xsl:text>disabled</xsl:text>
</xsl:when>
<xsl:when test="COND = ''">
<xsl:text>running</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:message terminate="yes">HERE SHOULD AN ERROR BE RAISED!</xsl:message>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</parsed>
</xsl:template>
我建议查看上面链接的文档,因为描述了一些使用 xsl:message
的好方法。
因为我在网上找不到任何东西(甚至在堆栈溢出上也找不到),我希望你能帮助我找出如何在 XSL 转换运行时引发异常。它在 Oracle Service Bus 11 中运行,因此我们只有 XLST1.0 功能:(
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="//DATA">
<parsed>
<xsl:for-each select="ITEM">
<xsl:choose>
<xsl:when test="COND = 'X'">
<xsl:text>disabled</xsl:text>
</xsl:when>
<xsl:when test="COND = ''">
<xsl:text>running</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:text>HERE SHOULD AN ERROR BE RAISED!</xsl:text>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</parsed>
</xsl:template>
</xsl:stylesheet>
您可以使用非常方便的 xsl:message 和 terminate="yes|no"
属性。在您的情况下,您可以按如下方式实现它:
<xsl:template match="//DATA">
<parsed>
<xsl:for-each select="ITEM">
<xsl:choose>
<xsl:when test="COND = 'X'">
<xsl:text>disabled</xsl:text>
</xsl:when>
<xsl:when test="COND = ''">
<xsl:text>running</xsl:text>
</xsl:when>
<xsl:otherwise>
<xsl:message terminate="yes">HERE SHOULD AN ERROR BE RAISED!</xsl:message>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</parsed>
</xsl:template>
我建议查看上面链接的文档,因为描述了一些使用 xsl:message
的好方法。