在Jena读取OWL/RDL模型时,我有一个org.apache.jena.riot.RiotException: Bad character in IRI (space)
异常。
我知道这是因为我在XML名称空间声明中的IRI声明中有一个空格(这是不允许的),但是由于我在开发的开源工具中使用Jena来创建与本体对应的图,所以我想知道(XML)模型中发生错误的行号。在耶拿捕获这个异常是可能的吗?
您可以使用
提供错误处理程序RDFParser.source("filename").errorHandler(...).toModel();
解析器实际上会发出警告(稍后当行号不可用时会生成错误)
更改为错误:
Map<String, Object> properties = new HashMap<>();
properties.put("WARN_BAD_NAMESPACE_URI", "EM_ERROR");
Context cxt = new Context().set(SysRIOT.sysRdfReaderProperties, properties);
RDFParser.source(filename)
.context(cxt)
.errorHandler(....)
.toModel();