首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >openrdf-芝麻SPARQLResultsXMLWriter和XSL

openrdf-芝麻SPARQLResultsXMLWriter和XSL
EN

Stack Overflow用户
提问于 2011-10-11 18:59:28
回答 1查看 227关注 0票数 1

如何在SPARQLResultsXMLWriter提供的XML输出流中添加xsl样式表?

代码语言:javascript
复制
RepositoryConnection con = repository.getConnection();
SPARQLResultsXMLWriter sparqlWriter = new SPARQLResultsXMLWriter(out);
   try {
       TupleQuery query = con.prepareTupleQuery(org.openrdf.query.QueryLanguage.SPARQL, qs);
       query.evaluate(sparqlWriter);
   } 
   finally {
       con.close();
   }

我在找这样的东西,

代码语言:javascript
复制
com.hp.hpl.jena.query.ResultSetFormatter.outputAsXML(outStream,resulSet,**xslFilePath**);

由Jena Framework提供...芝麻的相似之处

谢谢,恩佐

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-12 11:45:58

默认的Sesame SPARQLResultsXMLWriter没有此选项。但是,自定义它应该相当容易。您需要做的是创建info.aduna.xml.XMLWriter类的子类(这是SPARQLResultsXMLWriter内部使用的、格式正确的XML的实用程序类)。在这个子类中,添加一个getter/setter来指定样式表链接,然后覆盖startDocument方法,如下所示:

代码语言:javascript
复制
public class MyXMLWriter extends info.aduna.xml.XMLWriter {

     @Override
     public void startDocument() throws IOException {
         super.startDocument();
         _write("<?xml-stylesheet type=\"text/xsl\"");
         _write(" href=\"" + getStylesheetRef() + "\"");
         _writeLn("?>");
     }
}

然后,只需将这个自定义的XMLWriter提供给您的SPARQLResultsXMLWriter,并将样式表ref设置为正确的值:

代码语言:javascript
复制
MyXMLWriter writer = new MyXMLWriter(out);
writer.setStylesheetRef("example.xsl");

SPARQLResultsXMLWriter sparqlWriter = new SPARQLResultsXMLWriter(writer);

未经测试,但相当有信心这应该是可行的。

或者,使用Sesame项目提出功能请求,并/或为他们提供补丁。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7724937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档