<?xml version="1.0" encoding="UTF-8"?>
<!-- 
	Patrick Röder & Jan Peter Stotz

	Verwendete XML-Dateien des Northwind-XML-Exports: 
	"Categories.xml" (auf dieses XML-Dokument wird das XSL-Stylesheet angewendet
	"Products.xml" 		

	XSLT-Prozessor:	Saxon version 6.5.2 / Java 1.4.1
	Kommandozeile:		"java -jar [Pfad zur saxon.jar]\saxon.jar -o Task5.vrml Task2.xml Task5.xsl" 
-->

<?xmlspysamplexml D:\Uni\IVIS\xml\Task2.xml?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
	<xsl:import href="Task6_Konstanten.xsl"/>
	<xsl:output method="text" encoding="UTF-8" indent="yes"/>
	<xsl:preserve-space elements="*"/>
	<xsl:variable name="MaxProductCount" select="Warehouse/@MaxProductCount"/>
	<xsl:variable name="WarehouseMaxPrice" select="Warehouse/@MaxPrice"/>
	<xsl:variable name="WarehouseMinPrice" select="Warehouse/@MinPrice"/>
	
	<xsl:template match="/">
		<xsl:value-of select="$VRMLHeader"/>
		<xsl:value-of select="$CreatorComment"/>
		<xsl:value-of select="$Protos"/>
		<xsl:value-of select="$TransformOpen"/>
		<xsl:value-of select="$Viewpoint"/>
		<xsl:value-of select="$HUD"/>
		<xsl:apply-templates select="Warehouse"/>
		<xsl:value-of select="$TransformClose"/>
		<xsl:value-of select="$ROUTE"/>
	</xsl:template>

	<xsl:template match="Warehouse">
		<xsl:value-of select="$RegalOpen"/>
		<xsl:apply-templates select="Category"/>
		<xsl:value-of select="$RegalClose"/>
	</xsl:template>
	<xsl:template match="Category">
		<xsl:if test="position() = 1">
			<xsl:value-of select="$Abschlussebene"/>
		</xsl:if>
		<xsl:value-of select="$RegalebeneOpen"/>
			<xsl:call-template name="StringAttribute">
				<xsl:with-param name="Name" select="$Kategorie"/>
				<xsl:with-param name="Value" select="@Name"/>
			</xsl:call-template>
			<xsl:value-of select="$MaxKisten"/>
			<xsl:value-of select="$MaxProductCount"/>
			<xsl:value-of select="$NL"/>
			<xsl:value-of select="$KistenOpen"/>
				<xsl:apply-templates select="Product">
					<xsl:with-param name="CategoryName" select="@Name"/> 	
					<xsl:with-param name="MaxPrice" select="@MaxPrice"/> 
					<xsl:with-param name="MinPrice" select="@MinPrice"/> 
				</xsl:apply-templates>
			<xsl:value-of select="$KistenClose"/>
		<xsl:value-of select="$RegalebeneClose"/>
	</xsl:template>
<!-- ****************************************************************-->
	<xsl:template name="StringAttribute">
		<xsl:param name="Name"/>
		<xsl:param name="Value"/>
		<xsl:value-of select="$Name"/>
		<xsl:value-of select="$HK"/>
		<xsl:value-of select="$Value"/>
		<xsl:value-of select="$HK"/>
		<xsl:value-of select="$NL"/>
	</xsl:template>
	
	<xsl:template match="Product">
		<xsl:param name="CategoryName"/>
		<xsl:param name="MaxPrice"/>
		<xsl:param name="MinPrice"/>
		<xsl:text>								Kiste {	KSize </xsl:text>
		<xsl:value-of select="format-number(0.4 + ( 0.6 * (./UnitPrice) div ( $MaxPrice)),'0.00')"/>
		<xsl:text> KPos </xsl:text>
		<xsl:value-of select="position()-1"/>
		<xsl:text> KColor </xsl:text>
		<xsl:variable name="StockLevel" select="(./UnitsInStock) - (./ReorderLevel)"/>
		<xsl:choose>
			<xsl:when test="(./ReorderLevel) = 0">
					<xsl:value-of select="0"/>
			</xsl:when>
			<xsl:otherwise>
				<xsl:choose >  
					<xsl:when test="$StockLevel &lt; 0">
						<xsl:value-of select="1"/>
					</xsl:when><xsl:otherwise>
						<xsl:value-of select="format-number((./ReorderLevel) div (./UnitsInStock),'0.00')"/>
					</xsl:otherwise>
				</xsl:choose>
			</xsl:otherwise>
		</xsl:choose>
		<xsl:text> ProductName "</xsl:text>
		<xsl:value-of select="./ProductName"/>
		<xsl:text>" </xsl:text>
		<xsl:text> CategoryName "</xsl:text>
		<xsl:value-of select="$CategoryName"/>
		<xsl:text>"</xsl:text>
		<xsl:text> UnitPrice "</xsl:text>
		<xsl:value-of select="format-number(./UnitPrice,'0.00')"/>
		<xsl:text>" UnitsInStock </xsl:text>
		<xsl:value-of select="./UnitsInStock"/>
		<xsl:text> UnitsOnOrder </xsl:text>
		<xsl:value-of select="./UnitsOnOrder"/>
		<xsl:text> ReorderLevel </xsl:text>
		<xsl:value-of select="./ReorderLevel"/>
		<xsl:text> Discontinued </xsl:text>
		<xsl:value-of select="./Discontinued"/>
		<xsl:text>}</xsl:text>
		<xsl:value-of select="$NL"/>
	</xsl:template>
</xsl:stylesheet>

