<?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:internal>
<lenya:resourceType>xhtml</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/">Ein kurzes Lenya Tutorial</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 Tutorial</dc:subject>
        <dc:description xmlns:dc="http://purl.org/dc/elements/1.1/">Ein kurzes Tutorial zur Benutzung von Lenya</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/">de</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/">Alle Rechte vorbehalten</dc:rights>
</lenya:dc>
</lenya:meta>
</lenya:document>