Componentes.Terceros.RemObj.../internal/5.0.24.615/1/RemObjects SDK for Delphi/Source/uROHtmlServerInfoRes.xsl

754 lines
24 KiB
XML

<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="html"/>
<xsl:template match="/Library">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta name="GENERATOR" content="XSL Rodl2Html.xsl"/>
<meta http-equiv="Content-Type" content="text/html"/>
<title>
<xsl:value-of select="@Name"/> documentation</title>
<style>
<xsl:comment>
body, table, tr, td
{
background-color: #f7f7f7;
margin: 0;
padding: 0;
font-family: Verdana, Tahoma, Arial, Helvetica, sans serif;
font-size: 10pt;
}
.header
{
padding: 5px;
background-color: #c0c0c0;
border-bottom: 5px solid #808080;
font-size: 1.5em;
}
.body
{
padding: 5px;
}
.footer
{
padding: 5px;
border-top: 1px solid #808080;
font-size: 0.8em;
}
.section
{
margin-left: 25px;
padding-left: 3px;
padding-top: 3px;
padding-bottom: 3px;
border-left: 1px solid #b0b0b0;
border-bottom: 1px solid #b0b0b0;
}
.h1
{
font-size: 13pt;
border-left: 1px solid #b0b0b0;
border-bottom: 1px solid #b0b0b0;
}
.h2
{
font-size: 13pt;
border-left: 1px solid #b0b0b0;
border-bottom: 1px solid #b0b0b0;
}
p { margin-bottom: 0.75em; margin-top: 0; }
.h1, .h2, .h3, .h4, h4
{
margin-top: 1em;
margin-bottom: 0;
padding-bottom: 0;
padding-left: 3px;
font-weight: bold;
}
a { text-decoration: none }
h2 { font-size: 12pt; }
h3 { font-size: 11pt; }
h4 { font-size: 10pt; font-weight: normal; text-decoration: underline;}
ul, ol { margin-top: 0; margin-bottom: 0.75em; }
pre { margin: 0 }
pre, code
{
font: 100% Monospace, Courier New, Courier;
color: #000066;
}
.spaced
{
letter-spacing: 1px;
color: #000060;
}
table { padding: 0; }
tr { margin: 0; padding: 0; }
td { margin: 0; }
table, td { border: 1px dashed #c0c0c0; }
</xsl:comment>
</style>
</head>
<body>
<div class="header">
<img src="favicon.ico" style="padding-right: 5px;"/>
<xsl:value-of select="/Library/@Name"/>
</div>
<div class="body">
<a>
<xsl:attribute name="name"><xsl:value-of select="/Library/@Name"/></xsl:attribute>
</a>
<div class="h1">Table Of Contents</div>
<p>This document is split into the following sections:</p>
<ul>
<li>
<a>
<xsl:attribute name="href">#<xsl:value-of select="/Library/@Name"/>.Services</xsl:attribute>
Services</a>
</li>
<li>
<a>
<xsl:attribute name="href">#<xsl:value-of select="/Library/@Name"/>.EventSinks</xsl:attribute>
Event sinks</a>
</li>
<li>
<a>
<xsl:attribute name="href">#<xsl:value-of select="/Library/@Name"/>.Structs</xsl:attribute>
Structs</a>
</li>
<li>
<a>
<xsl:attribute name="href">#<xsl:value-of select="/Library/@Name"/>.Enums</xsl:attribute>
Enums</a>
</li>
<li>
<a>
<xsl:attribute name="href">#<xsl:value-of select="/Library/@Name"/>.Arrays</xsl:attribute>
Arrays</a>
</li>
<li>
<a>
<xsl:attribute name="href">#<xsl:value-of select="/Library/@Name"/>.Exceptions</xsl:attribute>
Exceptions</a>
</li>
<li>
<a>
<xsl:attribute name="href">#<xsl:value-of select="/Library/@Name"/>.Uses</xsl:attribute>
Used RODLs</a>
</li>
</ul>
<p>
<b>Library Description:</b> <xsl:value-of select="/Library/Documentation"/>
</p>
<xsl:call-template name="ServicesOverview"/>
<a>
<xsl:attribute name="name"><xsl:value-of select="/Library/@Name"/>.EventSinks</xsl:attribute>
</a>
<xsl:call-template name="EventSinksOverview"/>
<a>
<xsl:attribute name="name"><xsl:value-of select="/Library/@Name"/>.Structs</xsl:attribute>
</a>
<xsl:call-template name="StructsOverview"/>
<!--<xsl:call-template name="StructsMembers"/>-->
<a>
<xsl:attribute name="name"><xsl:value-of select="/Library/@Name"/>.Enums</xsl:attribute>
</a>
<xsl:call-template name="EnumsOverview"/>
<!--<xsl:call-template name="EnumsMembers"/>-->
<a>
<xsl:attribute name="name"><xsl:value-of select="/Library/@Name"/>.Arrays</xsl:attribute>
</a>
<xsl:call-template name="ArraysOverview"/>
<!--<xsl:call-template name="ArraysMembers"/>-->
<a>
<xsl:attribute name="name"><xsl:value-of select="/Library/@Name"/>.Exceptions</xsl:attribute>
</a>
<xsl:call-template name="ExceptionsOverview"/>
<!--<xsl:call-template name="ExceptionsMembers"/>-->
<a>
<xsl:attribute name="name"><xsl:value-of select="/Library/@Name"/>.Uses</xsl:attribute>
</a>
<xsl:call-template name="UsesOverview"/>
</div>
<div class="footer">
RemObjects Software, LLC. <a href="http://www.remobjects.com">remobjects.com</a>.
</div>
</body>
</html>
</xsl:template>
<xsl:template name="ServicesOverview" match="/Services">
<a>
<xsl:attribute name="name"><xsl:value-of select="/Library/@Name"/>.Services</xsl:attribute>
</a>
<div class="h1">Services</div>
<div class="section">
<p>The following table lists the Services defined in "<xsl:value-of select="/Library/@Name"/>":</p>
<table width="80%">
<xsl:for-each select="./Services/Service/Interfaces/Interface">
<tr>
<td valign="top" width="250">
<a>
<xsl:attribute name="href">#<xsl:value-of select="../../@Name"/></xsl:attribute>
<xsl:value-of select="../../@Name"/>
</a>
</td>
<td>
<xsl:value-of select="../../Documentation"/>
</td>
</tr>
</xsl:for-each>
</table>
<xsl:call-template name="ServicesMembers"/>
</div>
</xsl:template>
<xsl:template name="ServicesMembers" match="/Services">
<xsl:for-each select="./Services/Service/Interfaces/Interface">
<a>
<xsl:attribute name="name"><xsl:value-of select="../../@Name"/></xsl:attribute>
</a>
<div class="h2">
Service <i><xsl:value-of select="../../@Name"/></i>
</div>
<div class="section">
<p>The following table lists the Operations defined in "<xsl:value-of select="../../@Name"/>":</p>
<table width="80%">
<xsl:for-each select="./Operations/Operation">
<tr>
<td valign="top" width="250">
<a>
<xsl:attribute name="href">#<xsl:value-of select="../../../../@Name"/>.<xsl:value-of select="@Name"/></xsl:attribute>
<xsl:value-of select="@Name"/>
</a>
</td>
<td>
<xsl:value-of select="Documentation"/>
</td>
</tr>
</xsl:for-each>
</table>
<xsl:call-template name="MemberDeclarations"/>
</div>
</xsl:for-each>
</xsl:template>
<xsl:template name="EventSinksOverview" match="/EventSinks">
<a>
<xsl:attribute name="name"><xsl:value-of select="/Library/@Name"/>.Services</xsl:attribute>
</a>
<div class="h1">Event Sinks</div>
<div class="section">
<p>The following table lists the Event Sinks defined in "<xsl:value-of select="/Library/@Name"/>":</p>
<table width="80%">
<xsl:for-each select="./EventSinks/EventSink/Interfaces/Interface">
<tr>
<td valign="top" width="250">
<a>
<xsl:attribute name="href">#<xsl:value-of select="../../@Name"/></xsl:attribute>
<xsl:value-of select="../../@Name"/>
</a>
</td>
<td>
<xsl:value-of select="../../Documentation"/>
</td>
</tr>
</xsl:for-each>
</table>
<xsl:call-template name="EventSinksMembers"/>
</div>
</xsl:template>
<xsl:template name="EventSinksMembers" match="/EventSinks">
<xsl:for-each select="./EventSinks/EventSink/Interfaces/Interface">
<a>
<xsl:attribute name="name"><xsl:value-of select="../../@Name"/></xsl:attribute>
</a>
<div class="h2">Event Sink <i><xsl:value-of select="../../@Name"/></i></div>
<div class="section">
<p>The following table lists the Events defined in "<xsl:value-of select="../../@Name"/>":</p>
<table width="80%">
<xsl:for-each select="./Operations/Operation">
<tr>
<td valign="top" width="250">
<a>
<xsl:attribute name="href">#<xsl:value-of select="../../../../@Name"/>.<xsl:value-of select="@Name"/></xsl:attribute>
<xsl:value-of select="@Name"/>
</a>
</td>
<td>
<xsl:value-of select="Documentation"/>
</td>
</tr>
</xsl:for-each>
</table>
<xsl:call-template name="EventMemberDeclarations"/>
</div>
</xsl:for-each>
</xsl:template>
<xsl:template name="MemberDeclarations">
<xsl:for-each select="./Operations/Operation">
<a>
<xsl:attribute name="name"><xsl:value-of select="../../../../@Name"/>.<xsl:value-of select="@Name"/></xsl:attribute>
</a>
<h3>
Method <i><!--<xsl:value-of select="../../../../@Name"/>.--><xsl:value-of select="@Name"/></i>
</h3>
<p>
<xsl:value-of select="@Documentation"/>
</p>
<xsl:apply-templates select="Parameters"/>
</xsl:for-each>
</xsl:template>
<xsl:template name="EventMemberDeclarations">
<xsl:for-each select="./Operations/Operation">
<a>
<xsl:attribute name="name"><xsl:value-of select="../../../../@Name"/>.<xsl:value-of select="@Name"/></xsl:attribute>
</a>
<h3>
Event <i><!--<xsl:value-of select="../../../../@Name"/>.--><xsl:value-of select="@Name"/></i>
</h3>
<p>
<xsl:value-of select="@Documentation"/>
</p>
<xsl:apply-templates select="Parameters"/>
</xsl:for-each>
</xsl:template>
<xsl:template match="Parameters">
<h4>Chrome Syntax:</h4>
<code>
<!--<xsl:choose>
<xsl:when test="count(./Parameter[@Name='Result']) = 1">
<b>function </b>
</xsl:when>
<xsl:otherwise>
<b>procedure </b>
</xsl:otherwise>
</xsl:choose>-->
<b>method </b>
<xsl:value-of select="../../../../../@Name"/>.<xsl:value-of select="../@Name"/>(<xsl:for-each select="Parameter[@Flag!='Result']">
<xsl:call-template name="Declaration">
<xsl:with-param name="Language" select="'Pascal'"/>
</xsl:call-template>
</xsl:for-each>)<xsl:for-each select="Parameter[@Flag='Result']">
<xsl:call-template name="Declaration">
<xsl:with-param name="Language" select="'Pascal'"/>
</xsl:call-template>
</xsl:for-each>;
</code>
<h4>C# Syntax:</h4>
<code>
<xsl:choose>
<xsl:when test="count(./Parameter[@Name='Result']) = 1">
public <xsl:value-of select="./Parameter[@Flag='Result']/@DataType"/><xsl:text> </xsl:text>
</xsl:when>
<xsl:otherwise>
public void
</xsl:otherwise>
</xsl:choose>
<xsl:value-of select="../../../../../@Name"/>.<xsl:value-of select="../@Name"/>(<xsl:for-each select="Parameter[@Flag!='Result']">
<xsl:call-template name="Declaration">
<xsl:with-param name="Language" select="'CSharp'"/>
</xsl:call-template>
</xsl:for-each>);
</code>
<!--<h3>Parameters</h3>
<xsl:call-template name="Parameters"/>
<h3>Return Value</h3>
<xsl:call-template name="ReturnValue"/>
<p>
<a>
<xsl:attribute name="href">#<xsl:value-of select="/Library/@Name"/></xsl:attribute>
<xsl:value-of select="/Library/@Name"/>
</a>
<xsl:text>
</xsl:text>
<a>
<xsl:attribute name="href">#<xsl:value-of select="../../../../../@Name"/></xsl:attribute>
<xsl:value-of select="../../../../../@Name"/>
</a>
</p>-->
</xsl:template>
<xsl:template name="Parameters">
<xsl:choose>
<xsl:when test="count(Parameter[@Name!='Result']) = 0">None.</xsl:when>
<xsl:otherwise>
<xsl:for-each select="Parameter[@Name!='Result']">
<h4>
<xsl:value-of select="@Name"/>
</h4>
Dear RemObjects Team: Please add a Parameter documentation to your rodl-file!
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="ReturnValue">
<xsl:choose>
<xsl:when test="count(Parameter[@Flag='Result']) = 0">None.</xsl:when>
<xsl:otherwise>
<xsl:for-each select="Parameter[@Flag='Result']">
<!-- the Result-comment -->
Dear RemObjects Team: Please add a Parameter documentation to your rodl-file!
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="Declaration">
<xsl:param name="Language"/>
<xsl:choose>
<xsl:when test="$Language='Pascal'">
<xsl:call-template name="GeneratePascalParameter"/>
</xsl:when>
<xsl:when test="$Language='CSharp'">
<xsl:call-template name="GenerateCSharpParameter"/>
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template name="GeneratePascalParameter">
<xsl:choose>
<xsl:when test="position()=1 and @Flag != 'Result'">
<xsl:call-template name="FlagToSpec">
<xsl:with-param name="Flag" select="@Flag"/>
</xsl:call-template>
<xsl:value-of select="@Name"/>: <xsl:value-of select="@DataType"/>
</xsl:when>
<xsl:when test="@Flag = 'Result'">: <xsl:value-of select="@DataType"/>
</xsl:when>
<xsl:when test="position()=last()">; <xsl:call-template name="FlagToSpec">
<xsl:with-param name="Flag" select="@Flag"/>
</xsl:call-template>
<xsl:value-of select="@Name"/>: <xsl:value-of select="@DataType"/></xsl:when>
<xsl:when test="position()>1">; <xsl:call-template name="FlagToSpec">
<xsl:with-param name="Flag" select="@Flag"/>
</xsl:call-template>
<xsl:value-of select="@Name"/>: <xsl:value-of select="@DataType"/>
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template name="GenerateCSharpParameter">
<xsl:choose>
<xsl:when test="position()=1 and @Flag != 'Result'">
<xsl:call-template name="FlagToSpecCSharp">
<xsl:with-param name="Flag" select="@Flag"/>
</xsl:call-template>
<xsl:call-template name="DataTypeToCSharp">
<xsl:with-param name="DataType" select="@DataType"/>
</xsl:call-template>
<xsl:text> </xsl:text>
<xsl:value-of select="@Name"/>
</xsl:when>
<xsl:when test="position()=last()">, <xsl:call-template name="FlagToSpecCSharp">
<xsl:with-param name="Flag" select="@Flag"/>
</xsl:call-template>
<xsl:call-template name="DataTypeToCSharp">
<xsl:with-param name="DataType" select="@DataType"/>
</xsl:call-template>
<xsl:text> </xsl:text>
<xsl:value-of select="@Name"/></xsl:when>
<xsl:when test="position()>1">, <xsl:call-template name="FlagToSpecCSharp">
<xsl:with-param name="Flag" select="@Flag"/>
</xsl:call-template>
<xsl:call-template name="DataTypeToCSharp">
<xsl:with-param name="DataType" select="@DataType"/>
</xsl:call-template>
<xsl:text> </xsl:text>
<xsl:value-of select="@Name"/>
</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template name="FlagToSpec">
<xsl:param name="Flag"/>
<xsl:choose>
<xsl:when test="$Flag='In'">
<b>const </b>
</xsl:when>
<xsl:when test="$Flag='InOut'">
<b>var </b>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:template>
<xsl:template name="DataTypeToCSharp">
<xsl:param name="DataType"/>
<xsl:choose>
<xsl:when test="$DataType='Integer'">
Int32
</xsl:when>
<xsl:when test="$DataType='Widestring'">
String
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$DataType"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="FlagToSpecCSharp">
<xsl:param name="Flag"/>
<xsl:choose>
<xsl:when test="$Flag='In'">
<!--<b>const </b>-->
</xsl:when>
<xsl:when test="$Flag='InOut'">
<b>ref </b>
</xsl:when>
<xsl:when test="$Flag='Out'">
<b>out </b>
</xsl:when>
<xsl:otherwise/>
</xsl:choose>
</xsl:template>
<xsl:template name="StructsOverview" match="/Structs">
<a>
<xsl:attribute name="name"><xsl:value-of select="/Library/@Name"/>.Structs</xsl:attribute>
</a>
<div class="h1">Structs</div>
<div class="section">
<p>The following table lists the Structs defined in "<xsl:value-of select="/Library/@Name"/>":</p>
<table width="80%">
<xsl:for-each select="./Structs/Struct">
<tr>
<td valign="top" width="250">
<a>
<xsl:attribute name="href">#<xsl:value-of select="@Name"/></xsl:attribute>
<xsl:value-of select="@Name"/>
</a>
</td>
<td>
<xsl:value-of select="Documentation"/>
</td>
</tr>
</xsl:for-each>
</table>
</div>
</xsl:template>
<xsl:template name="StructsMembers" match="/Structs">
<xsl:apply-templates select="./Structs/Struct"/>
</xsl:template>
<xsl:template match="/Structs/Struct">
<a>
<xsl:attribute name="name"><xsl:value-of select="@Name"/></xsl:attribute>
</a>
<div class="h2">
<xsl:value-of select="@Name"/> Struct</div>
<p>
<xsl:value-of select="Documentation"/>
</p>
<h3>Members</h3>
<xsl:for-each select="Elements/Element">
<h4>
<xsl:value-of select="@Name"/>
</h4>
<p>Datatype: <xsl:call-template name="LinkToDataType">
<xsl:with-param name="DataType" select="@DataType"/>
</xsl:call-template>
</p>
</xsl:for-each>
</xsl:template>
<xsl:template name="LinkToDataType">
<xsl:param name="DataType"/>
<xsl:choose>
<xsl:when test="(count(/Library/Enums/Enum[@Name=$DataType]) = 1) or (count(/Library/Structs/Struct[@Name=$DataType]) = 1) or (count(/Library/Arrays/Array[@Name=$DataType]) = 1)">
<a>
<xsl:attribute name="href">#<xsl:value-of select="$DataType"/></xsl:attribute>
<xsl:value-of select="$DataType"/>
</a>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$DataType"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="EnumsOverview" match="/Enums">
<a>
<xsl:attribute name="name"><xsl:value-of select="/Library/@Name"/>.Enums</xsl:attribute>
</a>
<div class="h1">Enums</div>
<div class="section">
<p>The following table lists the Enums defined in "<xsl:value-of select="/Library/@Name"/>":</p>
<table width="80%">
<xsl:for-each select="./Enums/Enum">
<tr>
<td valign="top" width="250">
<a>
<xsl:attribute name="href">#<xsl:value-of select="@Name"/></xsl:attribute>
<xsl:value-of select="@Name"/>
</a>
</td>
<td>
<xsl:value-of select="Documentation"/>
</td>
</tr>
</xsl:for-each>
</table>
</div>
</xsl:template>
<xsl:template name="EnumsMembers" match="/Enums">
<xsl:apply-templates select="./Enums/Enum"/>
</xsl:template>
<xsl:template match="/Enums/Enum">
<a>
<xsl:attribute name="name"><xsl:value-of select="@Name"/></xsl:attribute>
</a>
<div class="h2">
<xsl:value-of select="@Name"/> Enumerations</div>
<p>
<xsl:value-of select="@Documentation"/>
</p>
<table width="80%">
<tr vAlign="top">
<th width="52%">Enumerated Type Value</th>
<th width="15%">DEC Value</th>
<th width="33%">HEX Value</th>
</tr>
<xsl:for-each select="EnumValues/EnumValue">
<tr>
<td valign="top" width="250">
<xsl:value-of select="@Name"/>
</td>
<td>
<xsl:value-of select="position()-1"/>
</td>
<td>
0x<xsl:call-template name="DecToHex">
<xsl:with-param name="Decimal" select="position()-1"/>
</xsl:call-template>
</td>
</tr>
</xsl:for-each>
</table>
</xsl:template>
<xsl:template name="DecToHex">
<xsl:param name="Decimal"/>
How to convert Dec 2 Hex?
<!-- How to do this? -->
</xsl:template>
<xsl:template name="ArraysOverview" match="/Arrays">
<a>
<xsl:attribute name="name"><xsl:value-of select="/Library/@Name"/>.Arrays</xsl:attribute>
</a>
<div class="h1">Arrays</div>
<div class="section">
<p>The following table lists the Arrays defined in "<xsl:value-of select="/Library/@Name"/>":</p>
<table width="80%">
<xsl:for-each select="./Arrays/Array">
<tr>
<td valign="top" width="250">
<a>
<xsl:attribute name="href">#<xsl:value-of select="@Name"/></xsl:attribute>
<xsl:value-of select="@Name"/>
</a>
</td>
<td>
<xsl:value-of select="Documentation"/>
</td>
</tr>
</xsl:for-each>
</table>
</div>
</xsl:template>
<xsl:template name="ArraysMembers" match="/Arrays">
<xsl:apply-templates select="./Arrays/Array"/>
</xsl:template>
<xsl:template match="/Arrays/Array">
<a>
<xsl:attribute name="name"><xsl:value-of select="@Name"/></xsl:attribute>
</a>
<div class="h2">
<xsl:value-of select="@Name"/> Array</div>
<p>
<xsl:value-of select="@Documentation"/>
</p>
<p>Element Type:
<xsl:call-template name="LinkToDataType">
<xsl:with-param name="DataType" select="ElementType/@DataType"/>
</xsl:call-template>
</p>
</xsl:template>
<xsl:template name="ExceptionsOverview" match="/Exceptions">
<a>
<xsl:attribute name="name"><xsl:value-of select="/Library/@Name"/>.Exceptions</xsl:attribute>
</a>
<div class="h1">Exceptions</div>
<div class="section">
<p>The following table lists the Exceptions defined in "<xsl:value-of select="/Library/@Name"/>":</p>
<table width="80%">
<xsl:for-each select="./Exceptions/Exception">
<tr>
<td valign="top" width="250">
<xsl:value-of select="@Name"/>
</td>
<td>
<xsl:value-of select="Documentation"/>
</td>
</tr>
</xsl:for-each>
</table>
</div>
</xsl:template>
<xsl:template name="ExceptionsMembers" match="/Exceptions">
<xsl:apply-templates select="./Exceptions/Exception"/>
</xsl:template>
<xsl:template match="/Exceptions/Exception">
<a>
<xsl:attribute name="name"><xsl:value-of select="@Name"/></xsl:attribute>
</a>
<div class="h2">
Exception <xsl:value-of select="@Name"/> Struct</div>
<p>
<xsl:value-of select="@Documentation"/>
</p>
<h3>Members</h3>
<xsl:for-each select="Elements/Element">
<h4>
<xsl:value-of select="@Name"/>
</h4>
<p>Datatype: <xsl:call-template name="LinkToDataType">
<xsl:with-param name="DataType" select="@DataType"/>
</xsl:call-template>
</p>
</xsl:for-each>
</xsl:template>
<xsl:template name="UsesOverview" match="/Uses">
<a>
<xsl:attribute name="name"><xsl:value-of select="/Library/@Name"/>.Uses</xsl:attribute>
</a>
<div class="h1">
Used RODL Files
</div>
<div class="section">
<p>The following table lists the external RODL files used by library "<xsl:value-of select="/Library/@Name"/>":</p>
<table width="80%">
<xsl:for-each select="./Uses/Use">
<tr>
<td valign="top" width="250" rowspan="2">
<xsl:value-of select="@Name"/>
</td>
<td>
<xsl:value-of select="@Rodl"/>
</td>
</tr>
<tr>
<td>
<xsl:value-of select="Documentation"/>
</td>
</tr>
</xsl:for-each>
</table>
</div>
</xsl:template>
</xsl:stylesheet>