blob: 74aaaa20cb9b2968c8fa5f714547a9ca0eb61c1f [file] [log] [blame]
Daniel Veillardb72876d2003-11-12 00:40:33 +00001<?xml version="1.0"?>
2<xsl:stylesheet version="1.0"
3 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4 xmlns:exsl="http://exslt.org/common"
5 extension-element-prefixes="exsl"
6 exclude-result-prefixes="exsl">
7
8 <xsl:import href="../site.xsl"/>
9
10 <xsl:variable name="href_base">../</xsl:variable>
Daniel Veillarde8ba84e2003-11-18 13:54:15 +000011 <xsl:variable name="menu_name">Examples Menu</xsl:variable>
Daniel Veillardb72876d2003-11-12 00:40:33 +000012
13 <xsl:variable name="toc">
14 <form action="../search.php"
15 enctype="application/x-www-form-urlencoded" method="get">
16 <input name="query" type="text" size="20" value=""/>
17 <input name="submit" type="submit" value="Search ..."/>
18 </form>
19 <ul><!-- style="margin-left: -1em" -->
20 <li><a href="{$href_base}index.html">Home</a></li>
21 <li><a style="font-weight:bold"
22 href="{$href_base}docs.html">Developer Menu</a></li>
Daniel Veillarde8ba84e2003-11-18 13:54:15 +000023 <li><a style="font-weight:bold"
24 href="{$href_base}html/index.html">API Menu</a></li>
Daniel Veillarda59853a2003-11-12 22:50:47 +000025 <xsl:for-each select="/examples/sections/section">
26 <li><a href="#{@name}"><xsl:value-of select="@name"/> Examples</a></li>
27 </xsl:for-each>
Daniel Veillardb72876d2003-11-12 00:40:33 +000028 <li><a href="{$href_base}guidelines.html">XML Guidelines</a></li>
29 </ul>
30 </xsl:variable>
31
32 <xsl:template match="include">
Daniel Veillard8c034012003-11-12 16:54:26 +000033 <xsl:variable name="header" select="substring-before(substring-after(., '/'), '&gt;')"/>
34 <xsl:variable name="doc" select="concat('../html/libxml-', $header, 'tml')"/>
35 <li><a href="{$doc}"><xsl:value-of select="."/></a></li>
Daniel Veillardb72876d2003-11-12 00:40:33 +000036 </xsl:template>
37
38 <xsl:template match="typedef">
39 <xsl:variable name="name" select="@name"/>
40 <xsl:variable name="header" select="concat(@file, '.h')"/>
41 <xsl:variable name="doc" select="concat('../html/libxml-', @file, '.html#', $name)"/>
42 <li> line <xsl:value-of select="@line"/>: Type <a href="{$doc}"><xsl:value-of select="$name"/></a> from <xsl:value-of select="$header"/></li>
43 </xsl:template>
44
45 <xsl:template match="function">
46 <xsl:variable name="name" select="@name"/>
47 <xsl:variable name="header" select="concat(@file, '.h')"/>
48 <xsl:variable name="doc" select="concat('../html/libxml-', @file, '.html#', $name)"/>
49 <li> line <xsl:value-of select="@line"/>: Function <a href="{$doc}"><xsl:value-of select="$name"/></a> from <xsl:value-of select="$header"/></li>
50 </xsl:template>
51
52 <xsl:template match="macro">
53 <xsl:variable name="name" select="@name"/>
54 <xsl:variable name="header" select="concat(@file, '.h')"/>
55 <xsl:variable name="doc" select="concat('../html/libxml-', @file, '.html#', $name)"/>
56 <li> line <xsl:value-of select="@line"/>: Macro <a href="{$doc}"><xsl:value-of select="$name"/></a> from <xsl:value-of select="$header"/></li>
57 </xsl:template>
58
59 <xsl:template match="example">
60 <xsl:variable name="filename" select="string(@filename)"/>
Daniel Veillard8c034012003-11-12 16:54:26 +000061 <h3><a name="{$filename}" href="{$filename}"><xsl:value-of select="$filename"/></a>: <xsl:value-of select="synopsis"/></h3>
Daniel Veillardb72876d2003-11-12 00:40:33 +000062 <p><xsl:value-of select="purpose"/></p>
63 <p>Includes:</p>
64 <ul>
65 <xsl:for-each select="includes/include">
66 <xsl:apply-templates select='.'/>
67 </xsl:for-each>
68 </ul>
69 <p>Uses:</p>
70 <ul>
71 <xsl:for-each select="uses/*">
72 <xsl:sort select="@line" data-type="number"/>
73 <xsl:apply-templates select='.'/>
74 </xsl:for-each>
75 </ul>
76 <p>Usage:</p>
77 <p><xsl:value-of select="usage"/></p>
78 <p>Author: <xsl:value-of select="author"/></p>
79 </xsl:template>
80
81 <xsl:template match="section">
Daniel Veillard8c034012003-11-12 16:54:26 +000082 <li><p> <a href="#{@name}"><xsl:value-of select="@name"/></a> :</p>
Daniel Veillardb72876d2003-11-12 00:40:33 +000083 <ul>
84 <xsl:for-each select="example">
85 <xsl:sort select='.'/>
Daniel Veillard8c034012003-11-12 16:54:26 +000086 <xsl:variable name="filename" select="@filename"/>
87 <li> <a href="#{$filename}"><xsl:value-of select="$filename"/></a>: <xsl:value-of select="/examples/example[@filename = $filename]/synopsis"/></li>
Daniel Veillardb72876d2003-11-12 00:40:33 +000088 </xsl:for-each>
89 </ul>
90 </li>
91 </xsl:template>
92
93 <xsl:template match="sections">
94 <p> The examples are stored per section depending on the main focus
95 of the example:</p>
96 <ul>
97 <xsl:for-each select="section">
98 <xsl:sort select='.'/>
99 <xsl:apply-templates select='.'/>
100 </xsl:for-each>
101 </ul>
Daniel Veillard3dd87ba2004-03-29 14:58:38 +0000102 <p> Getting the compilation options and libraries dependancies needed
103to generate binaries from the examples is best done on Linux/Unix by using
104the xml2-config script which should have been installed as part of <i>make
105install</i> step or when installing the libxml2 development package:</p>
106<pre>gcc -o example `xml2-config --cflags` example.c `xml2-config --libs`</pre>
Daniel Veillardb72876d2003-11-12 00:40:33 +0000107 </xsl:template>
108
Daniel Veillard8c034012003-11-12 16:54:26 +0000109 <xsl:template name="sections-list">
110 <xsl:for-each select="sections/section">
111 <xsl:variable name="section" select="@name"/>
112 <h2> <a name="{$section}"></a><xsl:value-of select="$section"/> Examples</h2>
113 <xsl:apply-templates select='/examples/example[section = $section]'/>
114 </xsl:for-each>
115 </xsl:template>
116
Daniel Veillardb72876d2003-11-12 00:40:33 +0000117 <xsl:template match="examples">
118 <xsl:variable name="title">Libxml2 set of examples</xsl:variable>
119 <xsl:document href="index.html" method="xml" encoding="ISO-8859-1"
120 doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
121 doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
122 <html>
123 <head>
124 <xsl:call-template name="style"/>
125 <xsl:element name="title">
126 <xsl:value-of select="$title"/>
127 </xsl:element>
128 </head>
129 <body bgcolor="#8b7765" text="#000000" link="#000000" vlink="#000000">
130 <xsl:call-template name="titlebox">
131 <xsl:with-param name="title" select="$title"/>
132 </xsl:call-template>
133 <table border="0" cellpadding="4" cellspacing="0" width="100%" align="center">
134 <tr>
135 <td bgcolor="#8b7765">
136 <table border="0" cellspacing="0" cellpadding="2" width="100%">
137 <tr>
138 <td valign="top" width="200" bgcolor="#8b7765">
139 <xsl:call-template name="toc"/>
140 </td>
141 <td valign="top" bgcolor="#8b7765">
142 <table border="0" cellspacing="0" cellpadding="1" width="100%">
143 <tr>
144 <td>
145 <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000">
146 <tr>
147 <td>
148 <table border="0" cellpadding="3" cellspacing="1" width="100%">
149 <tr>
150 <td bgcolor="#fffacd">
151 <xsl:apply-templates select="sections"/>
Daniel Veillard8c034012003-11-12 16:54:26 +0000152 <xsl:call-template name="sections-list"/>
Daniel Veillardb72876d2003-11-12 00:40:33 +0000153 <p><a href="../bugs.html">Daniel Veillard</a></p>
154 </td>
155 </tr>
156 </table>
157 </td>
158 </tr>
159 </table>
160 </td>
161 </tr>
162 </table>
163 </td>
164 </tr>
165 </table>
166 </td>
167 </tr>
168 </table>
169 </body>
170 </html>
171 </xsl:document>
172 </xsl:template>
173
174</xsl:stylesheet>