Jena는 기본적으로 쿼리 결과를 HTML로 출력하는 방법을 제공하지 않습니다. 그러나 XML을 생성 할 수 있습니다. ResultSetFormatter
이 필요합니다. 다음 예는 다음과 같습니다
Dataset ds = TDBFactory.createDataset(dbDirectory.getAbsolutePath());
Model model = ds.getDefaultModel();
String query = "SELECT * WHERE {?subject ?predicate ?object .}";
execution = QueryExecutionFactory.create(query, model.getUnionGraph());
ResultSet results = execution.execSelect();
resultString = ResultSetFormatter.asXMLString(results);
이 방법은 매우 간단한 양식이있을 것이다 얻을거야 XML (예외가 명확성을 위해 생략 잡기).
<sparql xmlns="http://www.w3.org/2005/sparql-results#">
<head>
<variable name="subject"/>
<variable name="predicate"/>
<variable name="object"/>
</head>
<results>
<result>
<binding name="subject">
<uri>http://blahblahblah</uri>
</binding>
<binding name="predicate">
<uri>http://foobar</uri>
</binding>
<binding name="object">
<uri>http://fizzbuzz</uri>
</binding>
</result>
<result>
<binding name="subject">
<uri>http://yadayada</uri>
</binding>
<binding name="predicate">
<uri>http://example</uri>
</binding>
<binding name="object">
<literal>This is a literal, expect them to pop up here and there too</literal>
</binding>
</result>
<!-- and the results continue like this -->
</results>
</sparql>
는 HTML 테이블에 여기에서 가져 오기 XSL 변환을 적용하는 문제이다 : 여기 위에서 사용 된 쿼리에 대한 예입니다. XPath 또는 XML 구문 분석기로 데이터를 읽고 JSP로 전달하는 것도 쉽습니다.
또 다른 옵션은 ResultSetFormatter
을 사용하여 Model
을 반환하고 iterators provided by Jena을 사용하여 테이블을 구성하는 것입니다.
쿼리를 실행하기 위해 사용하는 도구/라이브러리와 현재 사용되는 출력 형식을 알려줘야합니다. – toniedzwiedz
답장을 보내 주셔서 감사합니다. 일식과 예나 TDB를 사용합니다. – maya