我们正在使用Layer7,这是一个在XSLT1和XSLT2的帮助下进行XML转换的ESB。
他们使用XALAN和Saxon 9.4.0.4,但是他们启用了FEATURE_SECURE_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上,就会被忽略而不会出现任何错误!
有人能告诉我关于XSLT1和XSLT2的Layer7真正支持的内容吗?