<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
  -->

<entity-engine-xml>
    <!-- application templates -->
    <MimeTypeHtmlTemplate mimeTypeId="application/x-shockwave-flash" templateLocation="component://content/template/mime-type/flash-swf.ftl"/>

    <!-- image template -->
    <MimeTypeHtmlTemplate mimeTypeId="image/jpeg" templateLocation="component://content/template/mime-type/image.ftl"/>
    <MimeTypeHtmlTemplate mimeTypeId="image/pjpeg" templateLocation="component://content/template/mime-type/image.ftl"/>
    <MimeTypeHtmlTemplate mimeTypeId="image/gif" templateLocation="component://content/template/mime-type/image.ftl"/>
    <MimeTypeHtmlTemplate mimeTypeId="image/tiff" templateLocation="component://content/template/mime-type/image.ftl"/>
    <MimeTypeHtmlTemplate mimeTypeId="image/png" templateLocation="component://content/template/mime-type/image.ftl"/>

    <!-- video templates -->
    <MimeTypeHtmlTemplate mimeTypeId="video/quicktime" templateLocation="component://content/template/mime-type/quicktime.ftl"/>
    <MimeTypeHtmlTemplate mimeTypeId="video/mp4" templateLocation="component://content/template/mime-type/quicktime.ftl"/>
    <MimeTypeHtmlTemplate mimeTypeId="video/x-flv" templateLocation="component://content/template/mime-type/flash-flv.ftl"/>
</entity-engine-xml>
