我尝试使用此代码转换XML / RDF格式的resultset
:
ResultSet result = rmParliament.selectQuery(select);
System.out.println(ResultSetFormatter.asText(result));
ResultSetFormatter.outputAsRDF(System.out, "RDF/XML", result);
代码的第二行是验证查询的正确行为(它有效!),但我在控制台中输入以下内容:
<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:rs="http://www.w3.org/2001/sw/DataAccess/tests/result-set#" >
<rdf:Description rdf:nodeID="A0">
<rs:size rdf:datatype="http://www.w3.org/2001/XMLSchema#int">0</rs:size>
<rs:resultVariable>value</rs:resultVariable>
<rs:resultVariable>property</rs:resultVariable>
<rs:resultVariable>name</rs:resultVariable>
<rdf:type rdf:resource="http://www.w3.org/2001/sw/DataAccess/tests/result-set#ResultSet"/>
</rdf:Description>
</rdf:RDF>
不包含我的数据,我的代码出了什么问题?
答案 0 :(得分:3)
问题是您的打印调试实际上会消耗所有结果,最后会留下ResultSet
。当您尝试将其输出为RDF / XML时,没有更多结果可用。
您可以通过制作ResultSet
rewindable:
ResultSetRewindable result =
ResultSetFactory.makeRewindable( rmParliament.selectQuery(select) );
System.out.println(ResultSetFormatter.asText(result));
result.reset(); // back to the start
ResultSetFormatter.outputAsRDF(System.out, "RDF/XML", result);