[英]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.