<?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://purl.org/dc/elements/1.1/']">
    <component-instance name="http://purl.org/dc/elements/1.1/"
      class="org.apache.lenya.cms.metadata.ConfigurableElementSet">
      <element name="title" multiple="false" editable="true"/>
      <element name="creator" multiple="false" editable="true"/>
      <element name="subject" multiple="false" editable="true"/>
      <element name="description" multiple="false" editable="true"/>
      <element name="publisher" multiple="false" editable="true"/>
      <element name="contributor" multiple="false" editable="true"/>
      <element name="date" multiple="false" editable="true"/>
      <element name="type" multiple="false" editable="true"/>
      <element name="format" multiple="false" editable="true"/>
      <element name="identifier" multiple="false" editable="true"/>
      <element name="source" multiple="false" editable="true"/>
      <element name="language" multiple="false" editable="true"/>
      <element name="relation" multiple="false" editable="true"/>
      <element name="coverage" multiple="false" editable="true"/>
      <element name="rights" multiple="false" editable="true"/>
    </component-instance>
  </xconf>
  
