Daniel Veillard | b72876d | 2003-11-12 00:40:33 +0000 | [diff] [blame] | 1 | <?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 Veillard | e8ba84e | 2003-11-18 13:54:15 +0000 | [diff] [blame] | 11 | <xsl:variable name="menu_name">Examples Menu</xsl:variable> |
Daniel Veillard | b72876d | 2003-11-12 00:40:33 +0000 | [diff] [blame] | 12 | |
| 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 Veillard | e8ba84e | 2003-11-18 13:54:15 +0000 | [diff] [blame] | 23 | <li><a style="font-weight:bold" |
| 24 | href="{$href_base}html/index.html">API Menu</a></li> |
Daniel Veillard | a59853a | 2003-11-12 22:50:47 +0000 | [diff] [blame] | 25 | <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 Veillard | b72876d | 2003-11-12 00:40:33 +0000 | [diff] [blame] | 28 | <li><a href="{$href_base}guidelines.html">XML Guidelines</a></li> |
| 29 | </ul> |
| 30 | </xsl:variable> |
| 31 | |
| 32 | <xsl:template match="include"> |
Daniel Veillard | 8c03401 | 2003-11-12 16:54:26 +0000 | [diff] [blame] | 33 | <xsl:variable name="header" select="substring-before(substring-after(., '/'), '>')"/> |
| 34 | <xsl:variable name="doc" select="concat('../html/libxml-', $header, 'tml')"/> |
| 35 | <li><a href="{$doc}"><xsl:value-of select="."/></a></li> |
Daniel Veillard | b72876d | 2003-11-12 00:40:33 +0000 | [diff] [blame] | 36 | </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 Veillard | 8c03401 | 2003-11-12 16:54:26 +0000 | [diff] [blame] | 61 | <h3><a name="{$filename}" href="{$filename}"><xsl:value-of select="$filename"/></a>: <xsl:value-of select="synopsis"/></h3> |
Daniel Veillard | b72876d | 2003-11-12 00:40:33 +0000 | [diff] [blame] | 62 | <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 Veillard | 8c03401 | 2003-11-12 16:54:26 +0000 | [diff] [blame] | 82 | <li><p> <a href="#{@name}"><xsl:value-of select="@name"/></a> :</p> |
Daniel Veillard | b72876d | 2003-11-12 00:40:33 +0000 | [diff] [blame] | 83 | <ul> |
| 84 | <xsl:for-each select="example"> |
| 85 | <xsl:sort select='.'/> |
Daniel Veillard | 8c03401 | 2003-11-12 16:54:26 +0000 | [diff] [blame] | 86 | <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 Veillard | b72876d | 2003-11-12 00:40:33 +0000 | [diff] [blame] | 88 | </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 Veillard | 3dd87ba | 2004-03-29 14:58:38 +0000 | [diff] [blame] | 102 | <p> Getting the compilation options and libraries dependancies needed |
| 103 | to generate binaries from the examples is best done on Linux/Unix by using |
| 104 | the xml2-config script which should have been installed as part of <i>make |
| 105 | install</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 Veillard | b72876d | 2003-11-12 00:40:33 +0000 | [diff] [blame] | 107 | </xsl:template> |
| 108 | |
Daniel Veillard | 8c03401 | 2003-11-12 16:54:26 +0000 | [diff] [blame] | 109 | <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 Veillard | b72876d | 2003-11-12 00:40:33 +0000 | [diff] [blame] | 117 | <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 Veillard | 8c03401 | 2003-11-12 16:54:26 +0000 | [diff] [blame] | 152 | <xsl:call-template name="sections-list"/> |
Daniel Veillard | b72876d | 2003-11-12 00:40:33 +0000 | [diff] [blame] | 153 | <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> |