2011-11-17 80 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