private void write(RDFLiteral node) { if (node.getDatatype() != null) { if (node.getDatatype().equals(XSDVocabulary.INTEGER.getIRI())) { write(node.getLiteral()); } else if (node.getDatatype().equals(XSDVocabulary.DECIMAL.getIRI())) { write(node.getLiteral()); } else { writeStringLiteral(node.getLiteral()); write("^^"); write(node.getDatatype()); } } else { writeStringLiteral(node.getLiteral()); if (node.getLang() != null) { write("@"); write(node.getLang()); } } }
/** * Processes an RDFTriple. The triple is deconstructed and the processing is delegated to the * {@link #handleStreaming(org.semanticweb.owlapi.model.IRI, org.semanticweb.owlapi.model.IRI, org.semanticweb.owlapi.model.OWLLiteral)} * and {@link #handleStreaming(org.semanticweb.owlapi.model.IRI, org.semanticweb.owlapi.model.IRI, org.semanticweb.owlapi.model.IRI)} * methods. * @param triple The triple to be processed. * @throws UnloadableImportException in the event that the triple was an owl:imports triple and the import could * not be loaded. */ private void processRDFTriple(RDFTriple triple) throws UnloadableImportException { RDFResource subject = triple.getSubject(); RDFResourceIRI predicate = triple.getPredicate(); RDFNode object = triple.getObject(); if(object.isLiteral()) { RDFLiteral literalObject = (RDFLiteral) object; if(literalObject.hasLang()) { handleStreaming(subject.getResource(), predicate.getResource(), getDataFactory().getOWLLiteral(literalObject.getLiteral(), literalObject.getLang())); } else if(literalObject.hasDatatype()) { handleStreaming(subject.getResource(), predicate.getResource(), getDataFactory().getOWLLiteral(literalObject.getLiteral(), getDataFactory().getOWLDatatype(literalObject.getDatatype()))); } else { handleStreaming(subject.getResource(), predicate.getResource(), getDataFactory().getOWLLiteral(literalObject.getLiteral())); } } else { RDFResource resourceObject = (RDFResource) object; handleStreaming(subject.getResource(), predicate.getResource(), resourceObject.getResource()); } }
writer.writeLangAttribute(litNode.getLang()); writer.writeTextContent(litNode.getLiteral()); writer.writeEndElement(); } else { writer.writeLangAttribute(rdfLiteralNode.getLang()); writer.writeTextContent(rdfLiteralNode.getLiteral());