Основная цель: я хотел бы контролировать, какие классы и / или методы, которые разрешено вызывать при разборе XSL-файла через Java.
Использование TransformerFactory:
TransformerFactory factory = TransformerFactory.newInstance();
StreamSource xslStream = new StreamSource(inXSL);
Transformer transformer = factory.newTransformer(xslStream);
...
transformer.transform(in, out);
Можно вызывать Java-методы, имея это в XSL-файле:
<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 можно использовать для управления этим?