<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:xdt="http://www.w3.org/2005/xpath-datatypes"
                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 cast as xdt:untypedAtomic" as="xdt:untypedAtomic"/>

  <xsl:template match="/">
    <xsl:variable name="int5" select="$servings cast as xs:integer"/>
    <xsl:variable name="serv5" select="$servings cast as r:Servings"/>

    <xsl:text>&#10;</xsl:text>
    <xsl:text>$servings = </xsl:text>
    <xsl:value-of select="$servings"/>
    <xsl:text> cast as xdt:untypedAtomic</xsl:text>
    <xsl:text>&#10;</xsl:text>
    <xsl:text>    instance of xs:integer: </xsl:text>
    <xsl:value-of select="$servings instance of xs:integer"/>
    <xsl:text>&#10;</xsl:text>
    <xsl:text>    instance of xs:decimal: </xsl:text>
    <xsl:value-of select="$servings instance of xs:decimal"/>
    <xsl:text>&#10;</xsl:text>
    <xsl:text>    instance of r:Servings: </xsl:text>
    <xsl:value-of select="$servings instance of r:Servings"/>
    <xsl:text>&#10;</xsl:text>
    <xsl:text>&#10;</xsl:text>
    <xsl:text>$int5 = </xsl:text>
    <xsl:value-of select="$int5"/>
    <xsl:text> cast as xs:integer</xsl:text>
    <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:text>$serv5 = </xsl:text>
    <xsl:value-of select="$serv5"/>
    <xsl:text> cast as r:Servings</xsl:text>
    <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:template>

</xsl:stylesheet>