2 <xsl:stylesheet xmlns:
xsl=
"http://www.w3.org/1999/XSL/Transform" version=
"1.0">
4 <xsl:param name=
"source-name" select=
"(fillme)" />
5 <xsl:output method=
"html" indent=
"no"/>
6 <!-- <xsl:output method="xml"/>-->
7 <xsl:strip-space elements=
"*"/>
9 <xsl:template match=
"/">
10 <xsl:variable name=
"assembly-name" select=
"substring-before ($source-name, '.src')" />
14 Mono Class Library Status for
<xsl:value-of select=
"$assembly-name" />
16 <script src=
"cm/cormissing.js"></script>
17 <link rel=
"stylesheet" type=
"text/css" href=
"cm/cormissing.css"></link>
18 <style type=
"text/css"><![CDATA[
20 background-color: #CCFFCC;
31 <li><a href=
"System.Runtime.Serialization.html">Runtime.Serialization
</a></li>
32 <li><a href=
"System.IdentityModel.html">IdentityModel
</a></li>
33 <li><a href=
"System.IdentityModel.Selectors.html">IdentityModel.Selectors
</a></li>
34 <li><a href=
"System.ServiceModel.html">ServiceModel
</a></li>
39 <h1>Mono Class Library Status for
<xsl:value-of select=
"$assembly-name" /></h1>
44 <td> <input type=
"checkbox" ID=
"todo" onClick=
"selectTodo();" checked=
"1"/> </td>
45 <td> <img src=
"cm/st.gif"/> </td>
48 <td> <input type=
"checkbox" ID=
"missing" onClick=
"selectMissing();" checked=
"1"/> </td>
49 <td> <img src=
"cm/sm.gif"/> </td>
53 <td> <input type=
"checkbox" ID=
"extra" onClick=
"selectExtra();" checked=
"1"/> </td>
54 <td> <img src=
"cm/sx.gif"/> </td>
57 <td> <input type=
"checkbox" ID=
"errors" onClick=
"selectErrors();" checked=
"1"/> </td>
58 <td> <img src=
"cm/se.gif"/> </td>
63 <td> <img src=
"cm/sc.gif"/> </td>
70 <select id=
"FilteredAttributes">
71 <option>System.Runtime.InteropServices.ComVisibleAttribute
</option>
72 <option>System.Diagnostics.DebuggerDisplayAttribute
</option>
73 <option>System.Diagnostics.DebuggerTypeProxyAttribute
</option>
75 <input type=
"button" onclick=
"removeAndFilter()" value=
"Unfilter attribute" />
78 <input type=
"text" id=
"NewFilterTarget" length=
"60" />
79 <input type=
"button" onclick=
"addAndFilter()" value=
"Add to attribute filter" />
82 <input type=
"radio" id=
"TargetMonodoc" name=
"TargetDoc" value=
"0" />monodoc
83 <input type=
"radio" id=
"TargetMsdn1" name=
"TargetDoc" value=
"1" />msdn
84 <input type=
"radio" id=
"TargetMsdn2" name=
"TargetDoc" value=
"2" checked=
"checked" />msdn2
85 <input type=
"radio" id=
"TargetWinsdk" name=
"TargetDoc" value=
"3" checked=
"checked" />Windows SDK
89 <xsl:apply-templates/>
95 <td> <img src=
"cm/y.gif"/> </td>
98 <td> <img src=
"cm/n.gif"/> </td>
101 <td> <img src=
"cm/c.gif"/> </td>
104 <td> <img src=
"cm/s.gif"/> </td>
108 <td> <img src=
"cm/i.gif"/> </td>
111 <td> <img src=
"cm/d.gif"/> </td>
114 <td> <img src=
"cm/en.gif"/> </td>
117 <td> <img src=
"cm/m.gif"/> </td>
121 <td> <img src=
"cm/f.gif"/> </td>
124 <td> <img src=
"cm/p.gif"/> </td>
127 <td> <img src=
"cm/e.gif"/> </td>
130 <td> <img src=
"cm/r.gif"/> </td>
134 <td> <img src=
"cm/w.gif" /> </td>
135 <td colspan=
"10"> Generic Constraints
</td>
148 <xsl:template match=
"/assemblies">
149 <xsl:apply-templates select=
"assembly">
150 <xsl:sort select=
"@name"/>
151 </xsl:apply-templates>
154 <xsl:template match=
"assembly">
156 <xsl:call-template name=
"ELEMENT">
157 <xsl:with-param name=
"class">y
</xsl:with-param>
159 <xsl:if test=
"not(@presence)">
160 <xsl:apply-templates/>
167 <xsl:template match=
"namespaces">
168 <xsl:apply-templates select=
"namespace">
169 <xsl:sort select=
"@name"/>
170 </xsl:apply-templates>
173 <xsl:template match=
"namespace">
175 <xsl:call-template name=
"ELEMENT">
176 <xsl:with-param name=
"class">n
</xsl:with-param>
178 <xsl:if test=
"not(@presence)">
179 <xsl:apply-templates/>
185 <xsl:template match=
"namespace/classes">
186 <xsl:apply-templates select=
"class[@type='interface']">
187 <xsl:sort select=
"@name"/>
188 </xsl:apply-templates>
189 <xsl:apply-templates select=
"class[@type='class']">
190 <xsl:sort select=
"@name"/>
191 </xsl:apply-templates>
192 <xsl:apply-templates select=
"class[@type='struct']">
193 <xsl:sort select=
"@name"/>
194 </xsl:apply-templates>
195 <xsl:apply-templates select=
"class[@type='delegate']">
196 <xsl:sort select=
"@name"/>
197 </xsl:apply-templates>
198 <xsl:apply-templates select=
"class[@type='enum']">
199 <xsl:sort select=
"@name"/>
200 </xsl:apply-templates>
205 <xsl:template match=
"class[@type='class']">
207 <xsl:call-template name=
"ELEMENT">
208 <xsl:with-param name=
"class">c
</xsl:with-param>
210 <xsl:if test=
"(@missing_total or @todo_total or @extra_total or @warning_total or @error) and not(@presence)">
211 <xsl:apply-templates select=
"attributes"/>
212 <xsl:apply-templates select=
"interfaces"/>
213 <xsl:apply-templates select=
"constructors"/>
214 <xsl:apply-templates select=
"./*[local-name() != 'attributes' and local-name() != 'constructors' and local-name() != 'interfaces']"/>
221 <xsl:template match=
"class[@type='struct'][@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
223 <xsl:call-template name=
"ELEMENT">
224 <xsl:with-param name=
"class">s
</xsl:with-param>
226 <xsl:if test=
"not(@presence)">
227 <xsl:apply-templates/>
234 <!-- interface types -->
235 <xsl:template match=
"class[@type='interface']">
236 <xsl:apply-templates select=
"class[@type='interface']">
237 <xsl:sort select=
"@name"/>
238 </xsl:apply-templates>
241 <xsl:template match=
"class[@type='interface'][@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
243 <xsl:call-template name=
"ELEMENT">
244 <xsl:with-param name=
"class">i
</xsl:with-param>
246 <xsl:if test=
"not(@presence)">
247 <xsl:apply-templates/>
252 <!-- interfaces implemented by Types -->
253 <xsl:template match=
"interface">
254 <xsl:apply-templates select=
"interface">
255 <xsl:sort select=
"@name"/>
256 </xsl:apply-templates>
259 <xsl:template match=
"interface[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
261 <xsl:call-template name=
"ELEMENT">
262 <xsl:with-param name=
"class">i
</xsl:with-param>
264 <xsl:if test=
"not(@presence)">
265 <xsl:apply-templates/>
271 <!-- generic constraints -->
272 <xsl:template match=
"generic-type-constraints">
273 <xsl:apply-templates select=
"generic-type-constraint">
274 <xsl:sort select=
"@name"/>
275 </xsl:apply-templates>
278 <xsl:template match=
"generic-type-constraint[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
280 <xsl:call-template name=
"ELEMENT">
281 <xsl:with-param name=
"class">w
</xsl:with-param>
283 <xsl:if test=
"not(@presence)">
284 <xsl:apply-templates/>
292 <xsl:template match=
"class[@type='delegate'][@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
294 <xsl:call-template name=
"ELEMENT">
295 <xsl:with-param name=
"class">d
</xsl:with-param>
297 <xsl:if test=
"not(@presence)">
298 <xsl:apply-templates/>
305 <xsl:template match=
"class[@type='enum'][@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
307 <xsl:call-template name=
"ELEMENT">
308 <xsl:with-param name=
"class">en
</xsl:with-param>
310 <xsl:if test=
"not(@presence)">
311 <xsl:apply-templates/>
318 <xsl:template match=
"methods">
319 <xsl:apply-templates select=
"method">
320 <xsl:sort select=
"@name"/>
321 </xsl:apply-templates>
324 <xsl:template match=
"method[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
326 <xsl:call-template name=
"ELEMENT">
327 <xsl:with-param name=
"class">m
</xsl:with-param>
329 <xsl:if test=
"not(@presence)">
330 <xsl:apply-templates/>
337 <xsl:template match=
"properties">
338 <xsl:apply-templates select=
"property">
339 <xsl:sort select=
"@name"/>
340 </xsl:apply-templates>
343 <xsl:template match=
"property[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
345 <xsl:call-template name=
"ELEMENT">
346 <xsl:with-param name=
"class">p
</xsl:with-param>
348 <xsl:if test=
"not(@presence)">
349 <xsl:apply-templates/>
356 <xsl:template match=
"events">
357 <xsl:apply-templates select=
"event">
358 <xsl:sort select=
"@name"/>
359 </xsl:apply-templates>
362 <xsl:template match=
"event[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
364 <xsl:call-template name=
"ELEMENT">
365 <xsl:with-param name=
"class">e
</xsl:with-param>
367 <xsl:if test=
"not(@presence)">
368 <xsl:apply-templates/>
375 <xsl:template match=
"constructors">
376 <xsl:apply-templates select=
"constructor">
377 <xsl:sort select=
"@name"/>
378 </xsl:apply-templates>
381 <xsl:template match=
"constructor[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
383 <xsl:call-template name=
"ELEMENT">
384 <xsl:with-param name=
"class">x
</xsl:with-param>
385 <xsl:with-param name=
"image">m
</xsl:with-param>
387 <xsl:if test=
"not(@presence)">
388 <xsl:apply-templates/>
395 <xsl:template match=
"fields">
396 <xsl:apply-templates select=
"field">
397 <xsl:sort select=
"@name"/>
398 </xsl:apply-templates>
401 <xsl:template match=
"field[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
403 <xsl:call-template name=
"ELEMENT">
404 <xsl:with-param name=
"class">f
</xsl:with-param>
406 <xsl:if test=
"not(@presence)">
407 <xsl:apply-templates/>
413 <xsl:template match=
"property/methods">
414 <xsl:apply-templates select=
"method">
415 <xsl:sort select=
"@name"/>
416 </xsl:apply-templates>
419 <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]">
421 <xsl:call-template name=
"ELEMENT">
422 <xsl:with-param name=
"class">o
</xsl:with-param>
423 <xsl:with-param name=
"image">m
</xsl:with-param>
425 <xsl:if test=
"not(@presence)">
426 <xsl:apply-templates/>
433 <xsl:template match=
"attributes">
434 <xsl:apply-templates select=
"attribute">
435 <xsl:sort select=
"@name"/>
436 </xsl:apply-templates>
439 <xsl:template match=
"attribute[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
441 <xsl:call-template name=
"ELEMENT">
442 <xsl:with-param name=
"class">r
</xsl:with-param>
444 <xsl:if test=
"not(@presence)">
445 <xsl:apply-templates/>
452 <!-- support templates -->
454 <xsl:template name=
"ELEMENT">
455 <xsl:param name=
"class"/>
456 <xsl:param name=
"image"/>
457 <xsl:attribute name=
"class">
458 <xsl:value-of select=
"$class"/>
459 <xsl:if test=
"./node() and local-name() != 'assembly'">_
</xsl:if>
461 <xsl:call-template name=
"toggle"/>
463 <xsl:when test=
"@error and @error != 'todo'">
464 <xsl:element name=
"img">
465 <xsl:attribute name=
"src">cm/se.gif
</xsl:attribute>
466 <xsl:attribute name=
"class">t
</xsl:attribute>
467 <xsl:attribute name=
"title"><xsl:call-template name=
"warning-hover" /></xsl:attribute>
470 <xsl:when test=
"@error = 'todo'">
471 <xsl:element name=
"img">
472 <xsl:attribute name=
"src">cm/st.gif
</xsl:attribute>
473 <xsl:attribute name=
"class">t
</xsl:attribute>
474 <xsl:if test=
"@comment">
475 <xsl:attribute name=
"title"><xsl:value-of select=
"@comment"/></xsl:attribute>
477 <xsl:if test=
"not(@comment)">
478 <xsl:attribute name=
"title">No TODO description
</xsl:attribute>
482 <xsl:when test=
"@presence = 'missing'">
483 <img src=
"cm/sm.gif" class=
"t"/>
485 <xsl:when test=
"@presence = 'extra'">
486 <img src=
"cm/sx.gif" class=
"t"/>
489 <img src=
"cm/sc.gif" class=
"t"/>
493 <xsl:when test=
"$image">
494 <img src=
"cm/{$image}.gif" class=
"t"/>
497 <img src=
"cm/{$class}.gif" class=
"t"/>
500 <xsl:call-template name=
"name"/>
501 <xsl:if test=
"not(@presence)">
502 <xsl:call-template name=
"status"/>
506 <xsl:template name=
"status">
507 <xsl:if test=
"@complete_total and @complete_total != 0">
509 <img src=
"cm/sc.gif"/>
510 <xsl:text>:
</xsl:text>
511 <xsl:value-of select=
"@complete_total"/>
512 <xsl:text>%
</xsl:text>
515 <xsl:if test=
"@todo_total">
517 <img src=
"cm/st.gif"/>:
<xsl:value-of select=
"@todo_total"/>
520 <xsl:if test=
"@missing_total">
522 <img src=
"cm/sm.gif"/>:
<xsl:value-of select=
"@missing_total"/>
525 <xsl:if test=
"@extra_total">
527 <img src=
"cm/sx.gif"/>:
<xsl:value-of select=
"@extra_total"/>
530 <xsl:if test=
"@warning_total">
532 <img src=
"cm/se.gif"/>:
<xsl:value-of select=
"@warning_total"/>
537 <xsl:template name=
"toggle">
539 <xsl:when test=
"not(@presence) and .//*[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
541 <xsl:when test=
"local-name() != 'assembly'">
542 <img src=
"cm/tp.gif" class=
"t"/>
545 <img src=
"cm/tm.gif" class=
"t"/>
550 <img src=
"cm/tb.gif"/>
555 <xsl:template name=
"name">
556 <xsl:if test=
"@name">
557 <SPAN class=
"l"><xsl:value-of select=
"@name"/></SPAN>
561 <xsl:template name=
"warning-hover">
562 <xsl:for-each select=
"warnings/warning">
563 <xsl:text>WARNING:
</xsl:text>
564 <xsl:value-of select=
"@text"/>