2016-08-05 4 views
0

Конфигурация Saxon позволяет вызвать setAllowExternalFunctions(), чтобы включить или отключить вызовы внешних функций из таблиц стилей.Могу ли я контролировать доступ к некоторым функциям расширения в Саксоне?

Есть ли способ иметь более мелкозернистый контроль над этим? Мои конкретные потребности хотят, чтобы белый список выполнял несколько функций, блокируя все остальное.

Есть ли способ сделать это сейчас?

ответ

0

Предположим, что мы говорим о рефлексивных функций расширения, вы можете вызвать

((ProfessionalConfiguration) config).setExtensionBinder("java", javaLib); 

где javaLib это класс, который расширяет com.saxonica.config.JavaExtensionLibrary и переопределяет методы, такие как bind() и getFunctionItem(), чтобы проверить, что имя функции в порядке, и затем позвоните super() если так.

В качестве альтернативы, предотвратите все вызовы рефлексивных функций и предоставите интегрированные функции расширения для реализации вещей в вашем белом списке.