root/tags/lgt2210/xml/lgtxml.xsl

Revision 1460, 5.9 KB (checked in by pmoura, 4 years ago)

Updated release number to 2.21.0.

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