<?xml version="1.0"?>
<!--
  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.
-->

<!-- $Id: usecases-workflow-deactivate.xconf 348547 2005-11-23 20:13:01Z chestnut $ -->
<!--
  This file defines the publication specific use-cases
-->

  <xconf xpath="/cocoon/meta-data"
    unless="/cocoon/meta-data/component-instance[@name = 'http://apache.org/lenya/metadata/media/1.0']">
    <component-instance name="http://apache.org/lenya/metadata/media/1.0"
      class="org.apache.lenya.cms.metadata.ConfigurableElementSet">
      <element name="filename" multiple="false"/>
      <element name="width" multiple="false"/>
      <element name="height" multiple="false"/>
    </component-instance>
  </xconf>
  
