Home | History | Annotate | Download | only in examples
      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>
     11   <xsl:variable name="menu_name">Examples Menu</xsl:variable>
     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>
     23       <li><a style="font-weight:bold" 
     24              href="{$href_base}html/index.html">API Menu</a></li>
     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>
     28       <li><a href="{$href_base}guidelines.html">XML Guidelines</a></li>
     29     </ul>
     30   </xsl:variable>
     31 
     32   <xsl:template match="include">
     33     <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>
     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)"/>
     61     <h3><a name="{$filename}" href="{$filename}"><xsl:value-of select="$filename"/></a>: <xsl:value-of select="synopsis"/></h3>
     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">
     82     <li><p> <a href="#{@name}"><xsl:value-of select="@name"/></a> :</p>
     83     <ul>
     84     <xsl:for-each select="example">
     85       <xsl:sort select='.'/>
     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>
     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>
    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>
    107   </xsl:template>
    108 
    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 
    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"/>
    152 					<xsl:call-template name="sections-list"/>
    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>
    175