java - 问:Saxon XQuery 自定义解析器
问题描述
我正在尝试确认我的注册自定义解析器的实现是正确的......我希望解析器在调用相应的 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());
这是合理的还是我错过了什么?
解决方案
您应该将 设置在URIResolver
上XQueryEvaluator
,而不是设置在 上Configuration
。
此外,这取决于“相应的 saxon xquery 函数”是什么。例如, URIResolver 用于doc()
函数,但不用于unparsed-text()
.
推荐阅读
- r - 如何在 Shiny 中调用选项名称而不是值?
- javascript - 如何使用 react-table 仅重新渲染更新的行?
- php - 将 UTF8 名称插入表会出现重复错误
- c++ - 前向声明语法的差异
- c++ - 使用数组类返回数组c ++
- ssl - 使用 pip install 安装 tensorflow-gpu 时出现 SSL 错误
- unit-testing - 当执行单元测试步骤时以前工作的 VSTS 构建超时时,如何将更好的日志记录添加到调试中
- html - 使用媒体查询使 iframe 响应
- mysql - 我什么时候应该在 MYSQL ISAM 表上运行 OPTIMIZE
- plugins - IBM ICN 3.0.3 - 内容对话框中单值属性的选择列表的丑陋显示