Content Services supports, and can detect, a wide range of MIME types out-of-the-box. It is also possible to add support for other custom MIME types.
Architecture Information: Software Architecture
Content Services is able to automatically identify most file types and establish MIME type accordingly. However, if you have custom file types it is possible to add support for these by adding custom MIME types. You will typically also need to provide custom transformations (see Content Transformers and Renditions) and metadata extraction (see Metadata Extractors and Embedders) to fully support the content type. To find out what MIME types that are currently registered and active within a Content Services installation, you can use an admin Web Script. This is available at http://localhost:8080/alfresco/service/mimetypes. This will list all the currently registered MIME types, and provide a details link for each one. Selecting the details link will then show metadata extractors, and which transformations are currently supported both to and from that MIME type, and by what transformer.
For example, you will see something like this for the ZIP MIME type:
**application/zip - zip** **Extractors**: org.alfresco.repo.content.metadata.TikaAutoMetadataExtracter **Transformable To:** application/xhtml+xml = org.alfresco.repo.content.transform.ArchiveContentTransformer text/html = org.alfresco.repo.content.transform.ArchiveContentTransformer text/plain = org.alfresco.repo.content.transform.ArchiveContentTransformer text/xml = org.alfresco.repo.content.transform.ArchiveContentTransformer **Transformable From:** *Cannot be generated from anything else*
So it is quite easy to find out if a MIME type is known to the Content Services system, if there are any metadata extractors for it, to what formats it can be transformed, and from what formats it can be generated.
Lets say you wanted to add a transformer that can transform XML documents to PDF files based on XSL-FO (XSL formatting objects). Content Services does not currently know about formatting object files (.fo) so we would need to add a new MIME type for this. To do this create an XML file with the following content:
<alfresco-configarea="mimetype-map"> <config evaluator="string-compare" condition="Mimetype Map"> <mimetypes> <mimetype mimetype="text/xsl" display="XSL-FO"> <extension>fo</extension> </mimetype> </mimetypes> </config> </alfresco-config>
Call the file custom-mimetype-map.xml and put it in tomcat/shared/classes/alfresco/extension/mimetype. If we access the mimetype Web Script we should see the following for the newly registered MIME type:
**text/xsl - fo** **No extractors** **Transformable To**:text/plain = org.alfresco.repo.content.transform.StringExtractingContentTransformer **Transformable From**: Cannot be generated from anything else
The .fo files themselves will by default be transformable to text, which means that they will be indexed and searchable without having to add a custom transformer. But to actually use the formatting objects to transform XML files into PDF files you would have to add a custom transformer (for more information, see Content Transformers and Renditions). Out of the box it will use the following transformer:
**text/xml - xml** **Extractors**: org.alfresco.repo.content.metadata.TikaAutoMetadataExtracter **Transformable To**: application/eps = Complex via: application/pdf application/pdf = org.alfresco.repo.content.transform.TextToPdfContentTransformer . . .