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=
"/">
13 Mono Class Library Status
15 <SCRIPT src="cormissing.js"></SCRIPT>
16 <LINK rel="stylesheet" type="text/css" href="cormissing.css"></LINK>
18 <BODY onLoad="onLoad();">
20 <H1>Mono Class Library Status</H1>
26 <TD> <INPUT type=
"checkbox" ID=
"todo" onClick=
"selectTodo();" checked=
"1"/> </TD>
27 <TD> <IMG src=
"cm/st.gif"/> </TD>
30 <TD> <INPUT type=
"checkbox" ID=
"missing" onClick=
"selectMissing();" checked=
"1"/> </TD>
31 <TD> <IMG src=
"cm/sm.gif"/> </TD>
35 <TD> <INPUT type=
"checkbox" ID=
"extra" onClick=
"selectExtra();" checked=
"1"/> </TD>
36 <TD> <IMG src=
"cm/sx.gif"/> </TD>
39 <TD> <INPUT type=
"checkbox" ID=
"errors" onClick=
"selectErrors();" checked=
"1"/> </TD>
40 <TD> <IMG src=
"cm/se.gif"/> </TD>
45 <TD> <IMG src=
"cm/sc.gif"/> </TD>
51 <xsl:apply-templates/>
57 <TD> <IMG src=
"cm/y.gif"/> </TD>
60 <TD> <IMG src=
"cm/n.gif"/> </TD>
63 <TD> <IMG src=
"cm/c.gif"/> </TD>
66 <TD> <IMG src=
"cm/s.gif"/> </TD>
70 <TD> <IMG src=
"cm/i.gif"/> </TD>
73 <TD> <IMG src=
"cm/d.gif"/> </TD>
76 <TD> <IMG src=
"cm/en.gif"/> </TD>
79 <TD> <IMG src=
"cm/m.gif"/> </TD>
83 <TD> <IMG src=
"cm/f.gif"/> </TD>
86 <TD> <IMG src=
"cm/p.gif"/> </TD>
89 <TD> <IMG src=
"cm/e.gif"/> </TD>
92 <TD> <IMG src=
"cm/r.gif"/> </TD>
107 <xsl:template match=
"/assemblies">
108 <xsl:apply-templates select=
"assembly">
109 <xsl:sort select=
"@name"/>
110 </xsl:apply-templates>
113 <xsl:template match=
"assemblies/assembly">
115 <xsl:call-template name=
"ELEMENT">
116 <xsl:with-param name=
"class">y
</xsl:with-param>
118 <xsl:if test=
"not(@presence)">
119 <xsl:apply-templates/>
126 <xsl:template match=
"assembly/namespaces">
127 <xsl:apply-templates select=
"namespace">
128 <xsl:sort select=
"@name"/>
129 </xsl:apply-templates>
132 <xsl:template match=
"namespaces/namespace">
134 <xsl:call-template name=
"ELEMENT">
135 <xsl:with-param name=
"class">n
</xsl:with-param>
137 <xsl:if test=
"not(@presence)">
138 <xsl:apply-templates/>
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>
164 <xsl:template match=
"classes/class[@type='class']">
166 <xsl:call-template name=
"ELEMENT">
167 <xsl:with-param name=
"class">c
</xsl:with-param>
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']"/>
180 <xsl:template match=
"classes/class[@type='struct'][@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
182 <xsl:call-template name=
"ELEMENT">
183 <xsl:with-param name=
"class">s
</xsl:with-param>
185 <xsl:if test=
"not(@presence)">
186 <xsl:apply-templates/>
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>
200 <xsl:template match=
"class[@type='interface'][@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
202 <xsl:call-template name=
"ELEMENT">
203 <xsl:with-param name=
"class">i
</xsl:with-param>
205 <xsl:if test=
"not(@presence)">
206 <xsl:apply-templates/>
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>
218 <xsl:template match=
"interface[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
220 <xsl:call-template name=
"ELEMENT">
221 <xsl:with-param name=
"class">i
</xsl:with-param>
223 <xsl:if test=
"not(@presence)">
224 <xsl:apply-templates/>
232 <xsl:template match=
"classes/class[@type='delegate'][@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
234 <xsl:call-template name=
"ELEMENT">
235 <xsl:with-param name=
"class">d
</xsl:with-param>
237 <xsl:if test=
"not(@presence)">
238 <xsl:apply-templates/>
245 <xsl:template match=
"classes/class[@type='enum'][@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
247 <xsl:call-template name=
"ELEMENT">
248 <xsl:with-param name=
"class">en
</xsl:with-param>
250 <xsl:if test=
"not(@presence)">
251 <xsl:apply-templates/>
258 <xsl:template match=
"methods">
259 <xsl:apply-templates select=
"method">
260 <xsl:sort select=
"@name"/>
261 </xsl:apply-templates>
264 <xsl:template match=
"methods/method[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
266 <xsl:call-template name=
"ELEMENT">
267 <xsl:with-param name=
"class">m
</xsl:with-param>
269 <xsl:if test=
"not(@presence)">
270 <xsl:apply-templates/>
277 <xsl:template match=
"properties">
278 <xsl:apply-templates select=
"property">
279 <xsl:sort select=
"@name"/>
280 </xsl:apply-templates>
283 <xsl:template match=
"properties/property[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
285 <xsl:call-template name=
"ELEMENT">
286 <xsl:with-param name=
"class">p
</xsl:with-param>
288 <xsl:if test=
"not(@presence)">
289 <xsl:apply-templates/>
296 <xsl:template match=
"events">
297 <xsl:apply-templates select=
"event">
298 <xsl:sort select=
"@name"/>
299 </xsl:apply-templates>
302 <xsl:template match=
"events/event[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
304 <xsl:call-template name=
"ELEMENT">
305 <xsl:with-param name=
"class">e
</xsl:with-param>
307 <xsl:if test=
"not(@presence)">
308 <xsl:apply-templates/>
315 <xsl:template match=
"constructors">
316 <xsl:apply-templates select=
"constructor">
317 <xsl:sort select=
"@name"/>
318 </xsl:apply-templates>
321 <xsl:template match=
"constructors/constructor[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
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>
327 <xsl:if test=
"not(@presence)">
328 <xsl:apply-templates/>
335 <xsl:template match=
"fields">
336 <xsl:apply-templates select=
"field">
337 <xsl:sort select=
"@name"/>
338 </xsl:apply-templates>
341 <xsl:template match=
"fields/field[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
343 <xsl:call-template name=
"ELEMENT">
344 <xsl:with-param name=
"class">f
</xsl:with-param>
346 <xsl:if test=
"not(@presence)">
347 <xsl:apply-templates/>
353 <xsl:template match=
"property/methods">
354 <xsl:apply-templates select=
"method">
355 <xsl:sort select=
"@name"/>
356 </xsl:apply-templates>
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]">
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>
365 <xsl:if test=
"not(@presence)">
366 <xsl:apply-templates/>
373 <xsl:template match=
"attributes">
374 <xsl:apply-templates select=
"attribute">
375 <xsl:sort select=
"@name"/>
376 </xsl:apply-templates>
379 <xsl:template match=
"attributes/attribute[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
381 <xsl:call-template name=
"ELEMENT">
382 <xsl:with-param name=
"class">r
</xsl:with-param>
384 <xsl:if test=
"not(@presence)">
385 <xsl:apply-templates/>
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>
401 <xsl:call-template name=
"toggle"/>
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>
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>
417 <xsl:if test=
"not(@comment)">
418 <xsl:attribute name=
"title">No TODO description
</xsl:attribute>
422 <xsl:when test=
"@presence = 'missing'">
423 <img src=
"cm/sm.gif" class=
"t"/>
425 <xsl:when test=
"@presence = 'extra'">
426 <img src=
"cm/sx.gif" class=
"t"/>
429 <img src=
"cm/sc.gif" class=
"t"/>
433 <xsl:when test=
"$image">
434 <img src=
"cm/{$image}.gif" class=
"t"/>
437 <img src=
"cm/{$class}.gif" class=
"t"/>
440 <xsl:call-template name=
"name"/>
441 <xsl:if test=
"not(@presence)">
442 <xsl:call-template name=
"status"/>
446 <xsl:template name=
"status">
447 <xsl:if test=
"@complete_total and @complete_total != 0">
449 <img src=
"cm/sc.gif"/>
450 <xsl:text>:
</xsl:text>
451 <xsl:value-of select=
"@complete_total"/>
452 <xsl:text>%
</xsl:text>
455 <xsl:if test=
"@todo_total">
457 <img src=
"cm/st.gif"/>:
<xsl:value-of select=
"@todo_total"/>
460 <xsl:if test=
"@missing_total">
462 <img src=
"cm/sm.gif"/>:
<xsl:value-of select=
"@missing_total"/>
465 <xsl:if test=
"@extra_total">
467 <img src=
"cm/sx.gif"/>:
<xsl:value-of select=
"@extra_total"/>
470 <xsl:if test=
"@warning_total">
472 <img src=
"cm/se.gif"/>:
<xsl:value-of select=
"@warning_total"/>
477 <xsl:template name=
"toggle">
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"/>
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"/>
486 <IMG src=
"cm/tb.gif"/>
491 <xsl:template name=
"name">
492 <xsl:if test=
"@name">
493 <SPAN class=
"l"><xsl:value-of select=
"@name"/></SPAN>
497 <xsl:template match=
"warnings/warning" mode=
"hover">
498 <xsl:text>WARNING:
</xsl:text>
499 <xsl:value-of select=
"@text"/>