| 
 | 
What this is
  This file is included in the DevDaily.com
  "Java Source Code
  Warehouse" project. The intent of this project is to help you "Learn
  Java by Example" TM.  
 
Other links
The source code
 
<xsl:stylesheet version = '1.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform' xmlns:msxsl="urn:schemas-microsoft-com:xslt">
<xsl:output method="html" encoding="ISO-8859-1"/>
<xsl:key name="cat" match="category" use="@name"/>
<xsl:template match="/">
<xsl:for-each select="site">
	<html>
	<head>
	<title>Jobs  Feedback Update Site
	<style>@import url("web/site.css");
	</head>
	<body>
	<h1 class="title">Jobs  Feedback Update Site
	<p class="bodyText">
	<table width="100%" border="0" cellspacing="1" cellpadding="2">
	<xsl:for-each select="category-def">
		<xsl:sort select="@label" order="ascending" case-order="upper-first"/>
		<xsl:sort select="@name" order="ascending" case-order="upper-first"/>
	<xsl:if test="count(key('cat',@name)) != 0">
			<tr class="header">
				<td class="sub-header" width="30%">
					<xsl:value-of select="@name"/>
				</td>
				<td class="sub-header" width="70%">
					<xsl:value-of select="@label"/>
				</td>
			</tr>
			<xsl:for-each select="key('cat',@name)">
			<xsl:sort select="ancestor::feature//@version" order="ascending"/>
			<xsl:sort select="ancestor::feature//@id" order="ascending" case-order="upper-first"/>
			<tr>
				<xsl:choose>
				<xsl:when test="(position() mod 2 = 1)">
					<xsl:attribute name="class">dark-row
				</xsl:when>
				<xsl:otherwise>
					<xsl:attribute name="class">light-row
				</xsl:otherwise>
				</xsl:choose>
				<td class="log-text" id="indent">
						<xsl:choose>
						<xsl:when test="ancestor::feature//@label">
							<a href="{ancestor::feature//@url}">
							<br/>
							<div id="indent">
							(<xsl:value-of select="ancestor::feature//@id"/> - )
							</div>
						</xsl:when>
						<xsl:otherwise>
						<a href="{ancestor::feature//@url}"> - 
						</xsl:otherwise>
						</xsl:choose>
						<br />
				</td>
				<td>
					<table>
						<xsl:if test="ancestor::feature//@os">
							<tr>| Operating Systems: | 
							<td class="log-text" id="indent"> | 
							</tr>
						</xsl:if>
						<xsl:if test="ancestor::feature//@ws">
							<tr>Windows Systems: | 
							<td class="log-text" id="indent">
							</tr>
						</xsl:if>
						<xsl:if test="ancestor::feature//@nl">
							<tr>Languages: | 
							<td class="log-text" id="indent">
							</tr>
						</xsl:if>
						<xsl:if test="ancestor::feature//@arch">
							<tr>Architecture: | 
							<td class="log-text" id="indent">
							</tr>
						</xsl:if>
					</table>
				</td>
			</tr>
			</xsl:for-each>
			<tr>
  | 
  | 
		</xsl:if>
	</xsl:for-each>
	<xsl:if test="count(feature)  > count(feature/category)">
	<tr class="header">
		<td class="sub-header" colspan="2">
		Uncategorized
		</td>
	</tr>
	</xsl:if>
	<xsl:choose>
	<xsl:when test="function-available('msxsl:node-set')">
	   <xsl:variable name="rtf-nodes">
		<xsl:for-each select="feature[not(category)]">
			<xsl:sort select="@id" order="ascending" case-order="upper-first"/>
			<xsl:sort select="@version" order="ascending" />
			<xsl:value-of select="."/>
			<xsl:copy-of select="." />
		</xsl:for-each>
	   </xsl:variable>
	   <xsl:variable name="myNodeSet" select="msxsl:node-set($rtf-nodes)/*"/>
	<xsl:for-each select="$myNodeSet">
	<tr>
		<xsl:choose>
		<xsl:when test="position() mod 2 = 1">
		<xsl:attribute name="class">dark-row
		</xsl:when>
		<xsl:otherwise>
		<xsl:attribute name="class">light-row
		</xsl:otherwise>
		</xsl:choose>
		<td class="log-text" id="indent">
			<xsl:choose>
			<xsl:when test="@label">
				<a href="{@url}">