Subversion Repositories DevTools

Rev

Rev 4462 | Rev 4469 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

<?xml version="1.0" encoding="UTF-8"?>
<!--
    This XSLT Stylesheet processes releaseNote XML file and generates an HTML output

    Note:
    “&#160;” is a replacement of “&nbsp;
-->
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
        <xsl:output method="html" encoding="UTF-8" indent="yes" />
        <!-- Insert text and an hyperlinked email address -->
        <xsl:template name="mailUrl">
                <xsl:param name="text"/>
                <xsl:param name="email"/>
                <a class="txt_linked">
                        <xsl:attribute name="href">
                <xsl:text>mailto:</xsl:text>
                <xsl:value-of select="$email"/>
                </xsl:attribute>
                        <xsl:value-of select="$text"/>
                </a>
        </xsl:template>


        <!-- Insert version Number and an hyperlinked ref to Package release note -->
        <xsl:variable name="vrTemplate" select="'../../../PKGNAME/VERSION/doc/RELEASE_NOTES_PVID_PKGNAME_CLEANV.html'"/>
        <xsl:template name="versionRef">
                <xsl:param name="pkg"/>
                <xsl:param name="version"/>
                <xsl:param name="pvid"/>
                <a class="txt_linked">
                        <xsl:variable name="r1" select="replace($vrTemplate,'PKGNAME',$pkg)"/>
                        <xsl:variable name="r2" select="replace($r1,'VERSION',$version)"/>
                        <xsl:variable name="r3" select="replace($r2,'PVID',$pvid)"/>
                        <xsl:variable name="r4" select="replace($r3,'CLEANV',translate($version,'.','_'))"/>
                        <xsl:attribute name="href"><xsl:value-of select="$r4"/></xsl:attribute>
                        <xsl:value-of select="$version"/>
                </a>
        </xsl:template>

        <!-- Insert class attribute based on type -->
        <xsl:template name="changeClass">
                <xsl:param name="style"/>
                <xsl:attribute name="class">
            <xsl:choose>
                <xsl:when test="$style = 'deleted'">
                    <xsl:value-of select="'pkg_removed'"/>
                    </xsl:when>
                <xsl:when test="$style = 'added'">
                    <xsl:value-of select="'pkg_added'"/>
                </xsl:when>
                <xsl:when test="$style = 'modified'">
                    <xsl:value-of select="'pkg_changed'"/>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:value-of select="'body_txt'"/>
                </xsl:otherwise>
            </xsl:choose>
        </xsl:attribute>
        </xsl:template>


        <!-- Keys to assist in the handling of ClearQuest and Jira Issues -->
    <xsl:key name="cqIssues" match="/package_data/issues/clearquest" use="@iss_uid" />
    <xsl:key name="jiraIssues" match="/package_data/issues/jira" use="@key" />

        
        <!-- =============================================================================================== -->
        <!--    Start of the main body of the transform -->
        <!-- =============================================================================================== -->
        <xsl:template match="/">
        <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"&gt;</xsl:text>
                <html>
                        <head>
                                <title>VIX Release Notes</title>
                                <style type="text/css">
            .body_txt{color:#000000;font:11px tahoma,sans-serif;text-decoration:none;}
            .body_txt_gray{
                color: Gray;
                font: bold 11px tahoma,sans-serif;
                text-decoration:none;
            }
            .bold {font-weight:bold;}
            .hdr2 {background-color: rgb(207, 223, 204);}
            .body_txt_lrg{color:#000000;font: 14px tahoma bold,sans-serif;text-decoration:none;}
            .body_txt_small{color:#000000;font: 9px tahoma,sans-serif;text-decoration:none;}
            .body_txt_macro{color: #808080;font:9px tahoma,sans-serif;font-weight: normal;padding-right: 10px;text-decoration:none}
            .body_txt_pre{
                color:#000000;
                font: 12px "Courier New", Courier, monospace;
                text-decoration:none;
            }
            .pkg_removed .pkgType {
                color:red;
                font:11px tahoma,sans-serif;
                text-decoration: line-through;
            }
            .pkg_changed .pkgType {
                color:#000000;
                font: bold 11px tahoma,sans-serif;
                text-decoration:none;
            }
            .pkg_added .pkgType{
                color:green;
                font: bold 11px tahoma,sans-serif;
                text-decoration:none;
            }
            .body_sect{  font-family: Arial, sans-serif; font-size: 18px; color: Black; text-decoration: none; }
            .body_ttl {FONT-WEIGHT: bold; FONT-SIZE: 26px; COLOR: Black;  FONT-FAMILY: Arial, sans-serif; }
            .body_ttl_w {
                FONT-WEIGHT: bold;
                FONT-SIZE: 26px;
                COLOR: White;
                FONT-FAMILY: Arial, sans-serif;
                padding-left : 10px;
                padding-right : 10px;
                background-color: #002544;
            }
            .body_sttl { FONT-SIZE: 18; COLOR: #003366;  FONT-FAMILY: Arial, sans-serif; }
            .txt_linked {  font-family: tahoma,sans-serif; font-size: 11px; color: #0066FF; text-decoration: underline;  font : normal; }
            .form_item {  font-family: tahoma,sans-serif; font-size: 11px; color: Black; text-decoration: none;  font : normal normal; }
            th {
                color:#000000;
                font:11px tahoma,sans-serif;
                font-weight:bold;
                padding-right: 3px;
                text-decoration:none;
                background : #F5F5F5;
                padding-left : 3px;
                text-align : left;
                white-space: nowrap;
                vertical-align: top;
                }
            td {
                white-space: nowrap;
                vertical-align: top;
                color:#000000;
                font:11px tahoma,sans-serif;
                text-decoration:none;
            }
            .tbl_noborder {
                width: 100%;
                border-style:none;
                border-spacing:0px;
                margin-bottom: 1em;
                }
            .tbl_outer{
                width: 100%;
                border-top-width: 1px;
                border-right-width: 1px;
                border-bottom-width: 1px;
                border-left-width: 1px;
                border-spacing: 0px;
                border-color: gray;
                border-style: solid;
                }
            table.tbl_border {
                width: 100%;
                border-collapse: collapse;
                margin-bottom: 1em;
                }
             .tbl_border td,.tbl_border th {
                border: 1px solid gray;
                padding: 2px;
                border-width: 2px;
                }
             .wrap {
                white-space: normal;
             }
             .tbl_title{
                background : #E4E9EC;
             }
            </style>
                        </head>
                        <body>
                <!-- Page Title -->
                                <table class="tbl_noborder">
                                        <tbody>
                                                <tr>
                                                        <td align="right" class="body_ttl_w">RELEASE NOTES</td>
                                                        <td align="left" class="body_ttl_w">VIX Technology</td>
                                                </tr>
                                        </tbody>
                                </table>

                <!-- Package Name -->
                                <table class="tbl_noborder">
                                        <tbody>
                                                <tr>
                                                        <td align="center" class="body_sttl">
                                                                <strong>
                                                                        <xsl:value-of select="/package_data/package/@name"/>
                                                                        <xsl:text>&#160;</xsl:text>
                                                                        <xsl:value-of select="/package_data/package/@version"/>
                                                                </strong>
                                                        </td>
                                                </tr>
                                        </tbody>
                                </table>

                <!-- Package Identification -->
                                <table class="tbl_border">
                                        <tbody>
                                                <tr>
                                                        <td colspan="4" class="tbl_title">
                                                                <span class="body_sect">
                                    <xsl:text>Identification:</xsl:text>
                                    </span>
                                                                <p/>
                                <xsl:text>This release can be uniquely identified by:</xsl:text>
                            </td>
                                                </tr>
                                                <tr>
                                                        <th width="1%">Name:</th>
                                                        <td width="35%">
                                                                <xsl:value-of select="/package_data/package/@name"/>
                                                        </td>
                                                        <th width="1%">Released:</th>
                                                        <td>
                                                                <xsl:value-of select="/package_data/package/@modified_stamp"/> by
                                <xsl:call-template name="mailUrl">
                                                                        <xsl:with-param name="text" select="/package_data/package/@modifier"/>
                                                                        <xsl:with-param name="email" select="/package_data/package/@modifier_email"/>
                                                                </xsl:call-template>
                                                        </td>
                                                </tr>
                                                <tr>
                                                        <th width="1%">Version:</th>
                                                        <td>
                                                                <xsl:value-of select="/package_data/package/@version"/>
                                                        </td>
                                                        <th width="1%">Owner:</th>
                                                        <td>
                                                                <xsl:call-template name="mailUrl">
                                                                        <xsl:with-param name="text" select="/package_data/package/@owner"/>
                                                                        <xsl:with-param name="email" select="/package_data/package/@owner_email"/>
                                                                </xsl:call-template>
                                                        </td>
                                                </tr>
                                                <tr>
                                                        <th width="1%">VCS Path:</th>
                                                        <td width="35%" colspan="3" class="wrap">
                                                                <xsl:value-of select="/package_data/package/@vcstag"/>
                                                        </td>
                                                </tr>
                                        </tbody>
                                </table>

                <!-- Package Information -->
                                <table class="tbl_border">
                                        <tbody>
                                                <tr>
                                                        <td colspan="2" class="tbl_title body_sect">Package Information:</td>
                                                </tr>
                                                <tr>
                                                        <th width="1%">Short Description</th>
                                                        <td width="100%" class="wrap">
                                                                <xsl:value-of select="/package_data/package/@short_desc" disable-output-escaping="yes"/>
                                                        </td>
                                                </tr>
                                                <tr>
                                                        <th>Overview</th>
                                                        <td class="wrap">
                                                                <xsl:value-of select="/package_data/package/@long_desc" disable-output-escaping="yes"/>
                                                        </td>
                                                </tr>
                                        </tbody>
                                </table>
                                
                <!-- Package Reason for Version -->
                                <table class="tbl_border">
                                        <tbody>
                                                <tr>
                                                        <td class="tbl_title body_sect">Reason For This Version:</td>
                                                </tr>
                                                <tr>
                                                        <td class="wrap">
                                                                <xsl:value-of select="/package_data/package/@reason" disable-output-escaping="yes"/>
                                                                <br/>
                                                                <xsl:text>Also see "Issues" section below.</xsl:text>
                                                        </td>
                                                </tr>
                                        </tbody>
                                </table>

                                <!-- Issues within this package -->
                                <table class="tbl_border">
                                        <tbody>
                                                <tr class="tbl_title">
                                                        <td colspan="5">
                                
                                                                <span class="body_sect">Issues:</span>
                                                                <p>
                                    <xsl:text>This package has the following issue status:</xsl:text>
                                </p>
                                </td>
                                                </tr>
                                                <tr>
                                                        <th width="2%">Issue ID</th>
                                                        <th width="1%">Issue DB</th>
                                                        <th width="90%">Summary</th>
                                                        <th width="1%">Issue Type</th>
                                                        <th width="1%">Priority</th>
                                                </tr>
                                                <tr>
                                                        <td colspan="5" class="tbl_title"/>
                                                </tr>

                        <!-- Fixed Jira Issues -->
                                                <tr>
                                                        <td colspan="5" class="body_txt_lrg hdr2">
                                                                <xsl:text>Fixed Jira Issues:</xsl:text> 
                            </td>
                        </tr>
                        <xsl:for-each select="key('jiraIssues', /package_data/package/issues/jira)[@resolution = 'Fixed']">
                            <tr>
                                <td><xsl:value-of select="./@key"/></td>
                                <td><xsl:text>JIRA</xsl:text></td>
                                <td class="wrap"><xsl:value-of select="./@summary" disable-output-escaping="yes"/></td>
                                <td><xsl:value-of select="./@type"/></td>
                                <td><xsl:value-of select="./@priority"/></td>
                            </tr>
                        </xsl:for-each>

                        <!-- Fixed ClearQuest Issues -->
                        <tr>
                            <td colspan="5" class="body_txt_lrg hdr2">
                                <xsl:text>Fixed ClearQuest Issues:</xsl:text>
                            </td>
                        </tr>
                        <xsl:for-each select="key('cqIssues', /package_data/package/issues/clearquest)[@iss_state = '1']">
                            <tr>
                                <td><xsl:value-of select="./@iss_num"/></td>
                                <td><xsl:text>DEVI:</xsl:text><xsl:value-of select="./@iss_db"/></td>
                                <td class="wrap"><xsl:value-of select="./@summary"/></td>
                                <td><xsl:value-of select="./@issue_type"/></td>
                                <td><xsl:value-of select="./@priority"/></td>
                            </tr>
                        </xsl:for-each>
                                                <tr>
                                                        <td colspan="5" class="tbl_title"/>
                                                </tr>

                        <!-- Outstanding Jira Issues -->
                                                <tr>
                                                        <td colspan="5" class="body_txt_lrg hdr2">
                                                                <xsl:text>Outstanding Jira Issues:</xsl:text>
                                                        </td>
                                                </tr>
                        <xsl:for-each select="key('jiraIssues', /package_data/package/issues/jira)[@resolution != 'Fixed']">
                            <tr>
                                <td><xsl:value-of select="./@key"/></td>
                                <td><xsl:text>JIRA</xsl:text></td>
                                <td class="wrap"><xsl:value-of select="./@summary" disable-output-escaping="yes"/></td>
                                <td><xsl:value-of select="./@type"/></td>
                                <td><xsl:value-of select="./@priority"/></td>
                            </tr>
                        </xsl:for-each>

                        <!-- Outstanding ClearQuest Issues -->
                                                <tr>
                                                        <td colspan="5" class="body_txt_lrg hdr2">
                                                                <xsl:text>Outstanding ClearQuest Issues:</xsl:text>
                                                        </td>
                                                </tr>
                        <xsl:for-each select="key('cqIssues', /package_data/package/issues/clearquest)[@iss_state != '1']">
                            <tr>
                                <td><xsl:value-of select="./@iss_num"/></td>
                                <td><xsl:text>DEVI:</xsl:text><xsl:value-of select="./@iss_db"/></td>
                                <td class="wrap"><xsl:value-of select="./@summary"/></td>
                                <td><xsl:value-of select="./@issue_type"/></td>
                                <td><xsl:value-of select="./@priority"/></td>
                            </tr>
                        </xsl:for-each>

                                                <tr>
                                                        <td colspan="5" class="tbl_title"/>
                                                </tr>
                                        </tbody>
                                </table>

                                <!-- Deployed package extended issue list -->
                                <table class="tbl_border">
                                        <tbody>
                                                <tr class="tbl_title">
                                                        <td colspan="6">
                                                                <span class="body_sect">
                                    <xsl:text>Issues:</xsl:text>
                                    </span>
                                    <p>
                                    <xsl:text>This release has the following issue status:</xsl:text>
                                    </p>
                                                        </td>
                                                </tr>
                                                <xsl:for-each select="/package_data/build/dependency">
                                                        <xsl:sort select="upper-case(./@name)"/>
                                                        <tr>
                                                                <td colspan="6" class="tbl_title"/>
                                                        </tr>
                                                        <tr>
                                                                <td colspan="6">
                                                                        <span class="body_txt_lrg">
                                        <xsl:value-of select="./@name"/>&#160;<xsl:value-of select="./@version"/>
                                                                        </span>
                                                                        <br/>
                                                                        <xsl:value-of select="./@reason" disable-output-escaping="yes"/>
                                                                </td>
                                                        </tr>
                           
                            <!-- Fixed Issues Jira and ClearCase : Commonn Header -->
                            <xsl:if test="key('jiraIssues', ./issues/jira)[@resolution = 'Fixed'] or key('cqIssues', ./issues/clearquest)[@iss_state = '1']">
                                <tr>
                                  <th width="2%">Fixed</th>
                                  <th width="2%">Issue ID</th>
                                  <th width="1%">Issue DB</th>
                                  <th width="90%">Summary</th>
                                  <th width="1%">Issue Type</th>
                                  <th width="1%">Priority</th>
                                </tr>

                                <!-- Fixed Jira Issues -->
                                <xsl:for-each select="key('jiraIssues', ./issues/jira)[@resolution = 'Fixed']">
                                    <tr>
                                        <td><xsl:value-of select="./@resolution"/></td>
                                        <td><xsl:value-of select="./@key"/></td>
                                        <td><xsl:text>JIRA</xsl:text></td>
                                        <td class="wrap"><xsl:value-of select="./@summary" disable-output-escaping="yes"/></td>
                                        <td><xsl:value-of select="./@type"/></td>
                                        <td><xsl:value-of select="./@priority"/></td>
                                    </tr>
                                </xsl:for-each>
                                 
                                <!-- Fixed ClearQuest Issues -->
                                <xsl:for-each select="key('cqIssues', ./issues/clearquest)[@iss_state = '1']">
                                    <tr>
                                        <td><xsl:value-of select="./@iss_state"/></td>
                                        <td><xsl:value-of select="./@iss_num"/></td>
                                        <td><xsl:text>DEVI:</xsl:text><xsl:value-of select="./@iss_db"/></td>
                                        <td class="wrap"><xsl:value-of select="./@summary"/></td>
                                        <td><xsl:value-of select="./@issue_type"/></td>
                                        <td><xsl:value-of select="./@priority"/></td>
                                    </tr>
                                </xsl:for-each>
                            </xsl:if>
                                                </xsl:for-each>
                                        </tbody>
                                </table>

                                <!-- Deployed package: Changes since last version -->
                                <table class="tbl_border">
                                        <tbody>
                                                <tr>
                                                        <td colspan="5" class="tbl_title">
                                                                <span class="body_sect">Changes Since Last Version:</span>
                                                                <br/>
                                                                <xsl:text>This represents the build dependency differences between </xsl:text>
                                                                <xsl:value-of select="//package_data/package/@name"/>&#160;<xsl:value-of select="//package_data/package/@version"/>
                                                                <xsl:text> and </xsl:text>
                                                                <xsl:call-template name="versionRef">
                                                                        <xsl:with-param name="pkg" select="//package_data/package/previous/@name"/>
                                                                        <xsl:with-param name="version" select="//package_data/package/previous/@version"/>
                                                                        <xsl:with-param name="pvid" select="//package_data/package/previous/@pvid"/>
                                                                </xsl:call-template>
                                                        </td>
                                                </tr>
                                                <tr>
                                                        <th width="1%">Status</th>
                                                        <th width="1%">Dependency Name</th>
                                                        <th width="1%">Current Version</th>
                                                        <th width="1%">Previous Version</th>
                                                        <th width="100%">Last Owner</th>
                                                </tr>
                                                <xsl:for-each select="/package_data/builddep/dependencydiff">
                                                        <xsl:sort select="upper-case(./@name)"/>
                                                        <tr>
                                                                <xsl:call-template name="changeClass">
                                                                        <xsl:with-param name="style" select="./@status"/>
                                                                </xsl:call-template>
                                                                <td class="body_txt_gray pkgType">
                                                                        <xsl:value-of select="./@status"/>
                                                                </td>
                                                                <td class="pkgType">
                                                                        <xsl:value-of select="./@name"/>
                                                                </td>
                                                                <td>
                                                                        <xsl:call-template name="versionRef">
                                                                                <xsl:with-param name="pkg" select="./@name"/>
                                                                                <xsl:with-param name="version" select="./@version"/>
                                                                                <xsl:with-param name="pvid" select="./@pvid"/>
                                                                        </xsl:call-template>
                                                                </td>
                                                                <td>
                                                                        <xsl:call-template name="versionRef">
                                                                                <xsl:with-param name="pkg" select="./@name"/>
                                                                                <xsl:with-param name="version" select="./@previous_version"/>
                                                                                <xsl:with-param name="pvid" select="./@previous_pvid"/>
                                                                        </xsl:call-template>
                                                                </td>
                                                                <td>
                                                                        <xsl:call-template name="mailUrl">
                                                                                <xsl:with-param name="text" select="./@modifier"/>
                                                                                <xsl:with-param name="email" select="./@modifier_email"/>
                                                                        </xsl:call-template>
                                                                </td>
                                                        </tr>
                                                </xsl:for-each>
                                        </tbody>
                                </table>

                <!-- Build Dependencies -->
                                <table class="tbl_border">
                                        <tbody>
                                                <tr>
                                                        <td colspan="2" class="tbl_title">
                                                                <span class="body_sect">
                                    <xsl:text>Build Dependencies:</xsl:text>
                                </span>
                                                                <p>
                                    <xsl:text>This package was built with the following "dpkg_archive" packages:</xsl:text>
                                </p>
                                                        </td>
                                                </tr>
                                                <tr>
                                                        <th width="1%">Dependency Name</th>
                                                        <th width="100%">Version</th>
                                                </tr>
                                                <xsl:for-each select="/package_data/build/dependency">
                                                        <xsl:sort select="upper-case(./@name)"/>
                                                        <tr>
                                                                <td>
                                                                        <xsl:value-of select="./@name"/>
                                                                </td>
                                                                <td>
                                                                        <xsl:call-template name="versionRef">
                                                                                <xsl:with-param name="pkg" select="./@name"/>
                                                                                <xsl:with-param name="version" select="./@version"/>
                                                                                <xsl:with-param name="pvid" select="./@pvid"/>
                                                                        </xsl:call-template>
                                                                </td>
                                                        </tr>
                                                </xsl:for-each>
                                        </tbody>
                                </table>

                                <!-- Run Time Dependencies -->
                                <table class="tbl_border">
                                        <tbody>
                                                <tr>
                                                        <td colspan="3" class="tbl_title">
                                                                <span class="body_sect">
                                    <xsl:text>Runtime Dependencies:</xsl:text>
                                </span>
                                                                <p>
                                    <xsl:text>This package requires the presence of the following packages on runtime to operate correctly:</xsl:text>
                                </p>
                                                        </td>
                                                </tr>
                                                <tr>
                                                        <th width="1%">Dependency Name</th>
                                                        <th width="1%">Version</th>
                                                        <th width="100%">Comments</th>
                                                </tr>
                                                <xsl:for-each select="/package_data/runtime/dependency">
                                                        <xsl:sort select="upper-case(./@name)"/>
                                                        <tr>
                                                                <td>
                                                                        <xsl:value-of select="./@name"/>
                                                                </td>
                                                                <td>
                                                                        <xsl:call-template name="versionRef">
                                                                                <xsl:with-param name="pkg" select="./@name"/>
                                                                                <xsl:with-param name="version" select="./@version"/>
                                                                                <xsl:with-param name="pvid" select="./@pvid"/>
                                                                        </xsl:call-template>
                                                                </td>
                                                                <td>
                                                                        <xsl:value-of select="./@comment" disable-output-escaping="yes"/>
                                                                </td>
                                                        </tr>
                                                </xsl:for-each>
                                                <tr>
                                                        <td>&#160;</td>
                                                        <td>&#160;</td>
                                                        <td>&#160;</td>
                                                </tr>
                                        </tbody>
                                </table>

                <!-- Files and Folders -->
                                <table class="tbl_border">
                                        <tbody>
                                                <tr>
                                                        <td colspan="4" class="tbl_title">
                                                                <span class="body_sect">Files:</span>
                                                                <br/>
                                                                <span class="wrap">
                                                                        <br/>
                                    <xsl:text>This release consists of the following files.</xsl:text>
                                                                </span>
                                                        </td>
                                                </tr>
                                                <tr>
                                                        <th width="1%">File Path</th>
                                                        <th>File Name</th>
                                                        <th width="1%">Size (bytes)</th>
                                                        <th width="1%">MD5 Digest</th>
                                                </tr>
                                                <xsl:for-each select="/package_data/files/file[@type != 'merge']">
                                                        <xsl:sort select="./@path"/>
                                                        <xsl:sort select="./@name"/>
                                                        <tr>
                                                                <td>
                                                                        <xsl:value-of select="./@path"/>
                                                                </td>
                                                                <td>
                                                                        <xsl:value-of select="./@name"/>
                                                                </td>
                                                                <td>
                                                                        <xsl:value-of select="./@size"/>
                                                                </td>
                                                                <td>
                                                                        <xsl:value-of select="./@md5sum"/>
                                                                </td>
                                                        </tr>
                                                </xsl:for-each>
                                        </tbody>
                                </table>

                                <!-- Unit Tests -->
                                <table class="tbl_border">
                                        <tbody>
                                                <tr>
                                                        <td colspan="4" class="tbl_title">
                                                                <span class="body_sect">Unit Tests:</span>
                                                        </td>
                                                </tr>
                                                <tr>
                                                        <th width="1%">Test</th>
                                                        <th width="100%">Test Summary</th>
                                                        <th width="1%" align="center">Passed # / Total</th>
                                                        <th width="1%">Test Completed</th>
                                                </tr>
                                                <xsl:for-each select="/package_data/unit_tests/test">
                                                        <tr>
                                                                <td>
                                                                        <xsl:value-of select="./@name"/>
                                                                </td>
                                                                <td class="wrap">
                                                                        <xsl:value-of select="./@test_summary" disable-output-escaping="yes"/>
                                                                </td>
                                                                <td>
                                                                        <xsl:value-of select="./@numof_test"/>
                                                                </td>
                                                                <td>
                                                                        <xsl:value-of select="./@completion_date"/>
                                                                </td>
                                                        </tr>
                                                </xsl:for-each>
                                                <tr>
                                                        <td>&#160;</td>
                                                        <td>&#160;</td>
                                                        <td>&#160;</td>
                                                        <td>&#160;</td>
                                                </tr>
                                        </tbody>
                                </table>

                                <!-- Additional Notes -->
                                <table class="tbl_border">
                                        <tbody>
                                                <tr>
                                                        <td class="body_sect tbl_title">Additional Notes:</td>
                                                </tr>
                                                <xsl:for-each select="/package_data/additional_notes/note">
                        <tr>
                            <td class="wrap">
                                <b>
                                    <xsl:value-of select="./@note_title"/>
                                </b>
                                <br/>
                                <xsl:value-of select="./@note_body" disable-output-escaping="yes"/>
                                <p class="body_txt_macro">
                                    <xsl:text>Last Modified: </xsl:text>
                                    <xsl:value-of select="./@mod_date"/>
                                    <xsl:text> by </xsl:text>
                                    <xsl:value-of select="./@full_name"/>
                                </p>
                            </td>
                        </tr>
                                                </xsl:for-each>
                                                <tr>
                                                        <td>&#160;</td>
                                                </tr>
                                        </tbody>
                                </table>

                <!-- Page Footer -->
                                <table class="tbl_noborder">
                                        <tbody>
                                                <tr>
                                                        <td colspan="3">
                                                                <hr size="1"/>
                                                        </td>
                                                </tr>
                                                <tr>
                                                        <td align="left" width="33%">
                                Data Source: <xsl:value-of select="/package_data/meta/@created"/>
                                                        </td>
                                                        <td align="center" width="33%">
                                Generated: <xsl:value-of select="current-dateTime()"/>
                                                        </td>
                                                        <td align="right" width="33%">
                                                                <xsl:text>VIX Confidental © VIX</xsl:text>
                                                        </td>
                                                </tr>
                                        </tbody>
                                </table>
                        </body>
                </html>
        </xsl:template>
</xsl:stylesheet>