File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / doc / examples / examples.xsl
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Tue Feb 21 23:37:59 2012 UTC (12 years, 4 months ago) by misho
Branches: libxml2, MAIN
CVS tags: v2_9_1p0, v2_9_1, v2_8_0p0, v2_8_0, v2_7_8, HEAD
libxml2

    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>

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>