<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:variable name="anzahl" select="count(//*/*)" />
<xsl:decimal-format name="de" decimal-separator="," grouping-separator="." NaN="Falscher Datentyp"/>
<xsl:template match="/sum">
<xsl:element name="html">
<xsl:element name="head">
<xsl:element name="title"><xsl:value-of select="/sum/@title"/></xsl:element>
<xsl:element name="style">
<xsl:attribute name="type">text/css</xsl:attribute>
*{font-family:Blue Highway;font-size:28px;white-space:pre-line;text-align:justify;margin:0px 0px 0px 0px;padding:0px 0px 0px 0px;}
html{background-color:gray;color:black;text-align:left;font-size:1em;white-space:nowrap;}
a:link{text-decoration:none;color:black;}
a:visited{color:black;}
div{border:2px ridge white;color:black;background-color:silver;}
div div{border:none;}
table,caption,th,td{border-collapse:collapse;border:2px ridge white;text-align:center;color:black;background-color:silver;empty-cells:hide;}
</xsl:element>
</xsl:element>
<xsl:element name="body">
<xsl:element name="div"><xsl:if test="$anzahl < 2"><xsl:value-of select="concat($anzahl,' Datensatz ist vorhanden.')" /></xsl:if><xsl:if test="$anzahl > 1"><xsl:value-of select="concat($anzahl,' Datensätze sind vorhanden.')" /></xsl:if></xsl:element>
<xsl:apply-templates />
</xsl:element>
</xsl:element>
</xsl:template>
<xsl:template match="rechteck">
<xsl:element name="div">
<xsl:value-of select="concat(name(),': ',@inf,' hat ein Umfang von ',((number(@a) * 2) + (number(@b) * 2)),' ',@u)" />
<xsl:element name="div">
<xsl:value-of select="concat('und eine Fläche von ',(number(@a) * number(@b)),' ',@u)" />²
</xsl:element>
<xsl:element name="div">
<xsl:element name="img">
<xsl:attribute name="src">one.png</xsl:attribute>
<xsl:attribute name="width"><xsl:value-of select="@a" />px</xsl:attribute>
<xsl:attribute name="height"><xsl:value-of select="@b" />px</xsl:attribute>
<xsl:attribute name="alt"><xsl:value-of select="@inf" /></xsl:attribute>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:template>
<xsl:template match="gauss">
<xsl:element name="div">
<xsl:value-of select="concat(name(),': ',@inf,' von 1 bis ', @f,' ergibt: ',((number(@f) * number(@f) + number(@f)) div 2),' ',@u)" />
</xsl:element>
</xsl:template>
<xsl:template match="kugel">
<xsl:element name="div">
<xsl:value-of select="concat(name(),': ',@inf,': Umfang: ',format-number(number(@d) * number(@pi),'###.##0,###','de'),' ',@u)" />
<xsl:element name="div">
<xsl:value-of select="concat(name(),': ',@inf,': Schnittfläche: ',format-number(((number(@d) div 2) * (number(@d) div 2)) * number(@pi),'###.##0,###','de'),' ',@u)" />²
</xsl:element>
<xsl:element name="div">
<xsl:value-of select="concat(name(),': ',@inf,': Volumen: ',format-number(1.33333333 * number(@pi) * ((number(@d) div 2) * (number(@d) div 2) * (number(@d) div 2)),'###.##0,###','de'),' ',@u)" />³
</xsl:element>
<xsl:element name="div">
<xsl:value-of select="concat(name(),': ',@inf,': Oberfläche: ',format-number(4 * number(@pi) * ((number(@d) div 2) * (number(@d) div 2)),'###.##0,###','de'),' ',@u)" />²
</xsl:element>
</xsl:element>
</xsl:template>
<xsl:template match="astro">
<xsl:element name="div">
<xsl:if test="@beh = 'divide'">
<xsl:value-of select="concat(name(),': ',@inf,': ',format-number((@d div @fac),'###.##0,###','de'),' ',@u)" />
</xsl:if>
<xsl:if test="@beh = 'add'">
<xsl:value-of select="concat(name(),': ',@inf,': ',format-number((@d + @fac),'###.##0,###','de'),' ',@u)" />
</xsl:if>
<xsl:if test="@beh = 'multi'">
<xsl:value-of select="concat(name(),': ',@inf,': ',format-number((@d * @fac),'###.##0,###','de'),' ',@u)" />
</xsl:if>
<xsl:if test="@beh = 'subs'">
<xsl:value-of select="concat(name(),': ',@inf,': ',format-number((@d - @fac),'###.##0,###','de'),' ',@u)" />
</xsl:if>
</xsl:element>
</xsl:template>
<xsl:template match="fall">
<xsl:element name="div">
<xsl:value-of select="concat(name(),': ',@inf,' wiegt ',format-number(number(@g),'###.##0,###','de'),' ',@ub,' und fällt aus einer Höhe von ',number(@h),' ',@ua,',')"/>
<xsl:element name="div">
<xsl:if test="@ua = 'Meter' and @ub = 'Kilogramm'">
<xsl:value-of select="concat(' dann wird die Aufschlagskraft ',format-number(number(@g) * number(@h) * number(@fac),'###.##0,###','de'),' ',@ub,' betragen.')" />
</xsl:if>
<xsl:if test="@ua = 'Kilometer' and @ub = 'Kilogramm'">
<xsl:value-of select="concat(' dann wird die Aufschlagskraft ',format-number(number(@g) * number(@h) * number(@fac) * 1000,'###.##0,###','de'),' ',@ub,' betragen.')" />
</xsl:if>
<xsl:if test="@ua = 'Kilometer' and @ub = 'Tonnen'">
<xsl:value-of select="concat(' dann wird die Aufschlagskraft ',format-number(number(@g) * number(@h) * number(@fac) * 1000,'###.##0,###','de'),' ',@ub,' betragen.')" />
</xsl:if>
<xsl:if test="@ua = 'Meter' and @ub = 'Tonnen'">
<xsl:value-of select="concat(' dann wird die Aufschlagskraft ',format-number(number(@g) * number(@h) * number(@fac),'###.##0,###','de'),' ',@ub,' betragen.')" />
</xsl:if>
</xsl:element>
</xsl:element>
</xsl:template>
<xsl:template match="quer">
<xsl:element name="div">
<xsl:if test="@beh = 'divide'">
<xsl:value-of select="concat(name(),': ',@inf,': ',format-number((@d div @fac),'###.##0,###','de'),' ',@u)" />
</xsl:if>
<xsl:if test="@beh = 'add'">
<xsl:value-of select="concat(name(),': ',@inf,' ',@d,' ist die ',@u,' ',format-number(substring(@d,@fac),'###.##0,###','de'))" />
</xsl:if>
<xsl:if test="@beh = 'multi'">
<xsl:value-of select="concat(name(),': ',@inf,': ',format-number((@d * @fac),'###.##0,###','de'),' ',@u)" />
</xsl:if>
<xsl:if test="@beh = 'subs'">
<xsl:value-of select="concat(name(),': ',@inf,': ',format-number((@d - @fac),'###.##0,###','de'),' ',@u)" />
</xsl:if>
</xsl:element>
</xsl:template>
<xsl:template match="xslinfo">
<xsl:element name="table">
<xsl:element name="caption"><xsl:value-of select="name()" /></xsl:element>
<xsl:element name="thead">
<xsl:element name="tr">
<xsl:element name="th"><xsl:text>Version</xsl:text></xsl:element>
<xsl:element name="th"><xsl:text>Hersteller</xsl:text></xsl:element>
<xsl:element name="th"><xsl:text>URL</xsl:text></xsl:element>
</xsl:element>
</xsl:element>
<xsl:element name="tfoot">
<xsl:element name="tr">
<xsl:element name="td"><xsl:text>number</xsl:text></xsl:element>
<xsl:element name="td"><xsl:text>string</xsl:text></xsl:element>
<xsl:element name="td"><xsl:text>link</xsl:text></xsl:element>
</xsl:element>
</xsl:element>
<xsl:element name="tbody">
<xsl:element name="tr">
<xsl:element name="td"><xsl:value-of select="system-property('xsl:version')" /></xsl:element>
<xsl:element name="td"><xsl:value-of select="system-property('xsl:vendor')" /></xsl:element>
<xsl:element name="td"><xsl:element name="a"><xsl:attribute name="href"><xsl:value-of select="system-property('xsl:vendor-url')" /></xsl:attribute><xsl:value-of select="system-property('xsl:vendor-url')" /></xsl:element></xsl:element>
</xsl:element>
</xsl:element>
</xsl:element>
</xsl:template>
</xsl:stylesheet>