![](/img/trans.png)
[英]How do I call a specific overridden method from an inherited method in Java?
[英]How do I allow/deny specific java method call from an XSL in Java?
主要目标:我想控制在通过Java解析XSL文件时允许调用哪些类和/或方法。
使用TransformerFactory:
TransformerFactory factory = TransformerFactory.newInstance();
StreamSource xslStream = new StreamSource(inXSL);
Transformer transformer = factory.newTransformer(xslStream);
...
transformer.transform(in, out);
可以通过在XSL文件中调用Java方法来实现:
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:java="java">
...
<currentDay><xsl:value-of select="java:util.Date.new()" /></currentDate>
含义java:util.Date.net()
是新的Date()。toString()。
我知道我可以使用:
factory.setFeature(XMLConstants.FEATURE_SECURE_PROCESSING, false);
但这否认一切。
两个问题:
1)如何控制允许调用哪些特定的Java方法?
2)如果无法使用TransformerFactory,可以使用其他哪些XSL库来控制它?
从您的示例中看,好像您正在使用Xalan XSLT处理器(Java的可扩展性因一个处理器而异)。
如果转到Saxon,则默认情况下将无法从XSLT代码中调用任意Java方法,而只能调用已明确注册为“集成扩展功能”的扩展功能。 这似乎是您要的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.