2011-11-17 24 views
2

所以我已经安装了社区4.0.a和扩展使用MIME类型,map.xml的MIME类型列表,我在3.4Alfresco的社区4.0不承认DITA文件的MIME类型

<alfresco-config area="mimetype-map"> 
<config evaluator="string-compare" condition="Mimetype Map"> 
    <mimetypes> 
<mimetype mimetype="application/dita+xml" text="true" display="DITA"> 
     <extension default="true" display="DITA Topic">dita</extension> 
     <extension default="true" display="DITA Map">ditamap</extension> 
     <extension default="true" display="DITA Conditional Processing Profile">ditaval</extension> 
     </mimetype> 

等以前那样..

但是,每次我导入DITA文件时,它都会识别为XML文件或PLAIN TEXT。我已经深入了解它,它看起来像是因为Apache TIKA分析文件的开头以检查它的MIME类型。

我如何使用我的自定义mimetype-map快捷键TIKA(因为它从TIKA首先触发的代码看,如果它发现了什么,那么它就是游戏结束)?

我必须扩展TIKA编写我自己的解析器吗?

回答

1

4.0中的Mimetype匹配逻辑稍微改变了,现在内容可用于检测,而不仅仅是文件名。作为其中的一部分,如果Tika非常确定文件是什么,那么这将是首选。

在大多数情况下,这意味着对于常见但错误命名的文件,Tika可以帮助纠正错误。对于非标准文件,Tika将拒绝提供强烈的建议,并且将像以前一样使用基于Alfresco名称的匹配。 (在Tika和Alfresco对mimetype的规范形式有所不同的情况下,尽管Alfresco版本是首选)

有少数情况下文件类型实际上是一个公共类型的专业化,并且蒂卡知道父母的类型,但不知道具体的类型。在这种情况下,Tika强烈建议父类型,并且我们无法意识到添加到Alfresco的新类型基于此。 (Tika有mimetypes层次结构,而Alfresco只有一个平面清单)。对于这些少数情况,Tika也需要指导。

通常的解决方法是报告一个Tika错误,并在上游添加文件类型。 (对于非常自定义的类型,您还需要添加一个Tika custom-mimetypes.xml,它定义了层次结构+ glob。)

在这个DITA案例中,我打开了TIKA-784并添加了一个临时修订。这也有now gone into Alfresco

+0

感谢您的反馈 –

+0

您是否知道是否有即将发布的官方社区版本(4.0.c可能?),或者是否必须从回购软件包进行打包? –

+1

你最好的选择可能是每晚,或从svn建立你自己的副本。这样你就可以立即将修补程序加入到你的安装中。那么,或者拿出一份合适的支持合同,那么你可以为你做好! – Gagravarr