<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:output method="text" />
  <!-- Root template rule -->
  <xsl:template match="/table">
  <xsl:variable name="tablename" select="name" />
  <xsl:variable name="getby" select="columns/column[getby='1']" />
  <xsl:variable name="addtowhere" select="columns/column[addtowhere='1']" />
  <xsl:variable name="orderby" select="columns/column[orderby='1']" />
  


	<xsl:for-each select="$getby">
	&lt;cffunction name=&quot;get<xsl:value-of select="$tablename" />by<xsl:value-of select="name" />&quot; displayname=&quot;get<xsl:value-of select="$tablename" />by<xsl:value-of select="name" />&quot; access=&quot;public&quot; returntype=&quot;query&quot; output=&quot;false&quot; hint=&quot;Returns all <xsl:value-of select="$tablename" />s by <xsl:value-of select="name" /> AND <xsl:for-each select="$addtowhere"> <xsl:value-of select="name" /> <xsl:if test="position() != last()"> AND </xsl:if></xsl:for-each>&quot;&gt;
		<xsl:for-each select="$addtowhere">&lt;cfargument name=&quot;<xsl:value-of select="name" />&quot; type=&quot;<xsl:value-of select="cfargtype" />&quot; required=&quot;true&quot; hint=&quot;<xsl:value-of select="name" /> argument for this method&quot; /&gt;
		</xsl:for-each>&lt;cfargument name=&quot;<xsl:value-of select="name" />&quot; type=&quot;<xsl:value-of select="cfargtype" />&quot; required=&quot;true&quot; hint=&quot;<xsl:value-of select="name" /> argument for this method&quot; /&gt;

		&lt;cfset var get<xsl:value-of select="$tablename" />by<xsl:value-of select="name" /> = 0 /&gt;
		&lt;cfquery name="get<xsl:value-of select="$tablename" />by<xsl:value-of select="name" />&quot; datasource=&quot;#variables.dsn#&quot;&gt;
			SELECT * 
			FROM	<xsl:value-of select="$tablename" />	
			WHERE <xsl:for-each select="$addtowhere"><xsl:value-of select="name" /> = &lt;cfqueryparam value=&quot;#arguments.<xsl:value-of select="$tablename" />.get<xsl:value-of select="name" />()#&quot; cfsqltype=&quot;<xsl:value-of select="cfsqltype" />&quot; maxlength=&quot;<xsl:value-of select="length" />&quot; /&gt;
			<xsl:if test="position() != last()">AND </xsl:if>
			</xsl:for-each>AND <xsl:value-of select="name" /> = &lt;cfqueryparam value=&quot;#arguments.<xsl:value-of select="$tablename" />.get<xsl:value-of select="name" />()#&quot; cfsqltype=&quot;<xsl:value-of select="cfsqltype" />&quot; maxlength=&quot;<xsl:value-of select="length" />&quot; /&gt;
		&lt;/cfquery&gt;

		&lt;cfreturn get<xsl:value-of select="$tablename" />by<xsl:value-of select="name" /> /&gt;
	&lt;/cffunction&gt;
	</xsl:for-each>

&lt;/cfcomponent&gt;
</xsl:template>
</xsl:stylesheet>
