<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output method="text" />

	<xsl:variable name="allTracks" select="catalog/album/track" />
	<xsl:variable name="tab"><xsl:text>&#x09;</xsl:text></xsl:variable>
	<xsl:variable name="newLine"><xsl:text>&#xA;</xsl:text></xsl:variable>

	<xsl:template match="/">
		<xsl:text>album-name</xsl:text>
		<xsl:value-of select="$tab" />
		<xsl:text>album-artist</xsl:text>
		<xsl:value-of select="$tab" />		
		<xsl:text>label-name</xsl:text>
		<xsl:value-of select="$tab" />		
		<xsl:text>catalog-id</xsl:text>
		<xsl:value-of select="$tab" />		
		<xsl:text>upc</xsl:text>
		<xsl:value-of select="$tab" />		
		<xsl:text>album-id</xsl:text>
		<xsl:value-of select="$tab" />		
		<xsl:text>release-date</xsl:text>
		<xsl:value-of select="$tab" />
		<xsl:text>upc-alt</xsl:text>
		<xsl:value-of select="$tab" />
		<xsl:text>album-custom-1</xsl:text>		
		<xsl:value-of select="$tab" />
		<xsl:text>album-custom-2</xsl:text>
		<xsl:value-of select="$tab" />
		<xsl:text>album-custom-3</xsl:text>
		<xsl:value-of select="$tab" />					
		<xsl:text>track-name</xsl:text>
		<xsl:value-of select="$tab" />			
		<xsl:text>disc-no</xsl:text>
		<xsl:value-of select="$tab" />			
		<xsl:text>disc-name</xsl:text>
		<xsl:value-of select="$tab" />			
		<xsl:text>track-no</xsl:text>
		<xsl:value-of select="$tab" />			
		<xsl:text>track-minutes</xsl:text>
		<xsl:value-of select="$tab" />			
		<xsl:text>track-seconds</xsl:text>
		<xsl:value-of select="$tab" />			
		<xsl:text>track-artist</xsl:text>
		<xsl:value-of select="$tab" />			
		<xsl:text>isrc</xsl:text>
		<xsl:value-of select="$tab" />			
		<xsl:text>track-id</xsl:text>
		<xsl:value-of select="$tab" />			
		<xsl:text>genre</xsl:text>
		<xsl:value-of select="$tab" />
		<xsl:text>track-custom-1</xsl:text>			
		<xsl:value-of select="$tab" />
		<xsl:text>track-custom-2</xsl:text>
		<xsl:value-of select="$tab" />
		<xsl:text>track-custom-3</xsl:text>
		<xsl:value-of select="$newLine" />
		<xsl:for-each select="$allTracks"><xsl:call-template name="trackLine" /></xsl:for-each>
	</xsl:template>

	<xsl:template name="trackLine">
		<xsl:value-of select="../album-name" />
		<xsl:value-of select="$tab" />
		<xsl:value-of select="../album-artist" />
		<xsl:value-of select="$tab" />
		<xsl:value-of select="../label-name" />
		<xsl:value-of select="$tab" />	
		<xsl:value-of select="../catalog-id" />
		<xsl:value-of select="$tab" />	
		<xsl:value-of select="../upc" />
		<xsl:value-of select="$tab" />			
		<xsl:value-of select="../album-id" />
		<xsl:value-of select="$tab" />			
		<xsl:value-of select="../release-date" />
		<xsl:value-of select="$tab" />
		<xsl:value-of select="../upc-alt" />
		<xsl:value-of select="$tab" />
		<xsl:value-of select="../album-custom-1" />
		<xsl:value-of select="$tab" />
		<xsl:value-of select="../album-custom-2" />
		<xsl:value-of select="$tab" />
		<xsl:value-of select="../album-custom-3" />
		<xsl:value-of select="$tab" />
		<xsl:value-of select="track-name" />
		<xsl:value-of select="$tab" />
		<xsl:value-of select="disc-no" />
		<xsl:value-of select="$tab" />
		<xsl:value-of select="disc-name" />
		<xsl:value-of select="$tab" />
		<xsl:value-of select="track-no" />
		<xsl:value-of select="$tab" />
		<xsl:value-of select="track-minutes" />
		<xsl:value-of select="$tab" />		
		<xsl:value-of select="track-seconds" />
		<xsl:value-of select="$tab" />	
		<xsl:value-of select="track-artist" />
		<xsl:value-of select="$tab" />	
		<xsl:value-of select="isrc" />		
		<xsl:value-of select="$tab" />	
		<xsl:value-of select="track-id" />			
		<xsl:value-of select="$tab" />	
		<xsl:value-of select="genre" />		
		<xsl:value-of select="$tab" />
		<xsl:value-of select="../track-custom-1" />
		<xsl:value-of select="$tab" />
		<xsl:value-of select="../track-custom-2" />
		<xsl:value-of select="$tab" />
		<xsl:value-of select="../track-custom-3" />
    <xsl:value-of select="$newLine" />
	</xsl:template>

</xsl:stylesheet>
