blob: 5659bb3839426b2102771a24a6664a0fc1aefad8 [file] [log] [blame]
<?xml version='1.0' encoding='UTF-8'?>
<xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform' version='1.0'>
<!--<xsl:strip-space elements='p th td li strong em'/>-->
<xsl:template match='/design'>
<s1 title='{@name}'>
<xsl:apply-templates select='category'/>
</s1>
</xsl:template>
<xsl:template match='category'>
<s2 title='{@name}'>
<s3 title='Package {@package}'>
<xsl:apply-templates select='interface|class'/>
</s3>
</s2>
</xsl:template>
<xsl:template match='interface|class'>
<anchor name='{@id}'/>
<table>
<tr>
<th>
<xsl:choose>
<xsl:when test='name()="interface"'>
interface <em><xsl:value-of select='@name'/></em>
</xsl:when>
<xsl:otherwise>
class <strong><xsl:value-of select='@name'/></strong>
</xsl:otherwise>
</xsl:choose>
</th>
</tr>
<xsl:if test='extends'>
<tr>
<td>
extends
<xsl:for-each select='extends'>
<xsl:call-template name='type'/>
<xsl:if test='not(position()=last())'>
<xsl:text>, </xsl:text>
</xsl:if>
</xsl:for-each>
</td>
</tr>
</xsl:if>
<xsl:if test='implements'>
<tr>
<td>
implements
<xsl:for-each select='implements'>
<xsl:call-template name='type'/>
<xsl:if test='not(position()=last())'>
<xsl:text>, </xsl:text>
</xsl:if>
</xsl:for-each>
</td>
</tr>
</xsl:if>
<xsl:if test='constant'>
<tr>
<td>
constants:
<ul>
<xsl:for-each select='constant'>
<li>
<xsl:value-of select='@visibility'/>
<xsl:text> </xsl:text>
<xsl:apply-templates/>
<xsl:text> </xsl:text>
<xsl:value-of select='@name'/>
</li>
</xsl:for-each>
</ul>
</td>
</tr>
</xsl:if>
<xsl:if test='method'>
<tr>
<td>
methods:
<ul>
<xsl:for-each select='method'>
<li>
<xsl:value-of select='@visibility'/>
<xsl:text> </xsl:text>
<xsl:choose>
<xsl:when test='returns'>
<xsl:apply-templates/>
<xsl:text> </xsl:text>
</xsl:when>
<xsl:otherwise>void </xsl:otherwise>
</xsl:choose>
<xsl:value-of select='@name'/>
<xsl:text>(</xsl:text>
<xsl:for-each select='param'>
<xsl:apply-templates/>
<xsl:if test='not(position()=last())'>, </xsl:if>
</xsl:for-each>
<xsl:text>)</xsl:text>
</li>
</xsl:for-each>
</ul>
</td>
</tr>
</xsl:if>
</table>
</xsl:template>
<xsl:template match='constant|field|param'>
<xsl:call-template name='type'/>
<xsl:text> </xsl:text>
<xsl:value-of select='@name'/>
</xsl:template>
<xsl:template name='type'>
<xsl:apply-templates select='primitive|array|reference|collection'/>
</xsl:template>
<xsl:template match='primitive'>
<xsl:value-of select='@type'/>
</xsl:template>
<xsl:template match='array'>
<xsl:call-template name='type'/>[]
</xsl:template>
<xsl:template match='reference'>
<xsl:variable name='idref'><xsl:value-of select='@idref'/></xsl:variable>
<xsl:choose>
<xsl:when test='//class[@id=$idref]'>
<strong><xsl:value-of select='//*[@id=$idref]/@name'/></strong>
</xsl:when>
<xsl:otherwise>
<em><xsl:value-of select='//*[@id=$idref]/@name'/></em>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template match='collection'>
COLLECTION
</xsl:template>
</xsl:stylesheet>