Q:Saxon XQuery自定义解析器

问题描述 投票:0回答:1

我正在尝试确认我注册自定义解析器的实现是正确的...我希望解析器在调用相应的saxon xquery函数时抛出“未经授权”错误。

首先,我沿着这些行编写一个自定义类:

class CustomURIResolver implements URIResolver{
            public Source resolve(String href, String base) throws XPathException {
                throw new XPathException("Illegal Operation");
            }]
        }

然后我通过处理器上的基础配置设置解析器:

Processor proc = new Processor(false);
// Override SystemURIResolver
net.sf.saxon.Configuration xconfig = proc.getUnderlyingConfiguration();
xconfig.setURIResolver(new CustomURIResolver());

这合理吗?或者我缺少什么?

java xquery saxon
1个回答
0
投票

您应该将URIResolver设置在XQueryEvaluator上,而不是在Configuration上。

此外,这取决于“相应的撒克逊人xquery函数”是什么。 URIResolver例如用于doc()函数,但不用于unparsed-text()

© www.soinside.com 2019 - 2024. All rights reserved.