2017-04-27 118 views
1

我想将Java对象转换为RDF XML。我正在使用Jena API。我不想拨打任何REST电话。将Java对象转换为RDF XML

在REST方法,我们可以这样写:

@Produces(OslcMediaType.APPLICATION_RDF_XML) 

所以它发在RDF XML格式的响应。

我不能使用这个,因为我已经在一个REST方法。我可以调用另一个REST调用来将对象转换为RDF。但我不想打另一个REST呼叫。

有没有人有另一种解决方案将Java对象转换为RDF XML?

+0

什么是耶拿使用的序列化框架?在杰克逊的情况下,您可以访问ObjectMapper并手动序列化内容。我会试着去那里看看,但我没有耶拿的经验来完全告诉你。 –

+0

这基本上是http://stackoverflow.com/questions/34098348/how-can-i-easily-convert-rdf-triples-to-from-an-idomatic-java-pojo-business-obje?rq的副本= 1 – Michael

回答

1

您可以为您创建自己的RDF序列化程序类,并且可以使用Jena API。这里是一个非常简单的例子:

public class Person { 
    String name; 
    int age; 
    Person(String name){ 
     this.name = name; 
    } 
    String getIRI(){ 
     return "http://example.com/"+name; 
    } 
    String serialize(String syntax){ 
     Model model = ModelFactory.createDefaultModel(); 
     Resource resource = model.createResource(getIRI()); 
     // add the property 
     resource.addProperty(FOAF.name, name); 
     StringWriter out = new StringWriter(); 
     model.write(out, syntax); 
     return out.toString(); 
    } 
} 

序列化类,叫Person p1 = new Person("Noor");. p1.serialize("RDF/XML-ABBREV")