2017-04-27 100 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")