wso2ei-6.4.0和XSLT 3.0支持

时间:2019-01-14 05:08:06

标签: xslt wso2 wso2esb wso2ei xslt-3.0

我计划将XSL 3.0版用于我的WSO2 EI应用程序。因为,我需要在应用程序中将JSON映射到JSON,并将JSON映射到XML。目前,我已经尝试使用2.0版。请参考以下代码以了解当前的实现。

我需要知道如何更改此版本以及xsl 3.0版在WSO2EI中需要哪个jar。

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" />
    <xsl:param name="STATIC_BODY_PARAM"></xsl:param>
    <xsl:template match="/availabilityRequest">

        <availabilityRequest>
            <control>
                <userName>
                    <xsl:value-of select="control/userName" />
                </userName>
                <passWord>
                    <xsl:value-of select="control/passWord" />
                </passWord>
            </control>
             ....................
        </availabilityRequest>

    </xsl:template>
</xsl:stylesheet>

当我使用3.0版本时,出现以下错误消息。我添加了您的进一步参考。

ERROR - XSLTMediator Error creating XSLT transformer using : Value {name ='null', expression =fn:concat('gov:repository/transformation/',$ctx:uri.var.travel_type,'_',$ctx:uri.var.activity,'_',$ctx:uri.var.supplier_id,'_in.xslt')}
net.sf.saxon.trans.LicenseException: Requested feature (XSLT 3.0) requires Saxon-PE
    at net.sf.saxon.Configuration.checkLicensedFeature(Configuration.java:584)
    at net.sf.saxon.PreparedStylesheet.setStylesheetDocument(PreparedStylesheet.java:331)
    at net.sf.saxon.PreparedStylesheet.prepare(PreparedStylesheet.java:207)
    at net.sf.saxon.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.java:132)
    at org.apache.synapse.mediators.transform.XSLTMediator.createTemplate(XSLTMediator.java:467)

2 个答案:

答案 0 :(得分:1)

我对WSO2EI并不了解,但是(从您的链接)它似乎正在与某些旧版本的Saxon-HE一起运行。

仅将Saxon 9.9 JAR文件替换为与产品一起分发的文件可能会起作用,也可能不会起作用。这很有可能起作用,但是样式表或调用应用程序可能取决于Saxon中已更改的内容。

如果您尝试过某些操作,那就没有必要告诉我们它不起作用。您需要确切告诉我们它是如何失败的。

您应该尝试运行一个输出system-property('xsl:product-version')值的样式表,以便对所选择的Saxon版本有肯定的确认。

使用XSLT 3.0功能不需要对样式表进行任何更改,但是出于文档原因,最好将version属性更改为version="3.0"

答案 1 :(得分:1)

我已使用以下信息解决了上述问题。

我从以下链接中获得了这些详细信息。非常感谢。 http://nandikajayawardana.blogspot.com/2012/12/how-to-replace-saxonhe940wso2v1jar-in.html