DBpediaSPARQLエンドポイントから次のXMLを取得します。
<?xml version="1.0"?>
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
<head>
<variable name="onto"/>
</head>
<results>
<result>
<binding name="onto">
<uri>http://www.w3.org/2002/07/owl#Thing</uri>
</binding>
</result>
<result>
<binding name="onto">
<uri>http://www.w3.org/2002/07/owl#Thing</uri>
</binding>
</result>
<result>
<binding name="onto">
<uri>http://www.w3.org/2003/01/geo/wgs84_pos#SpatialThing</uri>
</binding>
</result>
</results>
</sparql>
イエナと一緒に読んでスキャンしようとすると、次のようになります。
ResultSet r = ResultSetFactory.fromXML( xmlCode );
while ( r.hasNext() ) {
QuerySolution soln = r.next()
...
}
私は常に次の例外を受け取ります:
com.hp.hpl.jena.sparql.resultset.ResultSetException: End of document while processing solution
at com.hp.hpl.jena.sparql.resultset.XMLInputStAX$ResultSetStAX.staxError(XMLInputStAX.java:503)
at com.hp.hpl.jena.sparql.resultset.XMLInputStAX$ResultSetStAX.getOneSolution(XMLInputStAX.java:413)
at com.hp.hpl.jena.sparql.resultset.XMLInputStAX$ResultSetStAX.hasNext(XMLInputStAX.java:218)
これはイエナのバグですか、それとも他に何がありますか?
編集:完全を期すために、私はこのエラーについてのスレッドを報告します:
bio2rdfメーリングリストからの助けがあれば、エラーをもう少し追跡することができました。
Arq2.8.3は正常に動作しますArq2.8.4は説明されたエラーで失敗しますArq2.8.5は説明されたエラーで失敗しますしたがって、テストのためにArt2.8.3を保持すると思います。このエラーをもう少しデバッグするのに役立つかどうか教えてください。
変。エラーはSTaXパーサーから発生しています-すべての基本レベルのXML解析はWoodstoxに委託されています。ほとんどの場合、新しい入力をブロックするのではなく、入力が到着してEOFを確認するよりも速く読み取っています。ストリーム全体を読み取ってから、読み取ったバイトを解析してみましたが、問題なく動作します。2.8.3がなぜ違うのかは、今のところタイミングがわかりません。
回避策:XMLパーサーを次のように切り替えます。
ARQ.getContext()。setTrue(ARQ.useSAX);
QueryExecutionFactory.sparqlServiceAndyを呼び出す前に