【发布时间】:2017-03-08 03:33:01
【问题描述】:
我有一个 OWLOntology,我需要使用 RDFXMLDocumentFormat 将它保存到一个文件中,并且我想将它编码为 UTF-8。具体来说,我希望文件的顶部有以下内容:
<?xml version="1.0" encoding="UTF-8"?>
当然,我可以将 OWLOntology(使用 RDFXMLDocumentFormat)保存到 ByteArrayOutputStream,使用该输出流中的字符串创建 XML 文档,然后使用编码设置为 UTF 的转换器将该 XML 文档写入文件-8;但是,这在大型本体上表现不佳,因为它将被写入输出流,然后读回然后再次写出。
在 API 中,我确实查看了允许我设置编码的 RDFXMLWriter,它似乎在 RDFXMLStorer 存储本体时使用了它。但是,我看不到如何访问 RDFXMLWriter 来指定所需的编码。
有没有我想念的方法来做到这一点?
【问题讨论】:
-
manager.saveOntology(ontology, (new RDFXMLDocumentFormatFactory()).createFormat(), new WriterOutputStream(writer, Charset.forName("UTF-8")));
-
这不会在输出 XML 的标头中添加 'encoding="UTF-8"'。
-
添加属性不会使输出文件成为 UTF-8,它只是声明它。 OWLAPI 已经默认使用 UTF-8 编码保存。
-
我很抱歉,让编码出现在标题中是我的目标(现在反映在问题标题中)。
标签: utf-8 semantic-web ontology owl-api rdf-xml