root/tags/lgt2211/xml/lgtxhtml.xsl

Revision 1513, 6.1 KB (checked in by pmoura, 4 years ago)

Updated release number to 2.21.1.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1<?xml version="1.0" encoding="utf-8"?>
2<xsl:stylesheet
3    version="1.0"
4    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
5    xmlns="http://www.w3.org/1999/xhtml">
6
7
8<xsl:output
9    method="xml"
10    indent="yes"
11    encoding="utf-8"
12    doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
13    doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>
14
15
16<!--
17%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
18%
19%  Logtalk - Object oriented extension to Prolog
20%  Release 2.21.1
21%
22%  Copyright (c) 1998-2004 Paulo Moura.  All Rights Reserved.
23%
24%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
25-->
26
27
28<xsl:template match="/">
29    <xsl:processing-instruction name="xml-stylesheet">href="logtalk.css" type="text/css"</xsl:processing-instruction>
30
31    <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
32    <head>
33        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
34        <title><xsl:value-of select="logtalk/entity/name" /></title>
35        <link rel="stylesheet" href="logtalk.css" type="text/css" />
36    </head>
37    <body>
38        <hr />
39        <h4 class="type"><xsl:value-of select="logtalk/entity/type" /></h4>
40        <h1 class="code"><xsl:value-of select="logtalk/entity/name" /></h1>
41        <xsl:apply-templates select="logtalk/entity" />
42        <hr />
43        <xsl:apply-templates select="logtalk/relations" />
44        <hr />
45        <xsl:apply-templates select="logtalk/predicates" />
46        <hr />
47    </body>
48    </html>
49</xsl:template>
50
51
52<xsl:template match="logtalk/entity">
53    <xsl:if test="comment">
54        <blockquote><p class="blockquote"><xsl:value-of select="comment" /></p></blockquote>
55    </xsl:if>
56    <dl>
57    <xsl:if test="author">
58        <dt>author:</dt>
59            <dd><code><xsl:value-of select="author" /></code></dd>
60    </xsl:if>
61    <xsl:if test="version">
62        <dt>version:</dt>
63            <dd><code><xsl:value-of select="version" /></code></dd>
64    </xsl:if>
65    <xsl:if test="date">
66        <dt>date:</dt>
67            <dd><code><xsl:value-of select="date" /></code></dd>
68    </xsl:if>
69    </dl>
70    <dl>
71        <dt>compilation:</dt>
72            <dd><code><xsl:value-of select="compilation" /></code></dd>
73    </dl>
74    <xsl:if test="info">
75        <dl>
76        <xsl:for-each select="info">
77            <dt><xsl:value-of select="key" />:</dt>
78                <dd><code><xsl:value-of select="value" /></code></dd>
79        </xsl:for-each>
80        </dl>
81    </xsl:if>
82</xsl:template>
83
84
85<xsl:template match="logtalk/relations">
86    <xsl:choose>
87        <xsl:when test="*">
88            <xsl:if test="implements">
89            <dl>
90            <dt>implements:</dt>
91                <xsl:apply-templates select="implements" />
92            </dl>
93            </xsl:if>
94            <xsl:if test="imports">
95            <dl>
96            <dt>imports:</dt>
97                <xsl:apply-templates select="imports" />
98            </dl>
99            </xsl:if>
100            <xsl:if test="extends">
101            <dl>
102            <dt>extends:</dt>
103                <xsl:apply-templates select="extends" />
104            </dl>
105            </xsl:if>
106            <xsl:if test="instantiates">
107            <dl>
108            <dt>instantiates:</dt>
109                <xsl:apply-templates select="instantiates" />
110            </dl>
111            </xsl:if>
112            <xsl:if test="specializes">
113            <dl>
114            <dt>specializes:</dt>
115                <xsl:apply-templates select="specializes" />
116            </dl>
117            </xsl:if>
118            <xsl:if test="uses">
119            <dl>
120            <dt>uses:</dt>
121                <xsl:apply-templates select="uses" />
122            </dl>
123            </xsl:if>
124            <xsl:if test="calls">
125            <dl>
126            <dt>calls:</dt>
127                <xsl:apply-templates select="calls" />
128            </dl>
129            </xsl:if>
130        </xsl:when>
131        <xsl:otherwise> 
132            <h4 class="code">(no dependencies on other files)</h4>
133        </xsl:otherwise>
134    </xsl:choose>
135</xsl:template>
136
137
138<xsl:template match="logtalk/relations/uses">
139    <dd><code><a href="{file}.html"><xsl:value-of select="name" /></a></code></dd>
140</xsl:template>
141
142
143<xsl:template match="logtalk/relations/calls">
144    <dd><code><a href="{file}.html"><xsl:value-of select="name" /></a></code></dd>
145</xsl:template>
146
147
148<xsl:template match="logtalk/relations/*">
149    <dd><code><xsl:value-of select="scope" /><xsl:text> </xsl:text><a href="{file}.html"><xsl:value-of select="name" /></a></code></dd>
150</xsl:template>
151
152
153<xsl:template match="logtalk/predicates">
154    <h1>Public interface</h1>
155    <xsl:choose>
156        <xsl:when test="public/predicate">
157            <xsl:apply-templates select="public/predicate" />
158        </xsl:when>
159        <xsl:when test="/logtalk/relations/*">     
160            <h4 class="code">(see related entities)</h4>
161        </xsl:when>
162        <xsl:otherwise>
163            <h4 class="code">(none)</h4>
164        </xsl:otherwise>
165    </xsl:choose>
166    <h1>Protected interface</h1>
167    <xsl:choose>
168        <xsl:when test="protected/predicate">
169            <xsl:apply-templates select="protected/predicate" />
170        </xsl:when>
171        <xsl:when test="/logtalk/relations/*">     
172            <h4 class="code">(see related entities)</h4>
173        </xsl:when>
174        <xsl:otherwise>
175            <h4 class="code">(none)</h4>
176        </xsl:otherwise>
177    </xsl:choose>
178    <h1>Private predicates</h1>
179    <xsl:choose>
180        <xsl:when test="private/predicate">
181            <xsl:apply-templates select="private/predicate" />
182        </xsl:when>
183        <xsl:when test="/logtalk/relations/*">     
184            <h4 class="code">(see related entities)</h4>
185        </xsl:when>
186        <xsl:otherwise>
187            <h4 class="code">(none)</h4>
188        </xsl:otherwise>
189    </xsl:choose>
190</xsl:template>
191
192
193<xsl:template match="*/predicate">
194    <h4 class="code"><xsl:value-of select="name" /></h4>
195    <xsl:if test="comment">
196        <blockquote><p class="blockquote"><xsl:value-of select="comment" /></p></blockquote>
197    </xsl:if>
198    <dl class="predicate">
199        <dt>compilation:</dt>
200            <dd><code><xsl:value-of select="compilation" /></code></dd>
201        <xsl:if test="template">
202        <dt>template:</dt>
203            <dd><code><xsl:value-of select="template" /></code></dd>
204        </xsl:if>
205        <xsl:if test="meta">
206        <dt>metapredicate template:</dt>
207            <dd><code><xsl:value-of select="meta" /></code></dd>
208        </xsl:if>
209        <xsl:if test="mode">
210        <dt>mode - number of solutions:</dt>
211        <xsl:for-each select="mode">
212            <dd><code><xsl:value-of select="template" /><xsl:text> - </xsl:text><xsl:value-of select="solutions" /></code></dd>
213        </xsl:for-each>
214        </xsl:if>
215        <xsl:if test="exceptions">
216        <dt>exceptions:</dt>
217        <xsl:for-each select="exceptions/exception">
218            <dd><xsl:value-of select="condition" />: <code><xsl:value-of select="term" /></code></dd>
219        </xsl:for-each>
220        </xsl:if>
221    </dl>
222    <xsl:if test="info">
223        <dl class="predicate">
224            <xsl:for-each select="info">
225            <dt><xsl:value-of select="key" />:</dt>
226                <dd><code><xsl:value-of select="value" /></code></dd>
227            </xsl:for-each>
228        </dl>
229    </xsl:if>
230</xsl:template>
231
232
233</xsl:stylesheet>
Note: See TracBrowser for help on using the browser.