Java 第7层XSLT1.0和XSLT2.0兼容性
我们使用的是Layer7,它是一种ESB,在XSLT1和XSLT2的帮助下实现XML转换 它们使用XALAN和Saxon 9.4.0.4,但启用了特性\u SECURE\u PROCESSING标志 对于我的测试,我使用一个专用的TransformerFactory类,如下所示: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
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
的使用没有影响。