<?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.
-->
<!-- $Id$ -->
<lenya:document xmlns:lenya="http://apache.org/cocoon/lenya/page-envelope/1.0">
<lenya:meta>
    <lenya:custom>
      <lenya:myMeta>Add your own metadata to lenya.</lenya:myMeta>
    </lenya:custom>
<lenya:internal>
<lenya:resourceType>homepage</lenya:resourceType>
<lenya:contentType>xml</lenya:contentType>
  <lenya:mimeType>application/xhtml+xml</lenya:mimeType>
</lenya:internal>
<lenya:dc>
        <dc:title xmlns:dc="http://purl.org/dc/elements/1.1/">Welcome to the Lenya default publication</dc:title>
        <dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Lenya Development Team</dc:creator>
        <dc:subject xmlns:dc="http://purl.org/dc/elements/1.1/">Lenya default publication</dc:subject>
        <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">The start page of the Lenya default publication</dc:description>
        <dc:publisher xmlns:dc="http://purl.org/dc/elements/1.1/">Apache Software Foundation</dc:publisher>
        <dc:contributor xmlns:dc="http://purl.org/dc/elements/1.1/" />
        <dc:date xmlns:dc="http://purl.org/dc/elements/1.1/">2005-01-31</dc:date>
        <dc:type xmlns:dc="http://purl.org/dc/elements/1.1/" />
        <dc:format xmlns:dc="http://purl.org/dc/elements/1.1/" />
        <dc:identifier xmlns:dc="http://purl.org/dc/elements/1.1/" />
        <dc:source xmlns:dc="http://purl.org/dc/elements/1.1/" />
        <dc:language xmlns:dc="http://purl.org/dc/elements/1.1/">en</dc:language>
        <dc:relation xmlns:dc="http://purl.org/dc/elements/1.1/" />
        <dc:coverage xmlns:dc="http://purl.org/dc/elements/1.1/" />
        <dc:rights xmlns:dc="http://purl.org/dc/elements/1.1/">All rights reserved</dc:rights>
</lenya:dc>
</lenya:meta>
</lenya:document>
