I am using the rdf4j library to export xml files. I use org.eclipse.rdf4j.rio.RDFWriter to save it in a file and I need to define the base namespace. So I expect to have something like :
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xml:base="http://exmaple.org/">
<rdf:Description rdf:about=foo>
<rdf:type rdf:resource= FOO>
...
I understood that I can set a namespace using handleNamespace(). But I cant figure out how to use it to set the base namespace : I tried :
ModelBuilder builder = new ModelBuilder();
ValueFactory vf = SimpleValueFactory.getInstance();
builder.add(vf.createIRI("base:foo"), RDFS.ISDEFINEDBY, vf.createIRI("base:FOO");
Model model = builder.build();
RDFWriter writer = Rio.createWriter(RDFFormat.RDFXML, someOutputStream);
try {
writer.startRDF();
writer.handleNamespace("base", "http://exmaple.org/");
for (Statement st: model) {
writer.handleStatement(st);
}
writer.endRDF();
...
but this does not give me what I expect :
<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF
xmlns:base="http://exmaple.org/">
<rdf:Description rdf:about=base:foo>
<rdf:type rdf:resource= base:FOO>
Any ideas?