1*83a54b2fSSadaf Ebrahimi<xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:msxsl="urn:schemas-microsoft-com:xslt"> 2*83a54b2fSSadaf Ebrahimi<xsl:output method="html" encoding="UTF-8"/> 3*83a54b2fSSadaf Ebrahimi<xsl:key name="cat" match="category" use="@name"/> 4*83a54b2fSSadaf Ebrahimi<xsl:template match="/"> 5*83a54b2fSSadaf Ebrahimi<xsl:for-each select="site"> 6*83a54b2fSSadaf Ebrahimi <html> 7*83a54b2fSSadaf Ebrahimi <head> 8*83a54b2fSSadaf Ebrahimi <title>beust.com</title> 9*83a54b2fSSadaf Ebrahimi <style>@import url("web/site.css");</style> 10*83a54b2fSSadaf Ebrahimi </head> 11*83a54b2fSSadaf Ebrahimi <body> 12*83a54b2fSSadaf Ebrahimi <h1 class="title">beust.com</h1> 13*83a54b2fSSadaf Ebrahimi <p class="bodyText"><xsl:value-of select="description"/></p> 14*83a54b2fSSadaf Ebrahimi <table width="100%" border="0" cellspacing="1" cellpadding="2"> 15*83a54b2fSSadaf Ebrahimi <xsl:for-each select="category-def"> 16*83a54b2fSSadaf Ebrahimi <xsl:sort select="@label" order="ascending" case-order="upper-first"/> 17*83a54b2fSSadaf Ebrahimi <xsl:sort select="@name" order="ascending" case-order="upper-first"/> 18*83a54b2fSSadaf Ebrahimi <xsl:if test="count(key('cat',@name)) != 0"> 19*83a54b2fSSadaf Ebrahimi <tr class="header"> 20*83a54b2fSSadaf Ebrahimi <td class="sub-header" width="30%"> 21*83a54b2fSSadaf Ebrahimi <xsl:value-of select="@name"/> 22*83a54b2fSSadaf Ebrahimi </td> 23*83a54b2fSSadaf Ebrahimi <td class="sub-header" width="70%"> 24*83a54b2fSSadaf Ebrahimi <xsl:value-of select="@label"/> 25*83a54b2fSSadaf Ebrahimi </td> 26*83a54b2fSSadaf Ebrahimi </tr> 27*83a54b2fSSadaf Ebrahimi <xsl:for-each select="key('cat',@name)"> 28*83a54b2fSSadaf Ebrahimi <xsl:sort select="ancestor::feature//@version" order="ascending"/> 29*83a54b2fSSadaf Ebrahimi <xsl:sort select="ancestor::feature//@id" order="ascending" case-order="upper-first"/> 30*83a54b2fSSadaf Ebrahimi <tr> 31*83a54b2fSSadaf Ebrahimi <xsl:choose> 32*83a54b2fSSadaf Ebrahimi <xsl:when test="(position() mod 2 = 1)"> 33*83a54b2fSSadaf Ebrahimi <xsl:attribute name="class">dark-row</xsl:attribute> 34*83a54b2fSSadaf Ebrahimi </xsl:when> 35*83a54b2fSSadaf Ebrahimi <xsl:otherwise> 36*83a54b2fSSadaf Ebrahimi <xsl:attribute name="class">light-row</xsl:attribute> 37*83a54b2fSSadaf Ebrahimi </xsl:otherwise> 38*83a54b2fSSadaf Ebrahimi </xsl:choose> 39*83a54b2fSSadaf Ebrahimi <td class="log-text" id="indent"> 40*83a54b2fSSadaf Ebrahimi <xsl:choose> 41*83a54b2fSSadaf Ebrahimi <xsl:when test="ancestor::feature//@label"> 42*83a54b2fSSadaf Ebrahimi <a href="{ancestor::feature//@url}"><xsl:value-of select="ancestor::feature//@label"/></a> 43*83a54b2fSSadaf Ebrahimi <br/> 44*83a54b2fSSadaf Ebrahimi <div id="indent"> 45*83a54b2fSSadaf Ebrahimi (<xsl:value-of select="ancestor::feature//@id"/> - <xsl:value-of select="ancestor::feature//@version"/>) 46*83a54b2fSSadaf Ebrahimi </div> 47*83a54b2fSSadaf Ebrahimi </xsl:when> 48*83a54b2fSSadaf Ebrahimi <xsl:otherwise> 49*83a54b2fSSadaf Ebrahimi <a href="{ancestor::feature//@url}"><xsl:value-of select="ancestor::feature//@id"/> - <xsl:value-of select="ancestor::feature//@version"/></a> 50*83a54b2fSSadaf Ebrahimi </xsl:otherwise> 51*83a54b2fSSadaf Ebrahimi </xsl:choose> 52*83a54b2fSSadaf Ebrahimi <br /> 53*83a54b2fSSadaf Ebrahimi </td> 54*83a54b2fSSadaf Ebrahimi <td> 55*83a54b2fSSadaf Ebrahimi <table> 56*83a54b2fSSadaf Ebrahimi <xsl:if test="ancestor::feature//@os"> 57*83a54b2fSSadaf Ebrahimi <tr><td class="log-text" id="indent">Operating Systems:</td> 58*83a54b2fSSadaf Ebrahimi <td class="log-text" id="indent"><xsl:value-of select="ancestor::feature//@os"/></td> 59*83a54b2fSSadaf Ebrahimi </tr> 60*83a54b2fSSadaf Ebrahimi </xsl:if> 61*83a54b2fSSadaf Ebrahimi <xsl:if test="ancestor::feature//@ws"> 62*83a54b2fSSadaf Ebrahimi <tr><td class="log-text" id="indent">Windows Systems:</td> 63*83a54b2fSSadaf Ebrahimi <td class="log-text" id="indent"><xsl:value-of select="ancestor::feature//@ws"/></td> 64*83a54b2fSSadaf Ebrahimi </tr> 65*83a54b2fSSadaf Ebrahimi </xsl:if> 66*83a54b2fSSadaf Ebrahimi <xsl:if test="ancestor::feature//@nl"> 67*83a54b2fSSadaf Ebrahimi <tr><td class="log-text" id="indent">Languages:</td> 68*83a54b2fSSadaf Ebrahimi <td class="log-text" id="indent"><xsl:value-of select="ancestor::feature//@nl"/></td> 69*83a54b2fSSadaf Ebrahimi </tr> 70*83a54b2fSSadaf Ebrahimi </xsl:if> 71*83a54b2fSSadaf Ebrahimi <xsl:if test="ancestor::feature//@arch"> 72*83a54b2fSSadaf Ebrahimi <tr><td class="log-text" id="indent">Architecture:</td> 73*83a54b2fSSadaf Ebrahimi <td class="log-text" id="indent"><xsl:value-of select="ancestor::feature//@arch"/></td> 74*83a54b2fSSadaf Ebrahimi </tr> 75*83a54b2fSSadaf Ebrahimi </xsl:if> 76*83a54b2fSSadaf Ebrahimi </table> 77*83a54b2fSSadaf Ebrahimi </td> 78*83a54b2fSSadaf Ebrahimi </tr> 79*83a54b2fSSadaf Ebrahimi </xsl:for-each> 80*83a54b2fSSadaf Ebrahimi <tr><td class="spacer"><br/></td><td class="spacer"><br/></td></tr> 81*83a54b2fSSadaf Ebrahimi </xsl:if> 82*83a54b2fSSadaf Ebrahimi </xsl:for-each> 83*83a54b2fSSadaf Ebrahimi <xsl:if test="count(feature) > count(feature/category)"> 84*83a54b2fSSadaf Ebrahimi <tr class="header"> 85*83a54b2fSSadaf Ebrahimi <td class="sub-header" colspan="2"> 86*83a54b2fSSadaf Ebrahimi Uncategorized 87*83a54b2fSSadaf Ebrahimi </td> 88*83a54b2fSSadaf Ebrahimi </tr> 89*83a54b2fSSadaf Ebrahimi </xsl:if> 90*83a54b2fSSadaf Ebrahimi <xsl:choose> 91*83a54b2fSSadaf Ebrahimi <xsl:when test="function-available('msxsl:node-set')"> 92*83a54b2fSSadaf Ebrahimi <xsl:variable name="rtf-nodes"> 93*83a54b2fSSadaf Ebrahimi <xsl:for-each select="feature[not(category)]"> 94*83a54b2fSSadaf Ebrahimi <xsl:sort select="@id" order="ascending" case-order="upper-first"/> 95*83a54b2fSSadaf Ebrahimi <xsl:sort select="@version" order="ascending" /> 96*83a54b2fSSadaf Ebrahimi <xsl:value-of select="."/> 97*83a54b2fSSadaf Ebrahimi <xsl:copy-of select="." /> 98*83a54b2fSSadaf Ebrahimi </xsl:for-each> 99*83a54b2fSSadaf Ebrahimi </xsl:variable> 100*83a54b2fSSadaf Ebrahimi <xsl:variable name="myNodeSet" select="msxsl:node-set($rtf-nodes)/*"/> 101*83a54b2fSSadaf Ebrahimi <xsl:for-each select="$myNodeSet"> 102*83a54b2fSSadaf Ebrahimi <tr> 103*83a54b2fSSadaf Ebrahimi <xsl:choose> 104*83a54b2fSSadaf Ebrahimi <xsl:when test="position() mod 2 = 1"> 105*83a54b2fSSadaf Ebrahimi <xsl:attribute name="class">dark-row</xsl:attribute> 106*83a54b2fSSadaf Ebrahimi </xsl:when> 107*83a54b2fSSadaf Ebrahimi <xsl:otherwise> 108*83a54b2fSSadaf Ebrahimi <xsl:attribute name="class">light-row</xsl:attribute> 109*83a54b2fSSadaf Ebrahimi </xsl:otherwise> 110*83a54b2fSSadaf Ebrahimi </xsl:choose> 111*83a54b2fSSadaf Ebrahimi <td class="log-text" id="indent"> 112*83a54b2fSSadaf Ebrahimi <xsl:choose> 113*83a54b2fSSadaf Ebrahimi <xsl:when test="@label"> 114*83a54b2fSSadaf Ebrahimi <a href="{@url}"><xsl:value-of select="@label"/></a> 115*83a54b2fSSadaf Ebrahimi <br /> 116*83a54b2fSSadaf Ebrahimi <div id="indent"> 117*83a54b2fSSadaf Ebrahimi (<xsl:value-of select="@id"/> - <xsl:value-of select="@version"/>) 118*83a54b2fSSadaf Ebrahimi </div> 119*83a54b2fSSadaf Ebrahimi </xsl:when> 120*83a54b2fSSadaf Ebrahimi <xsl:otherwise> 121*83a54b2fSSadaf Ebrahimi <a href="{@url}"><xsl:value-of select="@id"/> - <xsl:value-of select="@version"/></a> 122*83a54b2fSSadaf Ebrahimi </xsl:otherwise> 123*83a54b2fSSadaf Ebrahimi </xsl:choose> 124*83a54b2fSSadaf Ebrahimi <br /><br /> 125*83a54b2fSSadaf Ebrahimi </td> 126*83a54b2fSSadaf Ebrahimi <td> 127*83a54b2fSSadaf Ebrahimi <table> 128*83a54b2fSSadaf Ebrahimi <xsl:if test="@os"> 129*83a54b2fSSadaf Ebrahimi <tr><td class="log-text" id="indent">Operating Systems:</td> 130*83a54b2fSSadaf Ebrahimi <td class="log-text" id="indent"><xsl:value-of select="@os"/></td> 131*83a54b2fSSadaf Ebrahimi </tr> 132*83a54b2fSSadaf Ebrahimi </xsl:if> 133*83a54b2fSSadaf Ebrahimi <xsl:if test="@ws"> 134*83a54b2fSSadaf Ebrahimi <tr><td class="log-text" id="indent">Windows Systems:</td> 135*83a54b2fSSadaf Ebrahimi <td class="log-text" id="indent"><xsl:value-of select="@ws"/></td> 136*83a54b2fSSadaf Ebrahimi </tr> 137*83a54b2fSSadaf Ebrahimi </xsl:if> 138*83a54b2fSSadaf Ebrahimi <xsl:if test="@nl"> 139*83a54b2fSSadaf Ebrahimi <tr><td class="log-text" id="indent">Languages:</td> 140*83a54b2fSSadaf Ebrahimi <td class="log-text" id="indent"><xsl:value-of select="@nl"/></td> 141*83a54b2fSSadaf Ebrahimi </tr> 142*83a54b2fSSadaf Ebrahimi </xsl:if> 143*83a54b2fSSadaf Ebrahimi <xsl:if test="@arch"> 144*83a54b2fSSadaf Ebrahimi <tr><td class="log-text" id="indent">Architecture:</td> 145*83a54b2fSSadaf Ebrahimi <td class="log-text" id="indent"><xsl:value-of select="@arch"/></td> 146*83a54b2fSSadaf Ebrahimi </tr> 147*83a54b2fSSadaf Ebrahimi </xsl:if> 148*83a54b2fSSadaf Ebrahimi </table> 149*83a54b2fSSadaf Ebrahimi </td> 150*83a54b2fSSadaf Ebrahimi </tr> 151*83a54b2fSSadaf Ebrahimi </xsl:for-each> 152*83a54b2fSSadaf Ebrahimi </xsl:when> 153*83a54b2fSSadaf Ebrahimi <xsl:otherwise> 154*83a54b2fSSadaf Ebrahimi <xsl:for-each select="feature[not(category)]"> 155*83a54b2fSSadaf Ebrahimi <xsl:sort select="@id" order="ascending" case-order="upper-first"/> 156*83a54b2fSSadaf Ebrahimi <xsl:sort select="@version" order="ascending" /> 157*83a54b2fSSadaf Ebrahimi <tr> 158*83a54b2fSSadaf Ebrahimi <xsl:choose> 159*83a54b2fSSadaf Ebrahimi <xsl:when test="count(preceding-sibling::feature[not(category)]) mod 2 = 1"> 160*83a54b2fSSadaf Ebrahimi <xsl:attribute name="class">dark-row</xsl:attribute> 161*83a54b2fSSadaf Ebrahimi </xsl:when> 162*83a54b2fSSadaf Ebrahimi <xsl:otherwise> 163*83a54b2fSSadaf Ebrahimi <xsl:attribute name="class">light-row</xsl:attribute> 164*83a54b2fSSadaf Ebrahimi </xsl:otherwise> 165*83a54b2fSSadaf Ebrahimi </xsl:choose> 166*83a54b2fSSadaf Ebrahimi <td class="log-text" id="indent"> 167*83a54b2fSSadaf Ebrahimi <xsl:choose> 168*83a54b2fSSadaf Ebrahimi <xsl:when test="@label"> 169*83a54b2fSSadaf Ebrahimi <a href="{@url}"><xsl:value-of select="@label"/></a> 170*83a54b2fSSadaf Ebrahimi <br /> 171*83a54b2fSSadaf Ebrahimi <div id="indent"> 172*83a54b2fSSadaf Ebrahimi (<xsl:value-of select="@id"/> - <xsl:value-of select="@version"/>) 173*83a54b2fSSadaf Ebrahimi </div> 174*83a54b2fSSadaf Ebrahimi </xsl:when> 175*83a54b2fSSadaf Ebrahimi <xsl:otherwise> 176*83a54b2fSSadaf Ebrahimi <a href="{@url}"><xsl:value-of select="@id"/> - <xsl:value-of select="@version"/></a> 177*83a54b2fSSadaf Ebrahimi </xsl:otherwise> 178*83a54b2fSSadaf Ebrahimi </xsl:choose> 179*83a54b2fSSadaf Ebrahimi <br /><br /> 180*83a54b2fSSadaf Ebrahimi </td> 181*83a54b2fSSadaf Ebrahimi <td> 182*83a54b2fSSadaf Ebrahimi <table> 183*83a54b2fSSadaf Ebrahimi <xsl:if test="@os"> 184*83a54b2fSSadaf Ebrahimi <tr><td class="log-text" id="indent">Operating Systems:</td> 185*83a54b2fSSadaf Ebrahimi <td class="log-text" id="indent"><xsl:value-of select="@os"/></td> 186*83a54b2fSSadaf Ebrahimi </tr> 187*83a54b2fSSadaf Ebrahimi </xsl:if> 188*83a54b2fSSadaf Ebrahimi <xsl:if test="@ws"> 189*83a54b2fSSadaf Ebrahimi <tr><td class="log-text" id="indent">Windows Systems:</td> 190*83a54b2fSSadaf Ebrahimi <td class="log-text" id="indent"><xsl:value-of select="@ws"/></td> 191*83a54b2fSSadaf Ebrahimi </tr> 192*83a54b2fSSadaf Ebrahimi </xsl:if> 193*83a54b2fSSadaf Ebrahimi <xsl:if test="@nl"> 194*83a54b2fSSadaf Ebrahimi <tr><td class="log-text" id="indent">Languages:</td> 195*83a54b2fSSadaf Ebrahimi <td class="log-text" id="indent"><xsl:value-of select="@nl"/></td> 196*83a54b2fSSadaf Ebrahimi </tr> 197*83a54b2fSSadaf Ebrahimi </xsl:if> 198*83a54b2fSSadaf Ebrahimi <xsl:if test="@arch"> 199*83a54b2fSSadaf Ebrahimi <tr><td class="log-text" id="indent">Architecture:</td> 200*83a54b2fSSadaf Ebrahimi <td class="log-text" id="indent"><xsl:value-of select="@arch"/></td> 201*83a54b2fSSadaf Ebrahimi </tr> 202*83a54b2fSSadaf Ebrahimi </xsl:if> 203*83a54b2fSSadaf Ebrahimi </table> 204*83a54b2fSSadaf Ebrahimi </td> 205*83a54b2fSSadaf Ebrahimi </tr> 206*83a54b2fSSadaf Ebrahimi </xsl:for-each> 207*83a54b2fSSadaf Ebrahimi </xsl:otherwise> 208*83a54b2fSSadaf Ebrahimi </xsl:choose> 209*83a54b2fSSadaf Ebrahimi </table> 210*83a54b2fSSadaf Ebrahimi </body> 211*83a54b2fSSadaf Ebrahimi </html> 212*83a54b2fSSadaf Ebrahimi</xsl:for-each> 213*83a54b2fSSadaf Ebrahimi</xsl:template> 214*83a54b2fSSadaf Ebrahimi</xsl:stylesheet> 215