J'ai un OWLOntology que je dois enregistrer dans un fichier en utilisant RDFXMLDocumentFormat, et je voudrais le coder comme UTF-8. Plus précisément, je voudrais que le fichier pour que le suivant en haut:Dans OWLAPI, comment écrire RDF/XML, y compris le codage UTF-8 dans l'en-tête
<?xml version="1.0" encoding="UTF-8"?>
Bien sûr, je pourrais sauver le OWLOntology (en utilisant RDFXMLDocumentFormat) à un ByteArrayOutputStream, créez un document XML en utilisant la chaîne à partir de ce flux de sortie, puis écrivez ce document XML dans un fichier à l'aide d'un Transformer sur lequel le codage est défini sur UTF-8; cependant, cela fonctionnerait mal sur une grande ontologie, car il serait écrit dans un flux de sortie, puis relu, puis réécrit.
Dans l'API, j'ai regardé le RDFXMLWriter qui me permettrait de définir le codage, et il semble que cela soit utilisé par le RDFXMLStorer lorsqu'il stocke l'ontologie. Cependant, je ne vois pas comment je peux accéder au RDFXMLWriter pour spécifier le codage désiré.
Y a-t-il un moyen de faire cela qui me manque?
manager.saveOntology (. Ontologie, (nouvelle RDFXMLDocumentFormatFactory()) createFormat(), nouveau WriterOutputStream (écrivain, Charset.forName ("UTF-8"))); – Galigator
Cela n'ajoute pas 'encoding = "UTF-8"' à l'en-tête de la sortie XML. –
Ajout de l'attribut ne fait pas le fichier de sortie UTF-8, il déclare juste. OWLAPI enregistre déjà avec l'encodage UTF-8 par défaut. – Ignazio