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/>
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/>
213 <xsl:template match="classes/class[@type='delegate'][@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
215 <xsl:call-template name="ELEMENT">
216 <xsl:with-param name="class">d</xsl:with-param>
218 <xsl:if test="not(@presence)">
219 <xsl:apply-templates/>
226 <xsl:template match="classes/class[@type='enum'][@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
228 <xsl:call-template name="ELEMENT">
229 <xsl:with-param name="class">en</xsl:with-param>
231 <xsl:if test="not(@presence)">
232 <xsl:apply-templates/>
239 <xsl:template match="methods">
240 <xsl:apply-templates select="method">
241 <xsl:sort select="@name"/>
242 </xsl:apply-templates>
245 <xsl:template match="methods/method[@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">m</xsl:with-param>
250 <xsl:if test="not(@presence)">
251 <xsl:apply-templates/>
258 <xsl:template match="properties">
259 <xsl:apply-templates select="property">
260 <xsl:sort select="@name"/>
261 </xsl:apply-templates>
264 <xsl:template match="properties/property[@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">p</xsl:with-param>
269 <xsl:if test="not(@presence)">
270 <xsl:apply-templates/>
277 <xsl:template match="events">
278 <xsl:apply-templates select="event">
279 <xsl:sort select="@name"/>
280 </xsl:apply-templates>
283 <xsl:template match="events/event[@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">e</xsl:with-param>
288 <xsl:if test="not(@presence)">
289 <xsl:apply-templates/>
296 <xsl:template match="constructors">
297 <xsl:apply-templates select="constructor">
298 <xsl:sort select="@name"/>
299 </xsl:apply-templates>
302 <xsl:template match="constructors/constructor[@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">x</xsl:with-param>
306 <xsl:with-param name="image">m</xsl:with-param>
308 <xsl:if test="not(@presence)">
309 <xsl:apply-templates/>
316 <xsl:template match="fields">
317 <xsl:apply-templates select="field">
318 <xsl:sort select="@name"/>
319 </xsl:apply-templates>
322 <xsl:template match="fields/field[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
324 <xsl:call-template name="ELEMENT">
325 <xsl:with-param name="class">f</xsl:with-param>
327 <xsl:if test="not(@presence)">
328 <xsl:apply-templates/>
334 <xsl:template match="property/methods">
335 <xsl:apply-templates select="method">
336 <xsl:sort select="@name"/>
337 </xsl:apply-templates>
340 <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]">
342 <xsl:call-template name="ELEMENT">
343 <xsl:with-param name="class">o</xsl:with-param>
344 <xsl:with-param name="image">m</xsl:with-param>
346 <xsl:if test="not(@presence)">
347 <xsl:apply-templates/>
354 <xsl:template match="attributes">
355 <xsl:apply-templates select="attribute">
356 <xsl:sort select="@name"/>
357 </xsl:apply-templates>
360 <xsl:template match="attributes/attribute[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
362 <xsl:call-template name="ELEMENT">
363 <xsl:with-param name="class">r</xsl:with-param>
365 <xsl:if test="not(@presence)">
366 <xsl:apply-templates/>
373 <!-- support templates -->
375 <xsl:template name="ELEMENT">
376 <xsl:param name="class"/>
377 <xsl:param name="image"/>
378 <xsl:attribute name="class">
379 <xsl:value-of select="$class"/>
380 <xsl:if test="./node() and local-name() != 'assembly'">_</xsl:if>
382 <xsl:call-template name="toggle"/>
384 <xsl:when test="@error and @error != 'todo'">
385 <xsl:element name="img">
386 <xsl:attribute name="src">cm/se.gif</xsl:attribute>
387 <xsl:attribute name="class">t</xsl:attribute>
388 <xsl:attribute name="title"><xsl:apply-templates select="warnings/warning" mode="hover"/></xsl:attribute>
391 <xsl:when test="@error = 'todo'">
392 <img src="cm/st.gif" class="t"/>
394 <xsl:when test="@presence = 'missing'">
395 <img src="cm/sm.gif" class="t"/>
397 <xsl:when test="@presence = 'extra'">
398 <img src="cm/sx.gif" class="t"/>
401 <img src="cm/sc.gif" class="t"/>
405 <xsl:when test="$image">
406 <img src="cm/{$image}.gif" class="t"/>
409 <img src="cm/{$class}.gif" class="t"/>
412 <xsl:call-template name="name"/>
413 <xsl:if test="not(@presence)">
414 <xsl:call-template name="status"/>
418 <xsl:template name="status">
419 <xsl:if test="@complete_total and @complete_total != 0">
421 <img src="cm/sc.gif"/>
422 <xsl:text>: </xsl:text>
423 <xsl:value-of select="@complete_total"/>
424 <xsl:text>%</xsl:text>
427 <xsl:if test="@todo_total">
429 <img src="cm/st.gif"/>: <xsl:value-of select="@todo_total"/>
432 <xsl:if test="@missing_total">
434 <img src="cm/sm.gif"/>: <xsl:value-of select="@missing_total"/>
437 <xsl:if test="@extra_total">
439 <img src="cm/sx.gif"/>: <xsl:value-of select="@extra_total"/>
442 <xsl:if test="@warning_total">
444 <img src="cm/se.gif"/>: <xsl:value-of select="@warning_total"/>
449 <xsl:template name="toggle">
451 <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'">
452 <IMG src="cm/tp.gif" class="t"/>
454 <xsl:when test="not(@presence) and .//*[@missing_total or @todo_total or @extra_total or @warning_total or @error or @presence]">
455 <IMG src="cm/tm.gif" class="t"/>
458 <IMG src="cm/tb.gif"/>
463 <xsl:template name="name">
464 <xsl:if test="@name">
465 <SPAN class="l"><xsl:value-of select="@name"/></SPAN>
469 <xsl:template match="warnings/warning" mode="hover">
470 <xsl:text>WARNING: </xsl:text>
471 <xsl:value-of select="@text"/>