(DISTFILES): Comment out a few missing files.
[mono-project.git] / mcs / tools / corcompare / mono-api.xsl
blob3084ed00017de3fe3c616521855acb35702a4f55
1 <?xml version="1.0" ?>
2 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
4 <xsl:output method="html" indent="no"/>
5 <!-- <xsl:output method="xml"/>-->
6 <xsl:strip-space elements="*"/>
8 <xsl:template match="/">
9 <!--
10 <HTML>
11 <HEAD>
12 <TITLE>
13 Mono Class Library Status
14 </TITLE>
15 <SCRIPT src="cormissing.js"></SCRIPT>
16 <LINK rel="stylesheet" type="text/css" href="cormissing.css"></LINK>
17 </HEAD>
18 <BODY onLoad="onLoad();">
19 <P>
20 <H1>Mono Class Library Status</H1>
21 </P>
22 -->
23 <P>
24 <TABLE>
25 <TR>
26 <TD> <INPUT type="checkbox" ID="todo" onClick="selectTodo();" checked="1"/> </TD>
27 <TD> <IMG src="cm/st.gif"/> </TD>
28 <TD> TODO </TD>
29 <TD width="20"/>
30 <TD> <INPUT type="checkbox" ID="missing" onClick="selectMissing();" checked="1"/> </TD>
31 <TD> <IMG src="cm/sm.gif"/> </TD>
32 <TD> Missing </TD>
33 </TR>
34 <TR>
35 <TD> <INPUT type="checkbox" ID="extra" onClick="selectExtra();" checked="1"/> </TD>
36 <TD> <IMG src="cm/sx.gif"/> </TD>
37 <TD> Extra </TD>
38 <TD width="20"/>
39 <TD> <INPUT type="checkbox" ID="errors" onClick="selectErrors();" checked="1"/> </TD>
40 <TD> <IMG src="cm/se.gif"/> </TD>
41 <TD> Errors </TD>
42 </TR>
43 <TR>
44 <TD> </TD>
45 <TD> <IMG src="cm/sc.gif"/> </TD>
46 <TD> Completed </TD>
47 </TR>
48 </TABLE>
49 </P>
50 <DIV ID="ROOT">
51 <xsl:apply-templates/>
52 </DIV>
53 <P>
54 Legend :<BR/>
55 <TABLE>
56 <TR>
57 <TD> <IMG src="cm/y.gif"/> </TD>
58 <TD> Assembly </TD>
59 <TD width="20"/>
60 <TD> <IMG src="cm/n.gif"/> </TD>
61 <TD> Namespace </TD>
62 <TD width="20"/>
63 <TD> <IMG src="cm/c.gif"/> </TD>
64 <TD> Class </TD>
65 <TD width="20"/>
66 <TD> <IMG src="cm/s.gif"/> </TD>
67 <TD> Struct </TD>
68 <TR>
69 </TR>
70 <TD> <IMG src="cm/i.gif"/> </TD>
71 <TD> Interface </TD>
72 <TD width="20"/>
73 <TD> <IMG src="cm/d.gif"/> </TD>
74 <TD> Delegate </TD>
75 <TD width="20"/>
76 <TD> <IMG src="cm/en.gif"/> </TD>
77 <TD> Enum </TD>
78 <TD width="20"/>
79 <TD> <IMG src="cm/m.gif"/> </TD>
80 <TD> Method </TD>
81 </TR>
82 <TR>
83 <TD> <IMG src="cm/f.gif"/> </TD>
84 <TD> Field </TD>
85 <TD width="20"/>
86 <TD> <IMG src="cm/p.gif"/> </TD>
87 <TD> Property </TD>
88 <TD width="20"/>
89 <TD> <IMG src="cm/e.gif"/> </TD>
90 <TD> Event </TD>
91 <TD width="20"/>
92 <TD> <IMG src="cm/r.gif"/> </TD>
93 <TD> Attribute </TD>
94 </TR>
95 </TABLE>
97 </P>
98 <!--
99 </BODY>
100 </HTML>
102 </xsl:template>
106 <!-- assembly -->
107 <xsl:template match="/assemblies">
108 <xsl:apply-templates select="assembly">
109 <xsl:sort select="@name"/>
110 </xsl:apply-templates>
111 </xsl:template>
113 <xsl:template match="assemblies/assembly">
114 <DIV>
115 <xsl:call-template name="ELEMENT">
116 <xsl:with-param name="class">y</xsl:with-param>
117 </xsl:call-template>
118 <xsl:if test="not(@presence)">
119 <xsl:apply-templates/>
120 </xsl:if>
121 </DIV>
122 </xsl:template>
125 <!-- namespace -->
126 <xsl:template match="assembly/namespaces">
127 <xsl:apply-templates select="namespace">
128 <xsl:sort select="@name"/>
129 </xsl:apply-templates>
130 </xsl:template>
132 <xsl:template match="namespaces/namespace">
133 <DIV>
134 <xsl:call-template name="ELEMENT">
135 <xsl:with-param name="class">n</xsl:with-param>
136 </xsl:call-template>
137 <xsl:if test="not(@presence)">
138 <xsl:apply-templates/>
139 </xsl:if>
140 </DIV>
141 </xsl:template>
144 <xsl:template match="namespace/classes">
145 <xsl:apply-templates select="class[@type='interface']">
146 <xsl:sort select="@name"/>
147 </xsl:apply-templates>
148 <xsl:apply-templates select="class[@type='class']">
149 <xsl:sort select="@name"/>
150 </xsl:apply-templates>
151 <xsl:apply-templates select="class[@type='struct']">
152 <xsl:sort select="@name"/>
153 </xsl:apply-templates>
154 <xsl:apply-templates select="class[@type='delegate']">
155 <xsl:sort select="@name"/>
156 </xsl:apply-templates>
157 <xsl:apply-templates select="class[@type='enum']">
158 <xsl:sort select="@name"/>
159 </xsl:apply-templates>
160 </xsl:template>
163 <!-- class -->
164 <xsl:template match="classes/class[@type='class']">
165 <DIV>
166 <xsl:call-template name="ELEMENT">
167 <xsl:with-param name="class">c</xsl:with-param>
168 </xsl:call-template>
169 <xsl:if test="(@missing_total or @todo_total or @extra_total or @warning_total or @error) and not(@presence)">
170 <xsl:apply-templates select="attributes"/>
171 <xsl:apply-templates select="interfaces"/>
172 <xsl:apply-templates select="constructors"/>
173 <xsl:apply-templates select="./*[local-name() != 'attributes' and local-name() != 'constructors' and local-name() != 'interfaces']"/>
174 </xsl:if>
175 </DIV>
176 </xsl:template>
179 <!-- struct -->
180 <xsl:template match="classes/class[@type='struct'][@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
181 <DIV>
182 <xsl:call-template name="ELEMENT">
183 <xsl:with-param name="class">s</xsl:with-param>
184 </xsl:call-template>
185 <xsl:if test="not(@presence)">
186 <xsl:apply-templates/>
187 </xsl:if>
188 </DIV>
189 </xsl:template>
193 <!-- interface types -->
194 <xsl:template match="class[@type='interface']">
195 <xsl:apply-templates select="class[@type='interface']">
196 <xsl:sort select="@name"/>
197 </xsl:apply-templates>
198 </xsl:template>
200 <xsl:template match="class[@type='interface'][@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
201 <DIV>
202 <xsl:call-template name="ELEMENT">
203 <xsl:with-param name="class">i</xsl:with-param>
204 </xsl:call-template>
205 <xsl:if test="not(@presence)">
206 <xsl:apply-templates/>
207 </xsl:if>
208 </DIV>
209 </xsl:template>
211 <!-- interfaces implemented by Types -->
212 <xsl:template match="interface">
213 <xsl:apply-templates select="interface">
214 <xsl:sort select="@name"/>
215 </xsl:apply-templates>
216 </xsl:template>
218 <xsl:template match="interface[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
219 <DIV>
220 <xsl:call-template name="ELEMENT">
221 <xsl:with-param name="class">i</xsl:with-param>
222 </xsl:call-template>
223 <xsl:if test="not(@presence)">
224 <xsl:apply-templates/>
225 </xsl:if>
226 </DIV>
227 </xsl:template>
231 <!-- delegate -->
232 <xsl:template match="classes/class[@type='delegate'][@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
233 <DIV>
234 <xsl:call-template name="ELEMENT">
235 <xsl:with-param name="class">d</xsl:with-param>
236 </xsl:call-template>
237 <xsl:if test="not(@presence)">
238 <xsl:apply-templates/>
239 </xsl:if>
240 </DIV>
241 </xsl:template>
244 <!-- enumeration -->
245 <xsl:template match="classes/class[@type='enum'][@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
246 <DIV>
247 <xsl:call-template name="ELEMENT">
248 <xsl:with-param name="class">en</xsl:with-param>
249 </xsl:call-template>
250 <xsl:if test="not(@presence)">
251 <xsl:apply-templates/>
252 </xsl:if>
253 </DIV>
254 </xsl:template>
257 <!-- method -->
258 <xsl:template match="methods">
259 <xsl:apply-templates select="method">
260 <xsl:sort select="@name"/>
261 </xsl:apply-templates>
262 </xsl:template>
264 <xsl:template match="methods/method[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
265 <DIV>
266 <xsl:call-template name="ELEMENT">
267 <xsl:with-param name="class">m</xsl:with-param>
268 </xsl:call-template>
269 <xsl:if test="not(@presence)">
270 <xsl:apply-templates/>
271 </xsl:if>
272 </DIV>
273 </xsl:template>
276 <!-- property -->
277 <xsl:template match="properties">
278 <xsl:apply-templates select="property">
279 <xsl:sort select="@name"/>
280 </xsl:apply-templates>
281 </xsl:template>
283 <xsl:template match="properties/property[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
284 <DIV>
285 <xsl:call-template name="ELEMENT">
286 <xsl:with-param name="class">p</xsl:with-param>
287 </xsl:call-template>
288 <xsl:if test="not(@presence)">
289 <xsl:apply-templates/>
290 </xsl:if>
291 </DIV>
292 </xsl:template>
295 <!-- event -->
296 <xsl:template match="events">
297 <xsl:apply-templates select="event">
298 <xsl:sort select="@name"/>
299 </xsl:apply-templates>
300 </xsl:template>
302 <xsl:template match="events/event[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
303 <DIV>
304 <xsl:call-template name="ELEMENT">
305 <xsl:with-param name="class">e</xsl:with-param>
306 </xsl:call-template>
307 <xsl:if test="not(@presence)">
308 <xsl:apply-templates/>
309 </xsl:if>
310 </DIV>
311 </xsl:template>
314 <!-- constructor -->
315 <xsl:template match="constructors">
316 <xsl:apply-templates select="constructor">
317 <xsl:sort select="@name"/>
318 </xsl:apply-templates>
319 </xsl:template>
321 <xsl:template match="constructors/constructor[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
322 <DIV>
323 <xsl:call-template name="ELEMENT">
324 <xsl:with-param name="class">x</xsl:with-param>
325 <xsl:with-param name="image">m</xsl:with-param>
326 </xsl:call-template>
327 <xsl:if test="not(@presence)">
328 <xsl:apply-templates/>
329 </xsl:if>
330 </DIV>
331 </xsl:template>
334 <!-- field -->
335 <xsl:template match="fields">
336 <xsl:apply-templates select="field">
337 <xsl:sort select="@name"/>
338 </xsl:apply-templates>
339 </xsl:template>
341 <xsl:template match="fields/field[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
342 <DIV>
343 <xsl:call-template name="ELEMENT">
344 <xsl:with-param name="class">f</xsl:with-param>
345 </xsl:call-template>
346 <xsl:if test="not(@presence)">
347 <xsl:apply-templates/>
348 </xsl:if>
349 </DIV>
350 </xsl:template>
352 <!-- accessor -->
353 <xsl:template match="property/methods">
354 <xsl:apply-templates select="method">
355 <xsl:sort select="@name"/>
356 </xsl:apply-templates>
357 </xsl:template>
359 <xsl:template match="property[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]/methods/method[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
360 <DIV>
361 <xsl:call-template name="ELEMENT">
362 <xsl:with-param name="class">o</xsl:with-param>
363 <xsl:with-param name="image">m</xsl:with-param>
364 </xsl:call-template>
365 <xsl:if test="not(@presence)">
366 <xsl:apply-templates/>
367 </xsl:if>
368 </DIV>
369 </xsl:template>
372 <!-- attribute -->
373 <xsl:template match="attributes">
374 <xsl:apply-templates select="attribute">
375 <xsl:sort select="@name"/>
376 </xsl:apply-templates>
377 </xsl:template>
379 <xsl:template match="attributes/attribute[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
380 <DIV>
381 <xsl:call-template name="ELEMENT">
382 <xsl:with-param name="class">r</xsl:with-param>
383 </xsl:call-template>
384 <xsl:if test="not(@presence)">
385 <xsl:apply-templates/>
386 </xsl:if>
387 </DIV>
388 </xsl:template>
392 <!-- support templates -->
394 <xsl:template name="ELEMENT">
395 <xsl:param name="class"/>
396 <xsl:param name="image"/>
397 <xsl:attribute name="class">
398 <xsl:value-of select="$class"/>
399 <xsl:if test="./node() and local-name() != 'assembly'">_</xsl:if>
400 </xsl:attribute>
401 <xsl:call-template name="toggle"/>
402 <xsl:choose>
403 <xsl:when test="@error and @error != 'todo'">
404 <xsl:element name="img">
405 <xsl:attribute name="src">cm/se.gif</xsl:attribute>
406 <xsl:attribute name="class">t</xsl:attribute>
407 <xsl:attribute name="title"><xsl:apply-templates select="warnings/warning" mode="hover"/></xsl:attribute>
408 </xsl:element>
409 </xsl:when>
410 <xsl:when test="@error = 'todo'">
411 <xsl:element name="img">
412 <xsl:attribute name="src">cm/st.gif</xsl:attribute>
413 <xsl:attribute name="class">t</xsl:attribute>
414 <xsl:if test="@comment">
415 <xsl:attribute name="title"><xsl:value-of select="@comment"/></xsl:attribute>
416 </xsl:if>
417 <xsl:if test="not(@comment)">
418 <xsl:attribute name="title">No TODO description</xsl:attribute>
419 </xsl:if>
420 </xsl:element>
421 </xsl:when>
422 <xsl:when test="@presence = 'missing'">
423 <img src="cm/sm.gif" class="t"/>
424 </xsl:when>
425 <xsl:when test="@presence = 'extra'">
426 <img src="cm/sx.gif" class="t"/>
427 </xsl:when>
428 <xsl:otherwise>
429 <img src="cm/sc.gif" class="t"/>
430 </xsl:otherwise>
431 </xsl:choose>
432 <xsl:choose>
433 <xsl:when test="$image">
434 <img src="cm/{$image}.gif" class="t"/>
435 </xsl:when>
436 <xsl:otherwise>
437 <img src="cm/{$class}.gif" class="t"/>
438 </xsl:otherwise>
439 </xsl:choose>
440 <xsl:call-template name="name"/>
441 <xsl:if test="not(@presence)">
442 <xsl:call-template name="status"/>
443 </xsl:if>
444 </xsl:template>
446 <xsl:template name="status">
447 <xsl:if test="@complete_total and @complete_total != 0">
448 <SPAN class="st">
449 <img src="cm/sc.gif"/>
450 <xsl:text>: </xsl:text>
451 <xsl:value-of select="@complete_total"/>
452 <xsl:text>%</xsl:text>
453 </SPAN>
454 </xsl:if>
455 <xsl:if test="@todo_total">
456 <SPAN class="st">
457 <img src="cm/st.gif"/>: <xsl:value-of select="@todo_total"/>
458 </SPAN>
459 </xsl:if>
460 <xsl:if test="@missing_total">
461 <SPAN class="st">
462 <img src="cm/sm.gif"/>: <xsl:value-of select="@missing_total"/>
463 </SPAN>
464 </xsl:if>
465 <xsl:if test="@extra_total">
466 <SPAN class="st">
467 <img src="cm/sx.gif"/>: <xsl:value-of select="@extra_total"/>
468 </SPAN>
469 </xsl:if>
470 <xsl:if test="@warning_total">
471 <SPAN class="st">
472 <img src="cm/se.gif"/>: <xsl:value-of select="@warning_total"/>
473 </SPAN>
474 </xsl:if>
475 </xsl:template>
477 <xsl:template name="toggle">
478 <xsl:choose>
479 <xsl:when test="not(@presence) and .//*[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence] and local-name() != 'assembly'">
480 <IMG src="cm/tp.gif" class="t"/>
481 </xsl:when>
482 <xsl:when test="not(@presence) and .//*[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
483 <IMG src="cm/tm.gif" class="t"/>
484 </xsl:when>
485 <xsl:otherwise>
486 <IMG src="cm/tb.gif"/>
487 </xsl:otherwise>
488 </xsl:choose>
489 </xsl:template>
491 <xsl:template name="name">
492 <xsl:if test="@name">
493 <SPAN class="l"><xsl:value-of select="@name"/></SPAN>
494 </xsl:if>
495 </xsl:template>
497 <xsl:template match="warnings/warning" mode="hover">
498 <xsl:text>WARNING: </xsl:text>
499 <xsl:value-of select="@text"/>
500 </xsl:template>
502 </xsl:stylesheet>