如何配置 wso2esb 以使用 Saxon 9.8 HE

how to configure wso2esb to use Saxon 9.8 HE

我正在尝试使用 XSLT 版本“3.0”的 XSLT 调解器。但我无法使用以下 XSLT 转换。

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:math="http://www.w3.org/2005/xpath-functions/math"
xmlns:map="http://www.w3.org/2005/xpath-functions/map"
xmlns:array="http://www.w3.org/2005/xpath-functions/array"
exclude-result-prefixes="#all"
version="3.0">

  <xsl:output version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="true"/>

  <xsl:variable name="data" select="//return => json-to-xml()"></xsl:variable>
<xsl:template match="/" xpath-default-namespace="http://www.w3.org/2005/xpath-functions">
    <ns1:root xmlns:ns1="http://urldata.com/ns1">
        <ns1:MessageData>
            <xsl:value-of select="$data//boolean[@key = 'accountstatus']"/>
        </ns1:MessageData>
        <ns1:Code>
            <xsl:value-of select="$data//map[@key = 'response']/string[@key = 'Code']"/>
        </ns1:Code>
        <!--- use this approach for everything you want to select ... -->
    </ns1:root>
  </xsl:template>
</xsl:stylesheet>

我得到的错误是:net.sf.saxon.trans.LicenseException: Requested feature (XSLT 3.0) requires Saxon-PE

XSLT 3.0 在 Saxon 的商业版本中得到支持,当时它仍在开发中,但只有在 W3C 规范最终确定时才支持开源版本 Saxon-HE。尝试更高版本的 Saxon - 当前版本是 10.3。

使用以下方法获取 Saxon-HE 9.8 URL

https://sourceforge.net/projects/saxon/files/Saxon-HE/9.8/

并下载下载次数最多的版本并将其放在您的 esb 配置路径下

wso2esb-4.9.0/lib/

并重启服务