1

Jena を使用して RDFa ファイルを読み込んでいます。モデルを作成した後、RDFa ファイルをモデルに読み込みました。(イエナの基本的な使い方)

ファイルをオンラインで保存し、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.

("Metadata" は 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 サポートを Jena に追加しています。

4

1 に答える 1

1

問題はおそらくすでに解決されていますが、これが私にとってどのように機能するかです。コードは、InputStream の代わりに FileReader を使用しているだけです

     JenaRdfaReader.inject();
     Model m = ModelFactory.createDefaultModel();  
     try {
        m.read(new FileReader("C:\\data\\workspaces\\websites\\bla.htm"), "", "RDFA");
    } catch (FileNotFoundException e) { 
        e.printStackTrace();
    }
于 2014-09-15T23:20:40.103 に答える