ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/kgsueme/doc/doc2html.xsl
Revision: 1.6
Committed: Sun Jul 20 15:01:24 2003 UTC (20 years, 10 months ago) by pcg
Content type: application/xml
Branch: MAIN
Changes since 1.5: +5 -5 lines
Log Message:
*** empty log message ***

File Contents

# Content
1 <!DOCTYPE xsl:stylesheet>
2 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
3
4 <xsl:output method="xhtml" omit-xml-declaration='yes' media-type="text/html" encoding="utf-8"/>
5
6 <xsl:template name="mbody">
7 <p>
8 <!-- horrible hack -->
9 <xsl:apply-templates select="child::node()[1][name() != 'member']"/>
10 <xsl:apply-templates select="child::node()[2][name() = 'p']"/>
11 </p>
12 <table border="1" width="100%">
13 <tr>
14 <th width="10%">NAME</th>
15 <th width="10%">TYPE</th>
16 <th width="15%">DEFAULT</th>
17 <th>DESCRIPTION</th>
18 <th width="15%">DEC-GUARD</th>
19 </tr>
20 <xsl:apply-templates select="child::member"/>
21 </table>
22 </xsl:template>
23
24 <xsl:template match="member">
25 <tr>
26 <td><xsl:value-of select="@name"/></td>
27 <td><xsl:value-of select="@type"/></td>
28 <td><xsl:value-of select="@default"/>&#160;</td>
29 <td>
30 <!-- horrible hack -->
31 <xsl:apply-templates select="following-sibling::node()[1][name() != 'member']"/>
32 <xsl:apply-templates select="child::node()[2][name() = 'p']"/>
33 &#160;
34 </td>
35 <td>
36 <b><xsl:value-of select="@guard-member"/></b>
37 <xsl:text> </xsl:text><xsl:value-of select="@guard-cond"/>
38 &#160;
39 </td>
40 </tr>
41 </xsl:template>
42
43 <xsl:template match="type">
44 <h4>TYPE <xsl:value-of select="@name"/></h4>
45 BASE TYPE <xsl:value-of select="@type"/>, LENGTH <xsl:value-of select="@length"/>, MULTIPLIER <xsl:value-of select="@multiplier"/>
46 <br/>
47 </xsl:template>
48
49 <xsl:template match="struct">
50 <h4>STRUCTURE <xsl:value-of select="@name"/></h4>
51 <xsl:if test="@class">
52 CLASS: <xsl:value-of select="@class"/><br/>
53 </xsl:if>
54 <xsl:call-template name="mbody"/>
55 </xsl:template>
56
57 <xsl:template match="message">
58 <!-- formatting documentation without tags is just dumb,
59 but my toolset ("vi") is too limited ;) -->
60 <h4>
61 <xsl:if test="@dir='send'"><a name="{concat('S', @type)}"/>SEND</xsl:if>
62 <xsl:if test="@dir='recv'"><a name="{concat('R', @type)}"/>RECV</xsl:if>
63 MESSAGE <xsl:value-of select="@name"/>
64 </h4>
65 NUMERIC TYPE (hex): <xsl:value-of select="@type"/>
66 <xsl:if test="@dir='recv'">
67 <xsl:variable name="ref" select="@name"/>
68 <xsl:for-each select="//message[@dir='send' and descendant::ref[@reply=$ref]]">
69 (possibly in response to
70 <a href="{concat('#S', @type)}"><xsl:value-of select="concat(@name, '(', @type, ')')"/></a>
71 )
72 </xsl:for-each>
73 </xsl:if>
74 <xsl:call-template name="mbody"/>
75 </xsl:template>
76
77 <xsl:template match="ref">
78 <xsl:variable name="ref" select="concat(@ref, @reply)"/>
79 <xsl:for-each select="//message[@dir='recv' and @name=$ref]">
80 <a href="{concat('#R', @type)}"><xsl:value-of select="concat(@name, '(', @type, ')')"/></a>
81 </xsl:for-each>
82 </xsl:template>
83
84 <xsl:template match="@*|node()">
85 <xsl:copy>
86 <xsl:apply-templates select="@*|node()"/>
87 </xsl:copy>
88 </xsl:template>
89
90 </xsl:stylesheet>
91