Java 第7层XSLT1.0和XSLT2.0兼容性

Java 第7层XSLT1.0和XSLT2.0兼容性,java,xslt-1.0,xslt-2.0,Java,Xslt 1.0,Xslt 2.0,我们使用的是Layer7,它是一种ESB,在XSLT1和XSLT2的帮助下实现XML转换 它们使用XALAN和Saxon 9.4.0.4,但启用了特性\u SECURE\u PROCESSING标志 对于我的测试,我使用一个专用的TransformerFactory类,如下所示: package company.transformer.factory; import javax.xml.XMLConstants; import javax.xml.transform.Source; impor

我们使用的是Layer7,它是一种ESB,在XSLT1和XSLT2的帮助下实现XML转换

它们使用XALAN和Saxon 9.4.0.4,但启用了特性\u SECURE\u PROCESSING标志

对于我的测试,我使用一个专用的TransformerFactory类,如下所示:

package company.transformer.factory;

import javax.xml.XMLConstants;
import javax.xml.transform.Source;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerConfigurationException;
import net.sf.saxon.TransformerFactoryImpl;;


public class TransformerFactory extends TransformerFactoryImpl   {

    @Override
    public Transformer newTransformer(Source arg0)
            throws TransformerConfigurationException {
        this.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING,true);
        Transformer t=super.newTransformer(arg0);       
        return t;
    }

    @Override
    public Transformer newTransformer()
            throws TransformerConfigurationException {
        this.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING,true);
        Transformer t=super.newTransformer();
        return t;
    }   

}
在使用XSLT2时,我可以使用“xsl:function”,但一旦部署到ESB上,就会忽略这一点,而不会产生任何错误


谁能告诉我Layer7在XSLT1和XSLT2方面真正支持什么?

部署在USB上???@leppie ESB当然!如果
xsl:function
为ignores,则可能意味着出于某种原因,转换器未设置为使用Saxon,并且XSLT 1.0正在忽略声明(应该如此),但是,您应该在调用该函数时收到一个错误。另一个原因可能更简单:包含函数的模板永远不会在服务器上触发(不同的数据、不同的名称空间)。
功能\u SECURE\u处理
xsl:function
的使用没有影响。