2017-04-27 8 views
1

Java 객체를 RDF XML로 변환하려고합니다. Jena API를 사용하고 있습니다. REST 통화를하고 싶지 않습니다.자바 객체를 RDF XML로 변환

REST 방식에

, 우리가 쓸 수 있습니다 :

@Produces(OslcMediaType.APPLICATION_RDF_XML) 

는 그래서 RDF의 XML 형식으로 응답을 보냅니다.

이미 하나의 REST 메서드에 있기 때문에 사용할 수 없습니다. 다른 REST 호출을 호출하여 객체를 RDF로 변환 할 수 있습니다. 하지만 다른 REST 호출을 호출하고 싶지 않습니다.

누구나 Java 객체를 RDF XML로 변환 할 수있는 다른 솔루션이 있습니까?

+0

예나가 사용하는 직렬화 프레임 워크 란 무엇인가를 호출 클래스를 직렬화하려면? Jackson의 경우 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 serializer를 만들 수 있으며 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")