XmiCasDeserializer没有按预期工作

时间:2014-07-10 15:38:16

标签: uima

我有一个序列化为xmi文件的CAS,当我试图反序列化xmi文件时,输出是一个纯文本,应该是xml文件。这就是我在做什么,

            URL myURL = UIMAFramework.class.getResource("TypeSystem.xml");
            TypeSystemDescription tsDesc = UIMAFramework.getXMLParser().parseTypeSystemDescription(new XMLInputSource(myURL));
            CAS cas = CasCreationUtils.createCas(tsDesc, null, null);

            FileInputStream xmiInput = new FileInputStream(args[0]);
            XmiCasDeserializer.deserialize(xmiInput, cas, false);
            JCas jCas = cas.getJCas();
            xmiInput.close();
            logger.info(jCas.getDocumentText());

我在哪里弄错了?

1 个答案:

答案 0 :(得分:4)

如果我理解正确,你想知道为什么jCas.getDocumentText()返回纯文本而不是XMI使用的XML格式。嗯,这就是XmiCasDeserializer的重点。它解码XMI格式的XML。存储在XML中的文本最终出现在jCas.getDocumentText()中。其余的作为注释添加到CAS数据结构中。

要从CAS访问注释,有多种方法,例如:

jCas.getAnnotationIndex().iterator()

简单地遍历所有注释。

寻找文件的其他地方

披露:我是UIMA和uimaFIT项目的开发人员。