2014-02-14 33 views
2

我尝试使用下面的代码从教程导入与Apache耶拿的RDF/XML文件:导入RDF/XML在Apache的耶拿:小写首选例外

Path input = Paths.get("C:\Users\Admin\Documents"); 
Model model = ModelFactory.createDefaultModel() ; 
model.read(input+File.separator+"foaf.rdf", "RDF/XML") ; 

正在导入的文件是here

当我运行测试代码,返回以下异常:

Exception in thread "main" org.apache.jena.riot.RiotException: <C:\Users\Admin\Documents\foaf.rdf> 
    Code: 11/LOWERCASE_PREFERRED in SCHEME: 
    lowercase is preferred in this component 

的信息是非常有用的和不言自明! 但是,你有解决这个问题的办法吗?

回答

9

的问题是,它是期待一个URI,不是文件名。它将C:视为(未知)URI方案'C'。

尝试以下操作来代替:

Path input = Paths.get("C:\Users\Admin\Documents", "foaf.rdf"); 
Model model = ModelFactory.createDefaultModel() ; 
model.read(input.toUri().toString(), "RDF/XML") ; 
+0

该解决方案更好。我很抱歉将我之前接受的答案转给你,但为了清楚起见,我必须这样做。 –

2

我不知道什么阿帕奇耶拿或做但你可以尝试lowercasing“C:”,但是这可能不会工作,所以你可以尝试

file:/c:/my/path 
+0

只是一个小反馈:lowercasing工作,即它去掉,我提到,回到另一个异常('UNWISE_CHARACTER')的问题。比我用'c:/ my/path'和一切运作良好。 –