Во-первых, если у вас возникла проблема с переходом на новую версию Saxon из-за снижения производительности, то в интересах сообщества пользователей в целом я настоятельно рекомендую вам поработать с нами, чтобы выявить эту проблему. и исправлено, вместо того, чтобы придерживаться старой версии с известными ошибками.
Я подозреваю, что вы правильно определили проблему. У него долгая и запутанная история. IIRC (и это, вероятно, упрощение): JDK 5 требовал, чтобы файл сервисов был в формате, который отличался от документированного формата, и Saxon использовал работающий формат. JDK 6 принял «неправильный» формат, а также правильный формат. JDK 7 только принял правильный формат. В результате более старые версии Saxon не работают с более новыми версиями JDK - по крайней мере, в отношении этого интерфейса.
Обходной путь - создать экземпляр Sathon XPathFactory напрямую (используя new net.sf.saxon.xpath.XPathFactoryImpl()
), а не использовать механизм поиска JAXP. В любом случае это гораздо эффективнее.