<?xml version="1.0" encoding="ISO-8859-1" ?>
<!--
/*
 * $Id$
 *
 * 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.
 *
 */
-->

 <!DOCTYPE tiles-definitions PUBLIC
       "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
       "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">

<!-- Definitions for Tiles documentation   -->

<tiles-definitions>

  <!-- =======================================================  -->
  <!-- Master definition  									-->
  <!-- =======================================================  -->

  <!-- Doc index page description  -->
  <definition name="test.inner.definition" template="/layout.jsp">
      <put name="title"  value="This is a configured inner definition."/>
      <put name="header" value="/header.jsp"/>
      <put name="body"   value="/body.jsp"/>
  </definition>

  <definition name="test.definition" template="/layout.jsp">
      <put name="title"  value="This is the title."/>
      <put name="header" value="/header.jsp"/>
      <put name="body"   value="/body.jsp"/>
  </definition>

  <definition name="test.composite.definition" template="/layout.jsp">
      <put name="title"  value="This is a configured composite definition."/>
      <put name="header" value="/header.jsp"/>
      <put name="body"   value="test.inner.definition"/>
  </definition>

  <definition name="test.putAttributes" template="/putattributeslayout.jsp">
    <put name="stringTest" value="This is a string" type="string" />
    <putList name="list">
      <add value="valueOne" type="string" />
      <add value="valueTwo" type="string" />
      <add value="valueThree" type="string" />
    </putList>
  </definition>

  <definition name="test.putAllAttributes" template="/putallattributeslayout.jsp">
    <put name="one" value="There should be three more strings" type="string" />
    <put name="two" value="One" type="string" />
    <put name="three" value="Two" type="string" />
    <put name="four" value="Three" type="string" />
  </definition>

  <definition name="preparer.definition" template="/layout.jsp">
      <put name="title"  value="This is the title."/>
      <put name="header" value="/header.jsp"/>
  </definition>

    <definition name="testdispatchservlet" extends="test.definition"/>

  <definition name="preparer.definition.configured" extends="preparer.definition" preparer="org.apache.tiles.test.preparer.TestViewPreparer" />

</tiles-definitions>
