<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:r="http://nwalsh.com/xmlns/extreme2006/recipes/"
                xmlns="http://www.w3.org/1999/xhtml"
                xmlns:xs="http://www.w3.org/2001/XMLSchema"
                xmlns:saxon="http://saxon.sf.net/"
                version="2.0">

  <xsl:import-schema namespace="http://nwalsh.com/xmlns/extreme2006/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:param name="servings" select="5"/>

  <xsl:template match="/">
    <xsl:choose>
      <xsl:when test="$servings castable as xs:integer">
	<xsl:variable name="int5" select="$servings cast as xs:integer"/>
	<xsl:text>&#10;</xsl:text>
	<xsl:text>$int5 = </xsl:text>
	<xsl:value-of select="$int5"/>
	<xsl:text>&#10;</xsl:text>
	<xsl:text>    instance of xs:integer: </xsl:text>
	<xsl:value-of select="$int5 instance of xs:integer"/>
	<xsl:text>&#10;</xsl:text>
	<xsl:text>    instance of xs:decimal: </xsl:text>
	<xsl:value-of select="$int5 instance of xs:decimal"/>
	<xsl:text>&#10;</xsl:text>
	<xsl:text>    instance of r:Servings: </xsl:text>
	<xsl:value-of select="$int5 instance of r:Servings"/>
	<xsl:text>&#10;</xsl:text>
	<xsl:text>&#10;</xsl:text>
      </xsl:when>
      <xsl:otherwise>
	<xsl:value-of select="$servings"/>
	<xsl:text> cannot be cast to an xs:integer</xsl:text>
	<xsl:text>&#10;</xsl:text>
	<xsl:text>&#10;</xsl:text>
      </xsl:otherwise>
    </xsl:choose>

    <xsl:choose>
      <xsl:when test="$servings castable as r:Servings">
	<xsl:variable name="serv5" select="$servings cast as r:Servings"/>
	<xsl:text>$serv5 = </xsl:text>
	<xsl:value-of select="$serv5"/>
	<xsl:text>&#10;</xsl:text>
	<xsl:text>    instance of xs:integer: </xsl:text>
	<xsl:value-of select="$serv5 instance of xs:integer"/>
	<xsl:text>&#10;</xsl:text>
	<xsl:text>    instance of xs:decimal: </xsl:text>
	<xsl:value-of select="$serv5 instance of xs:decimal"/>
	<xsl:text>&#10;</xsl:text>
	<xsl:text>    instance of r:Servings: </xsl:text>
	<xsl:value-of select="$serv5 instance of r:Servings"/>
	<xsl:text>&#10;</xsl:text>
      </xsl:when>
      <xsl:otherwise>
	<xsl:value-of select="$servings"/>
	<xsl:text> cannot be cast to an r:Servings</xsl:text>
	<xsl:text>&#10;</xsl:text>
      </xsl:otherwise>
    </xsl:choose>
  </xsl:template>

</xsl:stylesheet>