try {
final RDFXMLOntologyFormat format = new RDFXMLOntologyFormat();
if (owlOntologyManager == null) {
throw new OWLRuntimeException("Cannot parse because OWLOntologyManager is null!");
}
final RDFParser parser = new RDFParser() {
public void startPrefixMapping(String prefix, String IRI) throws SAXException {
super.startPrefixMapping(prefix, IRI);
format.setPrefix(prefix, IRI);
}
public void startElement(String namespaceIRI, String localName, String qName, Attributes atts) throws
SAXException {
super.startElement(namespaceIRI, localName, qName, atts);
String value = atts.getValue(XMLNS, "base");
if (value != null) {
consumer.setXMLBase(value);
}
}
};
IRIProvider prov = new IRIProvider() {
public IRI getIRI(String s) {
return parser.getIRI(s);
}
};
consumer = new OWLRDFConsumer(owlOntologyManager, ontology, new AnonymousNodeChecker() {
public boolean isAnonymousNode(IRI IRI) {
return parser.isAnonymousNodeIRI(IRI.toString());
}
public boolean isAnonymousNode(String IRI) {
return parser.isAnonymousNodeIRI(IRI);
}
});
consumer.setIRIProvider(prov);
consumer.setOntologyFormat(format);
InputSource is = getInputSource(documentSource);
parser.parse(is, consumer);
return format;
}
catch (TranslatedOntologyChangeException e) {
throw e.getCause();
}