<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:r="http://nwalsh.com/xmlns/extreme2004/recipes/" xmlns="http://www.w3.org/1999/xhtml" xmlns:saxon="http://saxon.sf.net/" version="2.0"> <xsl:import-schema namespace="http://nwalsh.com/xmlns/extreme2004/recipes/" schema-location="recipes.xsd"/> <xsl:output method="text"/> <xsl:strip-space elements="r:*"/> <xsl:preserve-space elements="r:name r:source r:p"/> <xsl:template match="/"> <xsl:if test="not(element(*, r:RecipeList))"> <xsl:message terminate="yes"> <xsl:text>Document element must match element(*, r:RecipeList).</xsl:text> </xsl:message> </xsl:if> <xsl:apply-templates select="*"/> <xsl:text>r:name occurs </xsl:text> <xsl:value-of select="count(//r:name)"/> <xsl:text> times; </xsl:text> <xsl:value-of select="count(//element(r:name,r:Para))"/> <xsl:text> derived from r:Para.</xsl:text> <xsl:text> </xsl:text> </xsl:template> <xsl:template match="r:recipeList"> <xsl:apply-templates select=".//*"/> </xsl:template> <xsl:template match="element(*,r:FoodRecipe)" priority="1000"> <xsl:value-of select="local-name(.)"/> <xsl:text> matches element(*,r:FoodRecipe).</xsl:text> <xsl:text> </xsl:text> </xsl:template> <xsl:template match="*"/> </xsl:stylesheet>