我正在使用Jena來讀取RDFa文件。 創建模型後,我將RDFa文件讀入模型中。 (Jena的基本用法)Jena:使用inputstream讀取模型
當我在線存儲文件並將URL傳遞給模型時,一切都按預期工作,並且文件的內容與RDFa信息一起可用於進一步處理。當我在本地存儲文件時,我可以使用路徑名「file:///Users/Piejero/file.xhtml」訪問該文件,這裏再次正常工作。 但是,當我訪問同一個文件(本地)使用一個InputStream(從文件),我收到以下錯誤:
Exception in thread "main" org.apache.jena.riot.RiotException: {E202} Expecting XML start or end element(s). String data "Metadata" not allowed. Maybe there should be an rdf:parseType='Literal' for embedding mixed XML content in RDF. Maybe a striping error.
(「元數據」是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添加到耶拿RDFa的支持。
看起來這是在RDF/XML而不是RDFa中解析的。 'striping errors'是一個rdf/xml的東西。 – user205512