Annotation of embedaddon/libxml2/doc/newapi.xsl, revision 1.1.1.1
1.1 misho 1: <?xml version="1.0"?>
2: <!--
3: Stylesheet to generate the HTML documentation from an XML API descriptions:
4: xsltproc newapi.xsl libxml2-api.xml
5:
6: Daniel Veillard
7: -->
8: <xsl:stylesheet version="1.0"
9: xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
10: xmlns:exsl="http://exslt.org/common"
11: xmlns:str="http://exslt.org/strings"
12: extension-element-prefixes="exsl str"
13: exclude-result-prefixes="exsl str">
14:
15: <!-- Import the main part of the site stylesheets -->
16: <xsl:import href="site.xsl"/>
17:
18: <!-- Generate XHTML-1.0 transitional -->
19: <xsl:output method="xml" encoding="UTF-8" indent="yes"
20: doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
21: doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
22:
23: <!-- Build keys for all symbols -->
24: <xsl:key name="symbols" match="/api/symbols/*" use="@name"/>
25:
26: <!-- the target directory for the HTML output -->
27: <xsl:variable name="htmldir">html</xsl:variable>
28: <xsl:variable name="href_base">../</xsl:variable>
29:
30: <!-- The table of content for the HTML API pages -->
31: <xsl:variable name="menu_name">API Menu</xsl:variable>
32: <xsl:variable name="apitoc">
33: <form action="../search.php"
34: enctype="application/x-www-form-urlencoded" method="get">
35: <input name="query" type="text" size="20" value=""/>
36: <input name="submit" type="submit" value="Search ..."/>
37: </form>
38: <ul><!-- style="margin-left: -1em" -->
39: <li><a style="font-weight:bold"
40: href="{$href_base}index.html">Main Menu</a></li>
41: <li><a style="font-weight:bold"
42: href="{$href_base}docs.html">Developer Menu</a></li>
43: <li><a style="font-weight:bold"
44: href="{$href_base}examples/index.html">Code Examples</a></li>
45: <li><a style="font-weight:bold"
46: href="index.html">API Menu</a></li>
47: <li><a href="libxml-parser.html">Parser API</a></li>
48: <li><a href="libxml-tree.html">Tree API</a></li>
49: <li><a href="libxml-xmlreader.html">Reader API</a></li>
50: <li><a href="{$href_base}guidelines.html">XML Guidelines</a></li>
51: <li><a href="{$href_base}ChangeLog.html">ChangeLog</a></li>
52: </ul>
53: </xsl:variable>
54: <xsl:template name="apitoc">
55: <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000">
56: <tr>
57: <td>
58: <table width="100%" border="0" cellspacing="1" cellpadding="3">
59: <tr>
60: <td colspan="1" bgcolor="#eecfa1" align="center">
61: <center>
62: <b><xsl:value-of select="$menu_name"/></b>
63: </center>
64: </td>
65: </tr>
66: <tr>
67: <td bgcolor="#fffacd">
68: <xsl:copy-of select="$apitoc"/>
69: </td>
70: </tr>
71: </table>
72: <table width="100%" border="0" cellspacing="1" cellpadding="3">
73: <tr>
74: <td colspan="1" bgcolor="#eecfa1" align="center">
75: <center>
76: <b>API Indexes</b>
77: </center>
78: </td>
79: </tr>
80: <tr>
81: <td bgcolor="#fffacd">
82: <xsl:copy-of select="$api"/>
83: </td>
84: </tr>
85: </table>
86: <table width="100%" border="0" cellspacing="1" cellpadding="3">
87: <tr>
88: <td colspan="1" bgcolor="#eecfa1" align="center">
89: <center>
90: <b>Related links</b>
91: </center>
92: </td>
93: </tr>
94: <tr>
95: <td bgcolor="#fffacd">
96: <xsl:copy-of select="$related"/>
97: </td>
98: </tr>
99: </table>
100: </td>
101: </tr>
102: </table>
103: </xsl:template>
104:
105: <xsl:template name="docstyle">
106: <style type="text/css">
107: div.deprecated pre.programlisting {border-style: double;border-color:red}
108: pre.programlisting {border-style: double;background: #EECFA1}
109: </style>
110: </xsl:template>
111: <xsl:template name="navbar">
112: <xsl:variable name="previous" select="preceding-sibling::file[1]"/>
113: <xsl:variable name="next" select="following-sibling::file[1]"/>
114: <table class="navigation" width="100%" summary="Navigation header"
115: cellpadding="2" cellspacing="2">
116: <tr valign="middle">
117: <xsl:if test="$previous">
118: <td><a accesskey="p" href="libxml-{$previous/@name}.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></img></a></td>
119: <th align="left"><a href="libxml-{$previous/@name}.html"><xsl:value-of select="$previous/@name"/></a></th>
120: </xsl:if>
121: <td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></img></a></td>
122: <th align="left"><a href="index.html">API documentation</a></th>
123: <td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></img></a></td>
124: <th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th>
125: <xsl:if test="$next">
126: <th align="right"><a href="libxml-{$next/@name}.html"><xsl:value-of select="$next/@name"/></a></th>
127: <td><a accesskey="n" href="libxml-{$next/@name}.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></img></a></td>
128: </xsl:if>
129: </tr>
130: </table>
131: </xsl:template>
132:
133: <!-- This is convoluted but needed to force the current document to
134: be the API one and not the result tree from the tokenize() result,
135: because the keys are only defined on the main document -->
136: <xsl:template mode="dumptoken" match='*'>
137: <xsl:param name="token"/>
138: <xsl:variable name="ref" select="key('symbols', $token)"/>
139: <xsl:choose>
140: <xsl:when test="$ref">
141: <a href="libxml-{$ref/@file}.html#{$ref/@name}"><xsl:value-of select="$token"/></a>
142: </xsl:when>
143: <xsl:otherwise>
144: <xsl:value-of select="$token"/>
145: </xsl:otherwise>
146: </xsl:choose>
147: </xsl:template>
148:
149: <!-- dumps a string, making cross-reference links -->
150: <xsl:template name="dumptext">
151: <xsl:param name="text"/>
152: <xsl:variable name="ctxt" select='.'/>
153: <!-- <xsl:value-of select="$text"/> -->
154: <xsl:for-each select="str:tokenize($text, ' 	')">
155: <xsl:apply-templates select="$ctxt" mode='dumptoken'>
156: <xsl:with-param name="token" select="string(.)"/>
157: </xsl:apply-templates>
158: <xsl:if test="position() != last()">
159: <xsl:text> </xsl:text>
160: </xsl:if>
161: </xsl:for-each>
162: </xsl:template>
163:
164: <xsl:template match="macro" mode="toc">
165: <pre class="programlisting">
166: <xsl:text>#define </xsl:text><a href="#{@name}"><xsl:value-of select="@name"/></a>
167: </pre>
168: </xsl:template>
169:
170: <xsl:template match="variable" mode="toc">
171: <pre class="programlisting">
172: <xsl:text>Variable </xsl:text>
173: <xsl:call-template name="dumptext">
174: <xsl:with-param name="text" select="string(@type)"/>
175: </xsl:call-template>
176: <xsl:text> </xsl:text>
177: <a name="{@name}"></a>
178: <xsl:value-of select="@name"/>
179: <xsl:text>
180:
181: </xsl:text>
182: </pre>
183: </xsl:template>
184:
185: <xsl:template match="typedef" mode="toc">
186: <xsl:variable name="name" select="string(@name)"/>
187: <pre class="programlisting">
188: <xsl:choose>
189: <xsl:when test="@type = 'enum'">
190: <xsl:text>Enum </xsl:text>
191: <a href="#{$name}"><xsl:value-of select="$name"/></a>
192: <xsl:text>
193: </xsl:text>
194: </xsl:when>
195: <xsl:otherwise>
196: <xsl:text>Typedef </xsl:text>
197: <xsl:call-template name="dumptext">
198: <xsl:with-param name="text" select="@type"/>
199: </xsl:call-template>
200: <xsl:text> </xsl:text>
201: <a name="{$name}"><xsl:value-of select="$name"/></a>
202: <xsl:text>
203: </xsl:text>
204: </xsl:otherwise>
205: </xsl:choose>
206: </pre>
207: </xsl:template>
208:
209: <xsl:template match="typedef[@type = 'enum']">
210: <xsl:variable name="name" select="string(@name)"/>
211: <h3>Enum <a name="{$name}"><xsl:value-of select="$name"/></a></h3>
212: <pre class="programlisting">
213: <xsl:text>Enum </xsl:text>
214: <xsl:value-of select="$name"/>
215: <xsl:text> {
216: </xsl:text>
217: <xsl:for-each select="/api/symbols/enum[@type = $name]">
218: <xsl:sort select="@value" data-type="number" order="ascending"/>
219: <xsl:text> </xsl:text>
220: <a name="{@name}"><xsl:value-of select="@name"/></a>
221: <xsl:text> = </xsl:text>
222: <xsl:value-of select="@value"/>
223: <xsl:if test="@info != ''">
224: <xsl:text> : </xsl:text>
225: <xsl:call-template name="dumptext">
226: <xsl:with-param name="text" select="@info"/>
227: </xsl:call-template>
228: </xsl:if>
229: <xsl:text>
230: </xsl:text>
231: </xsl:for-each>
232: <xsl:text>}
233: </xsl:text>
234: </pre>
235: </xsl:template>
236:
237: <xsl:template match="struct" mode="toc">
238: <pre class="programlisting">
239: <xsl:text>Structure </xsl:text><a href="#{@name}"><xsl:value-of select="@name"/></a><br/>
240: <xsl:value-of select="@type"/><xsl:text>
241: </xsl:text>
242: <xsl:if test="not(field)">
243: <xsl:text>The content of this structure is not made public by the API.
244: </xsl:text>
245: </xsl:if>
246: </pre>
247: </xsl:template>
248:
249: <xsl:template match="struct">
250: <h3><a name="{@name}">Structure <xsl:value-of select="@name"/></a></h3>
251: <pre class="programlisting">
252: <xsl:text>Structure </xsl:text><xsl:value-of select="@name"/><br/>
253: <xsl:value-of select="@type"/><xsl:text> {
254: </xsl:text>
255: <xsl:if test="not(field)">
256: <xsl:text>The content of this structure is not made public by the API.
257: </xsl:text>
258: </xsl:if>
259: <xsl:for-each select="field">
260: <xsl:text> </xsl:text>
261: <xsl:call-template name="dumptext">
262: <xsl:with-param name="text" select="@type"/>
263: </xsl:call-template>
264: <xsl:text>	</xsl:text>
265: <xsl:value-of select="@name"/>
266: <xsl:if test="@info != ''">
267: <xsl:text>	: </xsl:text>
268: <xsl:call-template name="dumptext">
269: <xsl:with-param name="text" select="substring(@info, 1, 40)"/>
270: </xsl:call-template>
271: </xsl:if>
272: <xsl:text>
273: </xsl:text>
274: </xsl:for-each>
275: <xsl:text>}</xsl:text>
276: </pre>
277: </xsl:template>
278:
279: <xsl:template match="macro">
280: <xsl:variable name="name" select="string(@name)"/>
281: <h3><a name="{$name}"></a>Macro: <xsl:value-of select="$name"/></h3>
282: <pre><xsl:text>#define </xsl:text><xsl:value-of select="$name"/></pre>
283: <p>
284: <xsl:call-template name="dumptext">
285: <xsl:with-param name="text" select="info"/>
286: </xsl:call-template>
287: </p><xsl:text>
288: </xsl:text>
289: </xsl:template>
290:
291: <xsl:template match="function" mode="toc">
292: <xsl:variable name="name" select="string(@name)"/>
293: <xsl:variable name="nlen" select="string-length($name)"/>
294: <xsl:variable name="tlen" select="string-length(return/@type)"/>
295: <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
296: <pre class="programlisting">
297: <xsl:call-template name="dumptext">
298: <xsl:with-param name="text" select="return/@type"/>
299: </xsl:call-template>
300: <xsl:text>	</xsl:text>
301: <a href="#{@name}"><xsl:value-of select="@name"/></a>
302: <xsl:if test="$blen - 40 < -8">
303: <xsl:text>	</xsl:text>
304: </xsl:if>
305: <xsl:if test="$blen - 40 < 0">
306: <xsl:text>	</xsl:text>
307: </xsl:if>
308: <xsl:text>	(</xsl:text>
309: <xsl:if test="not(arg)">
310: <xsl:text>void</xsl:text>
311: </xsl:if>
312: <xsl:for-each select="arg">
313: <xsl:call-template name="dumptext">
314: <xsl:with-param name="text" select="@type"/>
315: </xsl:call-template>
316: <xsl:text> </xsl:text>
317: <xsl:value-of select="@name"/>
318: <xsl:if test="position() != last()">
319: <xsl:text>, </xsl:text><br/>
320: <xsl:if test="$blen - 40 > 8">
321: <xsl:text>	</xsl:text>
322: </xsl:if>
323: <xsl:if test="$blen - 40 > 0">
324: <xsl:text>	</xsl:text>
325: </xsl:if>
326: <xsl:text>					 </xsl:text>
327: </xsl:if>
328: </xsl:for-each>
329: <xsl:text>)</xsl:text>
330: </pre><xsl:text>
331: </xsl:text>
332: </xsl:template>
333:
334: <xsl:template match="functype" mode="toc">
335: <xsl:variable name="name" select="string(@name)"/>
336: <xsl:variable name="nlen" select="string-length($name)"/>
337: <xsl:variable name="tlen" select="string-length(return/@type)"/>
338: <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
339: <pre class="programlisting">
340: <xsl:text>Function type: </xsl:text>
341: <a href="#{$name}"><xsl:value-of select="$name"/></a>
342: <xsl:text>
343: </xsl:text>
344: <xsl:call-template name="dumptext">
345: <xsl:with-param name="text" select="return/@type"/>
346: </xsl:call-template>
347: <xsl:text>	</xsl:text>
348: <a href="#{$name}"><xsl:value-of select="$name"/></a>
349: <xsl:if test="$blen - 40 < -8">
350: <xsl:text>	</xsl:text>
351: </xsl:if>
352: <xsl:if test="$blen - 40 < 0">
353: <xsl:text>	</xsl:text>
354: </xsl:if>
355: <xsl:text>	(</xsl:text>
356: <xsl:if test="not(arg)">
357: <xsl:text>void</xsl:text>
358: </xsl:if>
359: <xsl:for-each select="arg">
360: <xsl:call-template name="dumptext">
361: <xsl:with-param name="text" select="@type"/>
362: </xsl:call-template>
363: <xsl:text> </xsl:text>
364: <xsl:value-of select="@name"/>
365: <xsl:if test="position() != last()">
366: <xsl:text>, </xsl:text><br/>
367: <xsl:if test="$blen - 40 > 8">
368: <xsl:text>	</xsl:text>
369: </xsl:if>
370: <xsl:if test="$blen - 40 > 0">
371: <xsl:text>	</xsl:text>
372: </xsl:if>
373: <xsl:text>					 </xsl:text>
374: </xsl:if>
375: </xsl:for-each>
376: <xsl:text>)
377: </xsl:text>
378: </pre>
379: <xsl:text>
380: </xsl:text>
381: </xsl:template>
382:
383: <xsl:template match="functype">
384: <xsl:variable name="name" select="string(@name)"/>
385: <xsl:variable name="nlen" select="string-length($name)"/>
386: <xsl:variable name="tlen" select="string-length(return/@type)"/>
387: <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
388: <h3>
389: <a name="{$name}"></a>
390: <xsl:text>Function type: </xsl:text>
391: <xsl:value-of select="$name"/>
392: </h3>
393: <pre class="programlisting">
394: <xsl:text>Function type: </xsl:text>
395: <xsl:value-of select="$name"/>
396: <xsl:text>
397: </xsl:text>
398: <xsl:call-template name="dumptext">
399: <xsl:with-param name="text" select="return/@type"/>
400: </xsl:call-template>
401: <xsl:text>	</xsl:text>
402: <xsl:value-of select="@name"/>
403: <xsl:if test="$blen - 40 < -8">
404: <xsl:text>	</xsl:text>
405: </xsl:if>
406: <xsl:if test="$blen - 40 < 0">
407: <xsl:text>	</xsl:text>
408: </xsl:if>
409: <xsl:text>	(</xsl:text>
410: <xsl:if test="not(arg)">
411: <xsl:text>void</xsl:text>
412: </xsl:if>
413: <xsl:for-each select="arg">
414: <xsl:call-template name="dumptext">
415: <xsl:with-param name="text" select="@type"/>
416: </xsl:call-template>
417: <xsl:text> </xsl:text>
418: <xsl:value-of select="@name"/>
419: <xsl:if test="position() != last()">
420: <xsl:text>, </xsl:text><br/>
421: <xsl:if test="$blen - 40 > 8">
422: <xsl:text>	</xsl:text>
423: </xsl:if>
424: <xsl:if test="$blen - 40 > 0">
425: <xsl:text>	</xsl:text>
426: </xsl:if>
427: <xsl:text>					 </xsl:text>
428: </xsl:if>
429: </xsl:for-each>
430: <xsl:text>)
431: </xsl:text>
432: </pre>
433: <p>
434: <xsl:call-template name="dumptext">
435: <xsl:with-param name="text" select="info"/>
436: </xsl:call-template>
437: </p>
438: <xsl:if test="arg | return">
439: <div class="variablelist"><table border="0"><col align="left"/><tbody>
440: <xsl:for-each select="arg">
441: <tr>
442: <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
443: <td>
444: <xsl:call-template name="dumptext">
445: <xsl:with-param name="text" select="@info"/>
446: </xsl:call-template>
447: </td>
448: </tr>
449: </xsl:for-each>
450: <xsl:if test="return/@info">
451: <tr>
452: <td><span class="term"><i><tt>Returns</tt></i>:</span></td>
453: <td>
454: <xsl:call-template name="dumptext">
455: <xsl:with-param name="text" select="return/@info"/>
456: </xsl:call-template>
457: </td>
458: </tr>
459: </xsl:if>
460: </tbody></table></div>
461: </xsl:if>
462: <br/>
463: <xsl:text>
464: </xsl:text>
465: </xsl:template>
466:
467: <xsl:template match="function">
468: <xsl:variable name="name" select="string(@name)"/>
469: <xsl:variable name="nlen" select="string-length($name)"/>
470: <xsl:variable name="tlen" select="string-length(return/@type)"/>
471: <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
472: <h3><a name="{$name}"></a>Function: <xsl:value-of select="$name"/></h3>
473: <pre class="programlisting">
474: <xsl:call-template name="dumptext">
475: <xsl:with-param name="text" select="return/@type"/>
476: </xsl:call-template>
477: <xsl:text>	</xsl:text>
478: <xsl:value-of select="@name"/>
479: <xsl:if test="$blen - 40 < -8">
480: <xsl:text>	</xsl:text>
481: </xsl:if>
482: <xsl:if test="$blen - 40 < 0">
483: <xsl:text>	</xsl:text>
484: </xsl:if>
485: <xsl:text>	(</xsl:text>
486: <xsl:if test="not(arg)">
487: <xsl:text>void</xsl:text>
488: </xsl:if>
489: <xsl:for-each select="arg">
490: <xsl:call-template name="dumptext">
491: <xsl:with-param name="text" select="@type"/>
492: </xsl:call-template>
493: <xsl:text> </xsl:text>
494: <xsl:value-of select="@name"/>
495: <xsl:if test="position() != last()">
496: <xsl:text>, </xsl:text><br/>
497: <xsl:if test="$blen - 40 > 8">
498: <xsl:text>	</xsl:text>
499: </xsl:if>
500: <xsl:if test="$blen - 40 > 0">
501: <xsl:text>	</xsl:text>
502: </xsl:if>
503: <xsl:text>					 </xsl:text>
504: </xsl:if>
505: </xsl:for-each>
506: <xsl:text>)</xsl:text><br/>
507: <xsl:text>
508: </xsl:text>
509: </pre>
510: <p>
511: <xsl:call-template name="dumptext">
512: <xsl:with-param name="text" select="info"/>
513: </xsl:call-template>
514: </p><xsl:text>
515: </xsl:text>
516: <xsl:if test="arg | return/@info">
517: <div class="variablelist"><table border="0"><col align="left"/><tbody>
518: <xsl:for-each select="arg">
519: <tr>
520: <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
521: <td>
522: <xsl:call-template name="dumptext">
523: <xsl:with-param name="text" select="@info"/>
524: </xsl:call-template>
525: </td>
526: </tr>
527: </xsl:for-each>
528: <xsl:if test="return/@info">
529: <tr>
530: <td><span class="term"><i><tt>Returns</tt></i>:</span></td>
531: <td>
532: <xsl:call-template name="dumptext">
533: <xsl:with-param name="text" select="return/@info"/>
534: </xsl:call-template>
535: </td>
536: </tr>
537: </xsl:if>
538: </tbody></table></div>
539: </xsl:if>
540: </xsl:template>
541:
542: <xsl:template match="exports" mode="toc">
543: <xsl:apply-templates select="key('symbols', string(@symbol))[1]" mode="toc"/>
544: </xsl:template>
545:
546: <xsl:template match="exports">
547: <xsl:apply-templates select="key('symbols', string(@symbol))[1]"/>
548: </xsl:template>
549:
550: <xsl:template name="description">
551: <xsl:if test="deprecated">
552: <h2 style="font-weight:bold;color:red;text-align:center">This module is deprecated</h2>
553: </xsl:if>
554: <xsl:if test="description">
555: <p><xsl:value-of select="description"/></p>
556: </xsl:if>
557: </xsl:template>
558:
559: <!--
560: <xsl:template name="docomponents">
561: <xsl:param name="mode"/>
562: <xsl:apply-templates select="exports[@type='macro']" mode="$mode">
563: <xsl:sort select='@symbol'/>
564: </xsl:apply-templates>
565: <xsl:apply-templates select="exports[@type='enum']" mode="$mode">
566: <xsl:sort select='@symbol'/>
567: </xsl:apply-templates>
568: <xsl:apply-templates select="exports[@type='typedef']" mode="$mode">
569: <xsl:sort select='@symbol'/>
570: </xsl:apply-templates>
571: <xsl:apply-templates select="exports[@type='struct']" mode="$mode">
572: <xsl:sort select='@symbol'/>
573: </xsl:apply-templates>
574: <xsl:apply-templates select="exports[@type='function']" mode="$mode">
575: <xsl:sort select='@symbol'/>
576: </xsl:apply-templates>
577: </xsl:template>
578: -->
579:
580: <xsl:template match="file">
581: <xsl:variable name="name" select="@name"/>
582: <xsl:variable name="title">Module <xsl:value-of select="$name"/> from <xsl:value-of select="/api/@name"/></xsl:variable>
583: <xsl:document href="{$htmldir}/libxml-{$name}.html" method="xml" encoding="UTF-8"
584: doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
585: doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
586: <html>
587: <head>
588: <xsl:call-template name="style"/>
589: <xsl:call-template name="docstyle"/>
590: <title><xsl:value-of select="$title"/></title>
591: </head>
592: <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
593: <xsl:call-template name="titlebox">
594: <xsl:with-param name="title" select="$title"/>
595: </xsl:call-template>
596: <table border="0" cellpadding="4" cellspacing="0" width="100%" align="center">
597: <tr>
598: <td bgcolor="#8b7765">
599: <table border="0" cellspacing="0" cellpadding="2" width="100%">
600: <tr>
601: <td valign="top" width="200" bgcolor="#8b7765">
602: <xsl:call-template name="apitoc"/>
603: </td>
604: <td valign="top" bgcolor="#8b7765">
605: <table border="0" cellspacing="0" cellpadding="1" width="100%">
606: <tr>
607: <td>
608: <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000">
609: <tr>
610: <td>
611: <table border="0" cellpadding="3" cellspacing="1" width="100%">
612: <tr>
613: <td bgcolor="#fffacd">
614: <xsl:call-template name="navbar"/>
615: <xsl:call-template name="description"/>
616: <xsl:choose>
617: <xsl:when test="deprecated">
618: <div class="deprecated">
619: <h2>Table of Contents</h2>
620: <xsl:apply-templates select="exports" mode="toc"/>
621: <h2>Description</h2>
622: <xsl:text>
623: </xsl:text>
624: <xsl:apply-templates select="exports"/>
625: </div>
626: </xsl:when>
627: <xsl:otherwise>
628: <h2>Table of Contents</h2>
629: <xsl:apply-templates select="exports[@type='macro']" mode="toc">
630: <xsl:sort select='@symbol'/>
631: </xsl:apply-templates>
632: <xsl:apply-templates select="exports[@type='enum']" mode="toc">
633: <xsl:sort select='@symbol'/>
634: </xsl:apply-templates>
635: <xsl:apply-templates select="exports[@type='typedef']" mode="toc">
636: <xsl:sort select='@symbol'/>
637: </xsl:apply-templates>
638: <xsl:apply-templates select="exports[@type='struct']" mode="toc">
639: <xsl:sort select='@symbol'/>
640: </xsl:apply-templates>
641: <xsl:apply-templates select="exports[@type='function']" mode="toc">
642: <xsl:sort select='@symbol'/>
643: </xsl:apply-templates>
644: <h2>Description</h2>
645: <xsl:text>
646: </xsl:text>
647: <xsl:apply-templates select="exports[@type='macro']">
648: <xsl:sort select='@symbol'/>
649: </xsl:apply-templates>
650: <xsl:apply-templates select="exports[@type='enum']">
651: <xsl:sort select='@symbol'/>
652: </xsl:apply-templates>
653: <xsl:apply-templates select="exports[@type='typedef']">
654: <xsl:sort select='@symbol'/>
655: </xsl:apply-templates>
656: <xsl:apply-templates select="exports[@type='struct']">
657: <xsl:sort select='@symbol'/>
658: </xsl:apply-templates>
659: <xsl:apply-templates select="exports[@type='function']">
660: <xsl:sort select='@symbol'/>
661: </xsl:apply-templates>
662: </xsl:otherwise>
663: </xsl:choose>
664: <p><a href="{$href_base}bugs.html">Daniel Veillard</a></p>
665: </td>
666: </tr>
667: </table>
668: </td>
669: </tr>
670: </table>
671: </td>
672: </tr>
673: </table>
674: </td>
675: </tr>
676: </table>
677: </td>
678: </tr>
679: </table>
680: </body>
681: </html>
682: </xsl:document>
683: </xsl:template>
684:
685: <xsl:template match="file" mode="toc">
686: <xsl:variable name="name" select="@name"/>
687: <li>
688: <a href="libxml-{$name}.html"><xsl:value-of select="$name"/></a>
689: <xsl:text>: </xsl:text>
690: <xsl:value-of select="summary"/>
691: </li>
692: </xsl:template>
693:
694: <xsl:template name="mainpage">
695: <xsl:param name="file" select="concat($htmldir, '/index.html')"/>
696: <xsl:variable name="title">Reference Manual for <xsl:value-of select="/api/@name"/></xsl:variable>
697: <xsl:document href="{$file}" method="xml" encoding="UTF-8"
698: doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
699: doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
700: <html>
701: <head>
702: <xsl:call-template name="style"/>
703: <xsl:call-template name="docstyle"/>
704: <title><xsl:value-of select="$title"/></title>
705: </head>
706: <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
707: <xsl:call-template name="titlebox">
708: <xsl:with-param name="title" select="$title"/>
709: </xsl:call-template>
710: <table border="0" cellpadding="4" cellspacing="0" width="100%" align="center">
711: <tr>
712: <td bgcolor="#8b7765">
713: <table border="0" cellspacing="0" cellpadding="2" width="100%">
714: <tr>
715: <td valign="top" width="200" bgcolor="#8b7765">
716: <xsl:call-template name="apitoc"/>
717: </td>
718: <td valign="top" bgcolor="#8b7765">
719: <table border="0" cellspacing="0" cellpadding="1" width="100%">
720: <tr>
721: <td>
722: <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000">
723: <tr>
724: <td>
725: <table border="0" cellpadding="3" cellspacing="1" width="100%">
726: <tr>
727: <td bgcolor="#fffacd">
728: <h2>Table of Contents</h2>
729: <ul>
730: <xsl:apply-templates select="/api/files/file" mode="toc"/>
731: </ul>
732: <p><a href="{$href_base}bugs.html">Daniel Veillard</a></p>
733: </td>
734: </tr>
735: </table>
736: </td>
737: </tr>
738: </table>
739: </td>
740: </tr>
741: </table>
742: </td>
743: </tr>
744: </table>
745: </td>
746: </tr>
747: </table>
748: </body>
749: </html>
750: </xsl:document>
751: </xsl:template>
752:
753: <xsl:template match="/">
754: <!-- Save the main index.html as well as a couple of copies -->
755: <xsl:call-template name="mainpage"/>
756: <xsl:call-template name="mainpage">
757: <xsl:with-param name="file" select="concat($htmldir, '/book1.html')"/>
758: </xsl:call-template>
759: <xsl:call-template name="mainpage">
760: <xsl:with-param name="file" select="concat($htmldir, '/libxml-lib.html')"/>
761: </xsl:call-template>
762: <!-- now build the file for each of the modules -->
763: <xsl:apply-templates select="/api/files/file"/>
764: </xsl:template>
765:
766: </xsl:stylesheet>
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>