<?xml version="1.0"?>
<!--loop.xsl-->
<!--XSLT 1.0 - http://www.CraneSoftwrights.com/training -->
<!DOCTYPE xsl:stylesheet [
	<!ENTITY nl "&#xd;&#xa;">
]>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
	<xsl:output method="text"/>
	
	<xsl:param name="count" select="3"/>

	<!--allow override-->
	<xsl:template match="/">
		<xsl:text>Dan:   "Say goodnight, Dick."&nl;</xsl:text>
		<xsl:call-template name="countdown">
			<!--begin countdown-->
			<!--convert to number in case supplied as string-->
			<xsl:with-param name="countdown" select="number($count)"/>
		</xsl:call-template>
	</xsl:template>
	
	
	<xsl:template name="countdown">
		<!--recursive loop until done-->
		<xsl:param name="countdown"/>
		<xsl:if test="$countdown">
			<!--count not zero; more work-->
			<xsl:text>Dick:  "Goodnight Dick!"&nl;</xsl:text>
			<xsl:call-template name="countdown">
				<!--next; one less-->
				<xsl:with-param name="countdown" select="$countdown - 1"/>
			</xsl:call-template>
		</xsl:if>
	</xsl:template>
</xsl:stylesheet>
