Java Jena:使用inputstream的阅读模型

Java Jena:使用inputstream的阅读模型,java,file,inputstream,jena,stripping,Java,File,Inputstream,Jena,Stripping,我正在使用Jena读取RDFa文件。 创建模型后,我将RDFa文件读入模型。(耶拿的基本用法) 当我在线存储文件并将URL传递给模型时,一切都按预期进行,文件内容以及RDFa信息可供进一步处理。在本地存储文件时,我可以使用“路径名”访问该文件file:///Users/Piejero/file.xhtml“,这里一切都很好。 但是,当我使用InputStream(从文件)访问同一个文件(本地)时,会出现以下错误: 线程“main”org.apache.jena.riot.RiotExceptio

我正在使用Jena读取RDFa文件。 创建模型后,我将RDFa文件读入模型。(耶拿的基本用法)

当我在线存储文件并将URL传递给模型时,一切都按预期进行,文件内容以及RDFa信息可供进一步处理。在本地存储文件时,我可以使用“路径名”访问该文件file:///Users/Piejero/file.xhtml“,这里一切都很好。 但是,当我使用InputStream(从文件)访问同一个文件(本地)时,会出现以下错误:

线程“main”org.apache.jena.riot.RiotException中的异常:{E202}应为XML开始或结束元素。不允许使用字符串数据“元数据”。也许应该有一个rdf:parseType='Literal'用于在rdf中嵌入混合XML内容。可能是条带化错误。

(“元数据”是xhtml页面的最新名称。使用Unicode(UTF-8)编码)

我认为我们正在处理IO问题,但您如何解决它?从我的实验中,我可以得出结论,文件本身没有问题

失败案例的代码是

JenaRdfaReader.inject();
Model model = ModelFactory.createDefaultModel();
File f = new File("/Users/Piejero/file.xhtml");
model.read(new FileInputStream(f), "RDFA");

我正在使用Semargl向Jena添加RDFa支持。

问题可能已经解决,但下面是它对我的工作方式。代码只是使用文件读取器,而不是InputStream

     JenaRdfaReader.inject();
     Model m = ModelFactory.createDefaultModel();  
     try {
        m.read(new FileReader("C:\\data\\workspaces\\websites\\bla.htm"), "", "RDFA");
    } catch (FileNotFoundException e) { 
        e.printStackTrace();
    }

看起来这是在RDF/XML上解析的,而不是在RDFa上解析的。”“条带化错误”是一个rdf/xml问题。