<?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.components.Insert" 
	allow-body="no">
  
  <description>
  Emits a value into the response page.
  </description>
  
  
  <parameter name="value" type="java.lang.Object" direction="in">
  	<description>
  	The value to be emitted.  Non-strings are converted to strings.
  	</description>
  </parameter>
  
  <parameter name="format" type="java.text.Format" direction="in">
  	<description>
  	A Format object used to convert the value to a string.
  	</description>
  </parameter>
  
  <parameter name="raw" type="boolean" direction="in">
  	<description>
  	If false (the default), then HTML characters in the value are escaped.  If
  	true, then value is emitted exactly as is.
  	</description>
  </parameter>
  
  <parameter name="class" 
  	type="java.lang.String"
  	property-name="styleClass"
  	direction="in">
  	<description>
  	If specified, then any output is wrapped in an HTML span tag with the given CSS class.
  	</description>
  </parameter>
</component-specification>
