upload tizen1.0 source
[external/libxml2.git] / doc / api.xsl
1 <?xml version="1.0"?>
2 <!-- this stylesheet builds the API*.html , it works based on libxml2-refs.xml
3   -->
4 <xsl:stylesheet version="1.0"
5   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
6   xmlns:exsl="http://exslt.org/common"
7   extension-element-prefixes="exsl"
8   exclude-result-prefixes="exsl">
9
10   <!-- Import the rest of the site stylesheets -->
11   <xsl:import href="site.xsl"/>
12
13   <!-- Generate XHTML-1.0 transitional -->
14   <xsl:output method="xml" encoding="UTF-8" indent="yes"
15       doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
16       doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
17
18   <xsl:variable name="href_base" select="''"/>
19   <xsl:variable name="apirefs" select="document('libxml2-refs.xml')"/>
20   <xsl:variable name="module" select="$apirefs/apirefs/@name"/>
21   <xsl:key name="refhref" match="reference" use="@name"/>
22
23   <xsl:template match="ref" mode="anchor">
24     <xsl:variable name="name" select="@name"/>
25     <xsl:for-each select="document('libxml2-refs.xml')">
26         <a href="{key('refhref', $name)/@href}"><xsl:value-of select="$name"/></a><br/>
27     </xsl:for-each>
28   </xsl:template>
29   <xsl:template match="type" mode="reflist">
30     <h2>Type <xsl:value-of select="@name"/>:</h2>
31     <p>
32       <xsl:for-each select="ref">
33         <xsl:apply-templates mode="anchor" select="."/>
34         <xsl:text>
35 </xsl:text>
36       </xsl:for-each>
37     </p>
38   </xsl:template>
39   <xsl:template match="letter" mode="reflist">
40     <h2>Letter <xsl:value-of select="@name"/>:</h2>
41     <p>
42       <xsl:for-each select="ref">
43         <xsl:apply-templates mode="anchor" select="."/>
44         <xsl:text>
45 </xsl:text>
46       </xsl:for-each>
47     </p>
48   </xsl:template>
49   <xsl:template match="file" mode="reflist">
50     <h2><a name="{@name}">Module <xsl:value-of select="@name"/></a>:</h2>
51     <p>
52       <xsl:for-each select="ref">
53         <xsl:apply-templates mode="anchor" select="."/>
54         <xsl:text>
55 </xsl:text>
56       </xsl:for-each>
57     </p>
58   </xsl:template>
59   <xsl:template match="letter" mode="wordlist">
60     <h2>Letter <xsl:value-of select="@name"/>:</h2>
61     <dl>
62       <xsl:for-each select="word">
63         <dt><xsl:value-of select="@name"/></dt>
64         <dd>
65         <xsl:for-each select="ref">
66           <xsl:apply-templates mode="anchor" select="."/>
67           <xsl:text>
68 </xsl:text>
69         </xsl:for-each>
70         </dd>
71       </xsl:for-each>
72     </dl>
73   </xsl:template>
74
75   <xsl:template match="constructors">
76     <xsl:message>Generating API Constructors</xsl:message>
77     <xsl:variable name="title">List of constructors for <xsl:value-of select="$module"/></xsl:variable>
78     <xsl:document href="APIconstructors.html" method="xml" encoding="UTF-8"
79       doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
80       doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
81       <html>
82         <head>
83         <xsl:call-template name="style"/>
84         <xsl:element name="title">
85           <xsl:value-of select="$title"/>
86         </xsl:element>
87         </head>
88         <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
89           <xsl:call-template name="titlebox">
90             <xsl:with-param name="title" select="$title"/>
91           </xsl:call-template>
92           <table border="0" cellpadding="4" cellspacing="0" width="100%" align="center">
93             <tr>
94               <td bgcolor="#8b7765">
95                 <table border="0" cellspacing="0" cellpadding="2" width="100%">
96                   <tr>
97                     <td valign="top" width="200" bgcolor="#8b7765">
98                       <xsl:call-template name="develtoc"/>
99                     </td>
100                     <td valign="top" bgcolor="#8b7765">
101                       <table border="0" cellspacing="0" cellpadding="1" width="100%">
102                         <tr>
103                           <td>
104                             <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000">
105                               <tr>
106                                 <td>
107                                   <table border="0" cellpadding="3" cellspacing="1" width="100%">
108                                     <tr>
109                                       <td bgcolor="#fffacd">
110                                         <xsl:apply-templates mode="reflist" select="type"/>
111                                         <p><a href="{$href_base}bugs.html">Daniel Veillard</a></p>
112                                       </td>
113                                     </tr>
114                                   </table>
115                                 </td>
116                               </tr>
117                             </table>
118                           </td>
119                         </tr>
120                       </table>
121                     </td>
122                   </tr>
123                 </table>
124               </td>
125             </tr>
126           </table>
127         </body>
128       </html>
129     </xsl:document>
130   </xsl:template>
131   <xsl:template match="files">
132     <xsl:message>Generating API List of synbols per file</xsl:message>
133     <xsl:variable name="title">List of Symbols per Module for <xsl:value-of select="$module"/></xsl:variable>
134     <xsl:document href="APIfiles.html" method="xml" encoding="UTF-8"
135       doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
136       doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
137       <html>
138         <head>
139         <xsl:call-template name="style"/>
140         <xsl:element name="title">
141           <xsl:value-of select="$title"/>
142         </xsl:element>
143         </head>
144         <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
145           <xsl:call-template name="titlebox">
146             <xsl:with-param name="title" select="$title"/>
147           </xsl:call-template>
148           <table border="0" cellpadding="4" cellspacing="0" width="100%" align="center">
149             <tr>
150               <td bgcolor="#8b7765">
151                 <table border="0" cellspacing="0" cellpadding="2" width="100%">
152                   <tr>
153                     <td valign="top" width="200" bgcolor="#8b7765">
154                       <xsl:call-template name="develtoc"/>
155                     </td>
156                     <td valign="top" bgcolor="#8b7765">
157                       <table border="0" cellspacing="0" cellpadding="1" width="100%">
158                         <tr>
159                           <td>
160                             <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000">
161                               <tr>
162                                 <td>
163                                   <table border="0" cellpadding="3" cellspacing="1" width="100%">
164                                     <tr>
165                                       <td bgcolor="#fffacd">
166                                         <xsl:apply-templates mode="reflist" select="file"/>
167                                         <p><a href="{$href_base}bugs.html">Daniel Veillard</a></p>
168                                       </td>
169                                     </tr>
170                                   </table>
171                                 </td>
172                               </tr>
173                             </table>
174                           </td>
175                         </tr>
176                       </table>
177                     </td>
178                   </tr>
179                 </table>
180               </td>
181             </tr>
182           </table>
183         </body>
184       </html>
185     </xsl:document>
186   </xsl:template>
187   <xsl:template match="functions">
188     <xsl:message>Generating API Functions by Type</xsl:message>
189     <xsl:variable name="title">List of function manipulating types in <xsl:value-of select="$module"/></xsl:variable>
190     <xsl:document href="APIfunctions.html" method="xml" encoding="UTF-8"
191       doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
192       doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
193       <html>
194         <head>
195         <xsl:call-template name="style"/>
196         <xsl:element name="title">
197           <xsl:value-of select="$title"/>
198         </xsl:element>
199         </head>
200         <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
201           <xsl:call-template name="titlebox">
202             <xsl:with-param name="title" select="$title"/>
203           </xsl:call-template>
204           <table border="0" cellpadding="4" cellspacing="0" width="100%" align="center">
205             <tr>
206               <td bgcolor="#8b7765">
207                 <table border="0" cellspacing="0" cellpadding="2" width="100%">
208                   <tr>
209                     <td valign="top" width="200" bgcolor="#8b7765">
210                       <xsl:call-template name="develtoc"/>
211                     </td>
212                     <td valign="top" bgcolor="#8b7765">
213                       <table border="0" cellspacing="0" cellpadding="1" width="100%">
214                         <tr>
215                           <td>
216                             <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000">
217                               <tr>
218                                 <td>
219                                   <table border="0" cellpadding="3" cellspacing="1" width="100%">
220                                     <tr>
221                                       <td bgcolor="#fffacd">
222                                         <xsl:apply-templates mode="reflist" select="type"/>
223                                         <p><a href="{$href_base}bugs.html">Daniel Veillard</a></p>
224                                       </td>
225                                     </tr>
226                                   </table>
227                                 </td>
228                               </tr>
229                             </table>
230                           </td>
231                         </tr>
232                       </table>
233                     </td>
234                   </tr>
235                 </table>
236               </td>
237             </tr>
238           </table>
239         </body>
240       </html>
241     </xsl:document>
242   </xsl:template>
243   <xsl:template match="alpha">
244     <xsl:message>Generating API Alphabetic list</xsl:message>
245     <xsl:variable name="title">Alphabetic List of Symbols in <xsl:value-of select="$module"/></xsl:variable>
246     <xsl:document href="APIsymbols.html" method="xml" encoding="UTF-8"
247       doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
248       doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
249       <html>
250         <head>
251         <xsl:call-template name="style"/>
252         <xsl:element name="title">
253           <xsl:value-of select="$title"/>
254         </xsl:element>
255         </head>
256         <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
257           <xsl:call-template name="titlebox">
258             <xsl:with-param name="title" select="$title"/>
259           </xsl:call-template>
260           <table border="0" cellpadding="4" cellspacing="0" width="100%" align="center">
261             <tr>
262               <td bgcolor="#8b7765">
263                 <table border="0" cellspacing="0" cellpadding="2" width="100%">
264                   <tr>
265                     <td valign="top" width="200" bgcolor="#8b7765">
266                       <xsl:call-template name="develtoc"/>
267                     </td>
268                     <td valign="top" bgcolor="#8b7765">
269                       <table border="0" cellspacing="0" cellpadding="1" width="100%">
270                         <tr>
271                           <td>
272                             <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000">
273                               <tr>
274                                 <td>
275                                   <table border="0" cellpadding="3" cellspacing="1" width="100%">
276                                     <tr>
277                                       <td bgcolor="#fffacd">
278                                         <xsl:apply-templates mode="reflist" select="letter"/>
279                                         <p><a href="{$href_base}bugs.html">Daniel Veillard</a></p>
280                                       </td>
281                                     </tr>
282                                   </table>
283                                 </td>
284                               </tr>
285                             </table>
286                           </td>
287                         </tr>
288                       </table>
289                     </td>
290                   </tr>
291                 </table>
292               </td>
293             </tr>
294           </table>
295         </body>
296       </html>
297     </xsl:document>
298   </xsl:template>
299   <xsl:template name="apichunks">
300     <h2 align="center">
301     <xsl:for-each select="/apirefs/index/chunks/chunk">
302       <xsl:variable name="name" select="@name"/>
303       <xsl:variable name="start" select="@start"/>
304       <xsl:variable name="end" select="@end"/>
305       <xsl:variable name="block" select="concat($start, '-', $end)"/>
306       <a href="API{$name}.html"><xsl:value-of select="$block"/></a>
307       <xsl:text>
308 </xsl:text>
309     </xsl:for-each>
310     </h2>
311   </xsl:template>
312   <xsl:template match="chunk">
313     <xsl:variable name="name" select="@name"/>
314     <xsl:variable name="start" select="@start"/>
315     <xsl:variable name="end" select="@end"/>
316     <xsl:variable name="block" select="concat($start, '-', $end)"/>
317     <xsl:variable name="target" select="/apirefs/index/chunk[@name = $name]"/>
318     <xsl:variable name="title">API Alphabetic Index <xsl:value-of select="$block"/> for <xsl:value-of select="$module"/></xsl:variable>
319     <xsl:document href="API{$name}.html" method="xml" encoding="UTF-8"
320       doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
321       doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
322       <html>
323         <head>
324         <xsl:call-template name="style"/>
325         <xsl:element name="title">
326           <xsl:value-of select="$title"/>
327         </xsl:element>
328         </head>
329         <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
330           <xsl:call-template name="titlebox">
331             <xsl:with-param name="title" select="$title"/>
332           </xsl:call-template>
333           <table border="0" cellpadding="4" cellspacing="0" width="100%" align="center">
334             <tr>
335               <td bgcolor="#8b7765">
336                 <table border="0" cellspacing="0" cellpadding="2" width="100%">
337                   <tr>
338                     <td valign="top" width="200" bgcolor="#8b7765">
339                       <xsl:call-template name="develtoc"/>
340                     </td>
341                     <td valign="top" bgcolor="#8b7765">
342                       <table border="0" cellspacing="0" cellpadding="1" width="100%">
343                         <tr>
344                           <td>
345                             <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000">
346                               <tr>
347                                 <td>
348                                   <table border="0" cellpadding="3" cellspacing="1" width="100%">
349                                     <tr>
350                                       <td bgcolor="#fffacd">
351                                         <xsl:call-template name="apichunks"/>
352                                         <xsl:apply-templates mode="wordlist"
353                                                    select="$target/letter"/>
354                                         <xsl:call-template name="apichunks"/>
355                                         <p><a href="{$href_base}bugs.html">Daniel Veillard</a></p>
356                                       </td>
357                                     </tr>
358                                   </table>
359                                 </td>
360                               </tr>
361                             </table>
362                           </td>
363                         </tr>
364                       </table>
365                     </td>
366                   </tr>
367                 </table>
368               </td>
369             </tr>
370           </table>
371         </body>
372       </html>
373     </xsl:document>
374   </xsl:template>
375
376   <xsl:template match="index">
377     <xsl:message>Generating API Index</xsl:message>
378     <xsl:apply-templates select="chunks/chunk"/>
379   </xsl:template>
380
381   <xsl:template match="apirefs">
382     <xsl:message>Generating API Cross References</xsl:message>
383     <xsl:apply-templates select="constructors"/>
384     <xsl:apply-templates select="functions"/>
385     <xsl:apply-templates select="alpha"/>
386     <xsl:apply-templates select="files"/>
387     <xsl:apply-templates select="index"/>
388   </xsl:template>
389
390   <xsl:template match="/">
391     <xsl:apply-templates select="$apirefs/apirefs"/>
392   </xsl:template>
393
394 </xsl:stylesheet>