2014-12-17 2 views
0

Мне нужно создать документы RDF/XML, содержащие объекты в пространстве имен OSLC. , например.Как создать документы OSLC с помощью Jena?

<oslc_disc:ServiceProviderCatalog 
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" 
    xmlns:dc="http://purl.org/dc/terms/" 
    xmlns:oslc_disc="http://open-services.net/xmlns/discovery/1.0/" 
rdf:about="{self}"> 

    <dc:title>{catalog title}</dc:title> 
    <oslc_disc:details rdf:resource="{catalog details uri}" /> 

Каков самый простой способ создать этот документ с использованием API Jena? (я знаю о Лио, они используют JSP для этого документа :-)

Спасибо, Карстен

ответ

0

Вот полный пример, чтобы начать Вас. Имейте в виду, что это будет эквивалент для вывода XML, который вы хотите, но может быть не идентичным. Порядок свойств, например, может меняться, и есть другие способы записи одного и того же контента.

import com.hp.hpl.jena.rdf.model.* 
import com.hp.hpl.jena.vocabulary.DCTerms; 

public class Jena { 

    // Vocab items -- could use schemagen to generate a class for this 
    final static String OSLC_DISC_NS = "http://open-services.net/xmlns/discovery/1.0/"; 
    final static Resource ServiceProviderCatalog = 
     ResourceFactory.createResource(OSLC_DISC_NS + "ServiceProviderCatalog"); 
    final static Property details = 
     ResourceFactory.createProperty(OSLC_DISC_NS, "details"); 

    public static void main(String[] args) { 

     // Inputs 
     String selfURI = "http://example.com/self"; 
     String catalogTitle = "Catalog title"; 
     String catalogDetailsURI = "http://example.com/catalogDetailsURI"; 

     // Create in memory model 
     Model model = ModelFactory.createDefaultModel(); 
     // Set prefixes 
     model.setNsPrefix("dc", DCTerms.NS); 
     model.setNsPrefix("oslc_disc", OSLC_DISC_NS); 

     // Add item of type spcatalog 
     Resource self = model.createResource(selfURI, ServiceProviderCatalog); 
     // Add the title 
     self.addProperty(DCTerms.title, catalogTitle); 
     // Add details, which points to a resource 
     self.addProperty(details, model.createResource(catalogDetailsURI)); 

     // Write pretty RDF/XML 
     model.write(System.out, "RDF/XML-ABBREV"); 
    } 

} 
Смежные вопросы