<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright 2004 The Apache Software Foundation
  
   Licensed 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$ -->
<!DOCTYPE component-specification PUBLIC 
  "-//Apache Software Foundation//Tapestry Specification 3.0//EN" 
  "http://jakarta.apache.org/tapestry/dtd/Tapestry_3_0.dtd">
	
<component-specification class="org.apache.tapestry.link.PageLink">

  <description>
  Creates a link to another page within the application.
  </description>
  
  <parameter name="page" 
  	type="java.lang.String" 
  	required="yes" 
  	property-name="targetPage"
  	direction="in"/>
  
  <parameter name="namespace" 
  	type="org.apache.tapestry.INamespace" 
  	required="no" 
  	property-name="targetNamespace"
  	direction="in"/>
  	  	
  <parameter name="disabled"
  	type="boolean"
  	direction="in"/>
  	  	
  <parameter name="anchor" 
  	type="java.lang.String"
  	direction="in"/>
  	
  <parameter name="renderer"
  	type="org.apache.tapestry.link.ILinkRenderer"
  	direction="in"/>
  
  <reserved-parameter name="href"/>

</component-specification>
