Annotation of embedaddon/libxml2/doc/newapi.xsl, revision 1.1

1.1     ! misho       1: <?xml version="1.0"?>
        !             2: <!--
        !             3:   Stylesheet to generate the HTML documentation from an XML API descriptions:
        !             4:   xsltproc newapi.xsl libxml2-api.xml
        !             5: 
        !             6:   Daniel Veillard
        !             7: -->
        !             8: <xsl:stylesheet version="1.0"
        !             9:   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
        !            10:   xmlns:exsl="http://exslt.org/common"
        !            11:   xmlns:str="http://exslt.org/strings"
        !            12:   extension-element-prefixes="exsl str"
        !            13:   exclude-result-prefixes="exsl str">
        !            14: 
        !            15:   <!-- Import the main part of the site stylesheets -->
        !            16:   <xsl:import href="site.xsl"/>
        !            17: 
        !            18:   <!-- Generate XHTML-1.0 transitional -->
        !            19:   <xsl:output method="xml" encoding="UTF-8" indent="yes"
        !            20:       doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
        !            21:       doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
        !            22: 
        !            23:   <!-- Build keys for all symbols -->
        !            24:   <xsl:key name="symbols" match="/api/symbols/*" use="@name"/>
        !            25: 
        !            26:   <!-- the target directory for the HTML output -->
        !            27:   <xsl:variable name="htmldir">html</xsl:variable>
        !            28:   <xsl:variable name="href_base">../</xsl:variable>
        !            29: 
        !            30:   <!-- The table of content for the HTML API pages -->
        !            31:   <xsl:variable name="menu_name">API Menu</xsl:variable>
        !            32:   <xsl:variable name="apitoc">
        !            33:     <form action="../search.php"
        !            34:           enctype="application/x-www-form-urlencoded" method="get">
        !            35:       <input name="query" type="text" size="20" value=""/>
        !            36:       <input name="submit" type="submit" value="Search ..."/>
        !            37:     </form>
        !            38:     <ul><!-- style="margin-left: -1em" -->
        !            39:       <li><a style="font-weight:bold"
        !            40:              href="{$href_base}index.html">Main Menu</a></li>
        !            41:       <li><a style="font-weight:bold" 
        !            42:              href="{$href_base}docs.html">Developer Menu</a></li>
        !            43:       <li><a style="font-weight:bold" 
        !            44:              href="{$href_base}examples/index.html">Code Examples</a></li>
        !            45:       <li><a style="font-weight:bold"
        !            46:              href="index.html">API Menu</a></li>
        !            47:       <li><a href="libxml-parser.html">Parser API</a></li>
        !            48:       <li><a href="libxml-tree.html">Tree API</a></li>
        !            49:       <li><a href="libxml-xmlreader.html">Reader API</a></li>
        !            50:       <li><a href="{$href_base}guidelines.html">XML Guidelines</a></li>
        !            51:       <li><a href="{$href_base}ChangeLog.html">ChangeLog</a></li>
        !            52:     </ul>
        !            53:   </xsl:variable>
        !            54:   <xsl:template name="apitoc">
        !            55:     <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000">
        !            56:       <tr>
        !            57:         <td>
        !            58:           <table width="100%" border="0" cellspacing="1" cellpadding="3">
        !            59:             <tr>
        !            60:               <td colspan="1" bgcolor="#eecfa1" align="center">
        !            61:                 <center>
        !            62:                   <b><xsl:value-of select="$menu_name"/></b>
        !            63:                 </center>
        !            64:               </td>
        !            65:             </tr>
        !            66:             <tr>
        !            67:               <td bgcolor="#fffacd">
        !            68:                 <xsl:copy-of select="$apitoc"/>
        !            69:               </td>
        !            70:             </tr>
        !            71:           </table>
        !            72:           <table width="100%" border="0" cellspacing="1" cellpadding="3">
        !            73:             <tr>
        !            74:               <td colspan="1" bgcolor="#eecfa1" align="center">
        !            75:                 <center>
        !            76:                   <b>API Indexes</b>
        !            77:                 </center>
        !            78:               </td>
        !            79:             </tr>
        !            80:             <tr>
        !            81:               <td bgcolor="#fffacd">
        !            82:                 <xsl:copy-of select="$api"/>
        !            83:               </td>
        !            84:             </tr>
        !            85:           </table>
        !            86:           <table width="100%" border="0" cellspacing="1" cellpadding="3">
        !            87:             <tr>
        !            88:               <td colspan="1" bgcolor="#eecfa1" align="center">
        !            89:                 <center>
        !            90:                   <b>Related links</b>
        !            91:                 </center>
        !            92:               </td>
        !            93:             </tr>
        !            94:             <tr>
        !            95:               <td bgcolor="#fffacd">
        !            96:                 <xsl:copy-of select="$related"/>
        !            97:               </td>
        !            98:             </tr>
        !            99:           </table>
        !           100:         </td>
        !           101:       </tr>
        !           102:     </table>
        !           103:   </xsl:template>
        !           104: 
        !           105:   <xsl:template name="docstyle">
        !           106:     <style type="text/css">
        !           107:       div.deprecated pre.programlisting {border-style: double;border-color:red}
        !           108:       pre.programlisting {border-style: double;background: #EECFA1}
        !           109:     </style>
        !           110:   </xsl:template>
        !           111:   <xsl:template name="navbar">
        !           112:     <xsl:variable name="previous" select="preceding-sibling::file[1]"/>
        !           113:     <xsl:variable name="next" select="following-sibling::file[1]"/>
        !           114:     <table class="navigation" width="100%" summary="Navigation header"
        !           115:            cellpadding="2" cellspacing="2">
        !           116:       <tr valign="middle">
        !           117:         <xsl:if test="$previous">
        !           118:           <td><a accesskey="p" href="libxml-{$previous/@name}.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></img></a></td>
        !           119:          <th align="left"><a href="libxml-{$previous/@name}.html"><xsl:value-of select="$previous/@name"/></a></th>
        !           120:        </xsl:if>
        !           121:         <td><a accesskey="u" href="index.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></img></a></td>
        !           122:        <th align="left"><a href="index.html">API documentation</a></th>
        !           123:         <td><a accesskey="h" href="../index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></img></a></td>
        !           124:         <th align="center"><a href="../index.html">The XML C parser and toolkit of Gnome</a></th>
        !           125:         <xsl:if test="$next">
        !           126:          <th align="right"><a href="libxml-{$next/@name}.html"><xsl:value-of select="$next/@name"/></a></th>
        !           127:           <td><a accesskey="n" href="libxml-{$next/@name}.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></img></a></td>
        !           128:         </xsl:if>
        !           129:       </tr>
        !           130:     </table>
        !           131:   </xsl:template>
        !           132: 
        !           133:   <!-- This is convoluted but needed to force the current document to
        !           134:        be the API one and not the result tree from the tokenize() result,
        !           135:        because the keys are only defined on the main document -->
        !           136:   <xsl:template mode="dumptoken" match='*'>
        !           137:     <xsl:param name="token"/>
        !           138:     <xsl:variable name="ref" select="key('symbols', $token)"/>
        !           139:     <xsl:choose>
        !           140:       <xsl:when test="$ref">
        !           141:         <a href="libxml-{$ref/@file}.html#{$ref/@name}"><xsl:value-of select="$token"/></a>
        !           142:       </xsl:when>
        !           143:       <xsl:otherwise>
        !           144:         <xsl:value-of select="$token"/>
        !           145:       </xsl:otherwise>
        !           146:     </xsl:choose>
        !           147:   </xsl:template>
        !           148: 
        !           149:   <!-- dumps a string, making cross-reference links -->
        !           150:   <xsl:template name="dumptext">
        !           151:     <xsl:param name="text"/>
        !           152:     <xsl:variable name="ctxt" select='.'/>
        !           153:     <!-- <xsl:value-of select="$text"/> -->
        !           154:     <xsl:for-each select="str:tokenize($text, ' &#9;')">
        !           155:       <xsl:apply-templates select="$ctxt" mode='dumptoken'>
        !           156:         <xsl:with-param name="token" select="string(.)"/>
        !           157:       </xsl:apply-templates>
        !           158:       <xsl:if test="position() != last()">
        !           159:         <xsl:text> </xsl:text>
        !           160:       </xsl:if>
        !           161:     </xsl:for-each>
        !           162:   </xsl:template>
        !           163: 
        !           164:   <xsl:template match="macro" mode="toc">
        !           165:     <pre class="programlisting">
        !           166:     <xsl:text>#define </xsl:text><a href="#{@name}"><xsl:value-of select="@name"/></a>
        !           167:     </pre>
        !           168:   </xsl:template>
        !           169: 
        !           170:   <xsl:template match="variable" mode="toc">
        !           171:     <pre class="programlisting">
        !           172:     <xsl:text>Variable </xsl:text>
        !           173:     <xsl:call-template name="dumptext">
        !           174:       <xsl:with-param name="text" select="string(@type)"/>
        !           175:     </xsl:call-template>
        !           176:     <xsl:text> </xsl:text>
        !           177:     <a name="{@name}"></a>
        !           178:     <xsl:value-of select="@name"/>
        !           179:     <xsl:text>
        !           180: 
        !           181: </xsl:text>
        !           182:     </pre>
        !           183:   </xsl:template>
        !           184: 
        !           185:   <xsl:template match="typedef" mode="toc">
        !           186:     <xsl:variable name="name" select="string(@name)"/>
        !           187:     <pre class="programlisting">
        !           188:     <xsl:choose>
        !           189:       <xsl:when test="@type = 'enum'">
        !           190:        <xsl:text>Enum </xsl:text>
        !           191:        <a href="#{$name}"><xsl:value-of select="$name"/></a>
        !           192:        <xsl:text>
        !           193: </xsl:text>
        !           194:       </xsl:when>
        !           195:       <xsl:otherwise>
        !           196:        <xsl:text>Typedef </xsl:text>
        !           197:        <xsl:call-template name="dumptext">
        !           198:          <xsl:with-param name="text" select="@type"/>
        !           199:        </xsl:call-template>
        !           200:        <xsl:text> </xsl:text>
        !           201:        <a name="{$name}"><xsl:value-of select="$name"/></a>
        !           202:        <xsl:text>
        !           203: </xsl:text>
        !           204:       </xsl:otherwise>
        !           205:     </xsl:choose>
        !           206:     </pre>
        !           207:   </xsl:template>
        !           208: 
        !           209:   <xsl:template match="typedef[@type = 'enum']">
        !           210:     <xsl:variable name="name" select="string(@name)"/>
        !           211:     <h3>Enum <a name="{$name}"><xsl:value-of select="$name"/></a></h3>
        !           212:     <pre class="programlisting">
        !           213:       <xsl:text>Enum </xsl:text>
        !           214:       <xsl:value-of select="$name"/>
        !           215:       <xsl:text> {
        !           216: </xsl:text>
        !           217:       <xsl:for-each select="/api/symbols/enum[@type = $name]">
        !           218:         <xsl:sort select="@value" data-type="number" order="ascending"/>
        !           219:         <xsl:text>    </xsl:text>
        !           220:         <a name="{@name}"><xsl:value-of select="@name"/></a>
        !           221:         <xsl:text> = </xsl:text>
        !           222:         <xsl:value-of select="@value"/>
        !           223:         <xsl:if test="@info != ''">
        !           224:          <xsl:text> : </xsl:text>
        !           225:          <xsl:call-template name="dumptext">
        !           226:            <xsl:with-param name="text" select="@info"/>
        !           227:          </xsl:call-template>
        !           228:         </xsl:if>
        !           229:         <xsl:text>
        !           230: </xsl:text>
        !           231:       </xsl:for-each>
        !           232:       <xsl:text>}
        !           233: </xsl:text>
        !           234:     </pre>
        !           235:   </xsl:template>
        !           236: 
        !           237:   <xsl:template match="struct" mode="toc">
        !           238:     <pre class="programlisting">
        !           239:     <xsl:text>Structure </xsl:text><a href="#{@name}"><xsl:value-of select="@name"/></a><br/>
        !           240:     <xsl:value-of select="@type"/><xsl:text>
        !           241: </xsl:text>
        !           242:     <xsl:if test="not(field)">
        !           243:       <xsl:text>The content of this structure is not made public by the API.
        !           244: </xsl:text>
        !           245:     </xsl:if>
        !           246:     </pre>
        !           247:   </xsl:template>
        !           248: 
        !           249:   <xsl:template match="struct">
        !           250:     <h3><a name="{@name}">Structure <xsl:value-of select="@name"/></a></h3>
        !           251:     <pre class="programlisting">
        !           252:     <xsl:text>Structure </xsl:text><xsl:value-of select="@name"/><br/>
        !           253:     <xsl:value-of select="@type"/><xsl:text> {
        !           254: </xsl:text>
        !           255:     <xsl:if test="not(field)">
        !           256:       <xsl:text>The content of this structure is not made public by the API.
        !           257: </xsl:text>
        !           258:     </xsl:if>
        !           259:     <xsl:for-each select="field">
        !           260:         <xsl:text>    </xsl:text>
        !           261:        <xsl:call-template name="dumptext">
        !           262:          <xsl:with-param name="text" select="@type"/>
        !           263:        </xsl:call-template>
        !           264:        <xsl:text>&#9;</xsl:text>
        !           265:        <xsl:value-of select="@name"/>
        !           266:        <xsl:if test="@info != ''">
        !           267:          <xsl:text>&#9;: </xsl:text>
        !           268:          <xsl:call-template name="dumptext">
        !           269:            <xsl:with-param name="text" select="substring(@info, 1, 40)"/>
        !           270:          </xsl:call-template>
        !           271:        </xsl:if>
        !           272:        <xsl:text>
        !           273: </xsl:text>
        !           274:     </xsl:for-each>
        !           275:     <xsl:text>}</xsl:text>
        !           276:     </pre>
        !           277:   </xsl:template>
        !           278: 
        !           279:   <xsl:template match="macro">
        !           280:     <xsl:variable name="name" select="string(@name)"/>
        !           281:     <h3><a name="{$name}"></a>Macro: <xsl:value-of select="$name"/></h3>
        !           282:     <pre><xsl:text>#define </xsl:text><xsl:value-of select="$name"/></pre>
        !           283:     <p>
        !           284:     <xsl:call-template name="dumptext">
        !           285:       <xsl:with-param name="text" select="info"/>
        !           286:     </xsl:call-template>
        !           287:     </p><xsl:text>
        !           288: </xsl:text>
        !           289:   </xsl:template>
        !           290: 
        !           291:   <xsl:template match="function" mode="toc">
        !           292:     <xsl:variable name="name" select="string(@name)"/>
        !           293:     <xsl:variable name="nlen" select="string-length($name)"/>
        !           294:     <xsl:variable name="tlen" select="string-length(return/@type)"/>
        !           295:     <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
        !           296:     <pre class="programlisting">
        !           297:     <xsl:call-template name="dumptext">
        !           298:       <xsl:with-param name="text" select="return/@type"/>
        !           299:     </xsl:call-template>
        !           300:     <xsl:text>&#9;</xsl:text>
        !           301:     <a href="#{@name}"><xsl:value-of select="@name"/></a>
        !           302:     <xsl:if test="$blen - 40 &lt; -8">
        !           303:       <xsl:text>&#9;</xsl:text>
        !           304:     </xsl:if>
        !           305:     <xsl:if test="$blen - 40 &lt; 0">
        !           306:       <xsl:text>&#9;</xsl:text>
        !           307:     </xsl:if>
        !           308:     <xsl:text>&#9;(</xsl:text>
        !           309:     <xsl:if test="not(arg)">
        !           310:       <xsl:text>void</xsl:text>
        !           311:     </xsl:if>
        !           312:     <xsl:for-each select="arg">
        !           313:       <xsl:call-template name="dumptext">
        !           314:         <xsl:with-param name="text" select="@type"/>
        !           315:       </xsl:call-template>
        !           316:       <xsl:text> </xsl:text>
        !           317:       <xsl:value-of select="@name"/>
        !           318:       <xsl:if test="position() != last()">
        !           319:         <xsl:text>, </xsl:text><br/>
        !           320:        <xsl:if test="$blen - 40 &gt; 8">
        !           321:          <xsl:text>&#9;</xsl:text>
        !           322:        </xsl:if>
        !           323:        <xsl:if test="$blen - 40 &gt; 0">
        !           324:          <xsl:text>&#9;</xsl:text>
        !           325:        </xsl:if>
        !           326:        <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
        !           327:       </xsl:if>
        !           328:     </xsl:for-each>
        !           329:     <xsl:text>)</xsl:text>
        !           330:     </pre><xsl:text>
        !           331: </xsl:text>
        !           332:   </xsl:template>
        !           333: 
        !           334:   <xsl:template match="functype" mode="toc">
        !           335:     <xsl:variable name="name" select="string(@name)"/>
        !           336:     <xsl:variable name="nlen" select="string-length($name)"/>
        !           337:     <xsl:variable name="tlen" select="string-length(return/@type)"/>
        !           338:     <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
        !           339:     <pre class="programlisting">
        !           340:     <xsl:text>Function type: </xsl:text>
        !           341:     <a href="#{$name}"><xsl:value-of select="$name"/></a>
        !           342:     <xsl:text>
        !           343: </xsl:text>
        !           344:     <xsl:call-template name="dumptext">
        !           345:       <xsl:with-param name="text" select="return/@type"/>
        !           346:     </xsl:call-template>
        !           347:     <xsl:text>&#9;</xsl:text>
        !           348:     <a href="#{$name}"><xsl:value-of select="$name"/></a>
        !           349:     <xsl:if test="$blen - 40 &lt; -8">
        !           350:       <xsl:text>&#9;</xsl:text>
        !           351:     </xsl:if>
        !           352:     <xsl:if test="$blen - 40 &lt; 0">
        !           353:       <xsl:text>&#9;</xsl:text>
        !           354:     </xsl:if>
        !           355:     <xsl:text>&#9;(</xsl:text>
        !           356:     <xsl:if test="not(arg)">
        !           357:       <xsl:text>void</xsl:text>
        !           358:     </xsl:if>
        !           359:     <xsl:for-each select="arg">
        !           360:       <xsl:call-template name="dumptext">
        !           361:         <xsl:with-param name="text" select="@type"/>
        !           362:       </xsl:call-template>
        !           363:       <xsl:text> </xsl:text>
        !           364:       <xsl:value-of select="@name"/>
        !           365:       <xsl:if test="position() != last()">
        !           366:         <xsl:text>, </xsl:text><br/>
        !           367:        <xsl:if test="$blen - 40 &gt; 8">
        !           368:          <xsl:text>&#9;</xsl:text>
        !           369:        </xsl:if>
        !           370:        <xsl:if test="$blen - 40 &gt; 0">
        !           371:          <xsl:text>&#9;</xsl:text>
        !           372:        </xsl:if>
        !           373:        <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
        !           374:       </xsl:if>
        !           375:     </xsl:for-each>
        !           376:     <xsl:text>)
        !           377: </xsl:text>
        !           378:     </pre>
        !           379:     <xsl:text>
        !           380: </xsl:text>
        !           381:   </xsl:template>
        !           382: 
        !           383:   <xsl:template match="functype">
        !           384:     <xsl:variable name="name" select="string(@name)"/>
        !           385:     <xsl:variable name="nlen" select="string-length($name)"/>
        !           386:     <xsl:variable name="tlen" select="string-length(return/@type)"/>
        !           387:     <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
        !           388:     <h3>
        !           389:       <a name="{$name}"></a>
        !           390:       <xsl:text>Function type: </xsl:text>
        !           391:       <xsl:value-of select="$name"/>
        !           392:     </h3>
        !           393:     <pre class="programlisting">
        !           394:     <xsl:text>Function type: </xsl:text>
        !           395:     <xsl:value-of select="$name"/>
        !           396:     <xsl:text>
        !           397: </xsl:text>
        !           398:     <xsl:call-template name="dumptext">
        !           399:       <xsl:with-param name="text" select="return/@type"/>
        !           400:     </xsl:call-template>
        !           401:     <xsl:text>&#9;</xsl:text>
        !           402:     <xsl:value-of select="@name"/>
        !           403:     <xsl:if test="$blen - 40 &lt; -8">
        !           404:       <xsl:text>&#9;</xsl:text>
        !           405:     </xsl:if>
        !           406:     <xsl:if test="$blen - 40 &lt; 0">
        !           407:       <xsl:text>&#9;</xsl:text>
        !           408:     </xsl:if>
        !           409:     <xsl:text>&#9;(</xsl:text>
        !           410:     <xsl:if test="not(arg)">
        !           411:       <xsl:text>void</xsl:text>
        !           412:     </xsl:if>
        !           413:     <xsl:for-each select="arg">
        !           414:       <xsl:call-template name="dumptext">
        !           415:         <xsl:with-param name="text" select="@type"/>
        !           416:       </xsl:call-template>
        !           417:       <xsl:text> </xsl:text>
        !           418:       <xsl:value-of select="@name"/>
        !           419:       <xsl:if test="position() != last()">
        !           420:         <xsl:text>, </xsl:text><br/>
        !           421:        <xsl:if test="$blen - 40 &gt; 8">
        !           422:          <xsl:text>&#9;</xsl:text>
        !           423:        </xsl:if>
        !           424:        <xsl:if test="$blen - 40 &gt; 0">
        !           425:          <xsl:text>&#9;</xsl:text>
        !           426:        </xsl:if>
        !           427:        <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
        !           428:       </xsl:if>
        !           429:     </xsl:for-each>
        !           430:     <xsl:text>)
        !           431: </xsl:text>
        !           432:     </pre>
        !           433:     <p>
        !           434:     <xsl:call-template name="dumptext">
        !           435:       <xsl:with-param name="text" select="info"/>
        !           436:     </xsl:call-template>
        !           437:     </p>
        !           438:     <xsl:if test="arg | return">
        !           439:       <div class="variablelist"><table border="0"><col align="left"/><tbody>
        !           440:       <xsl:for-each select="arg">
        !           441:         <tr>
        !           442:           <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
        !           443:          <td>
        !           444:            <xsl:call-template name="dumptext">
        !           445:              <xsl:with-param name="text" select="@info"/>
        !           446:            </xsl:call-template>
        !           447:          </td>
        !           448:         </tr>
        !           449:       </xsl:for-each>
        !           450:       <xsl:if test="return/@info">
        !           451:         <tr>
        !           452:           <td><span class="term"><i><tt>Returns</tt></i>:</span></td>
        !           453:          <td>
        !           454:            <xsl:call-template name="dumptext">
        !           455:              <xsl:with-param name="text" select="return/@info"/>
        !           456:            </xsl:call-template>
        !           457:          </td>
        !           458:         </tr>
        !           459:       </xsl:if>
        !           460:       </tbody></table></div>
        !           461:     </xsl:if>
        !           462:     <br/>
        !           463:     <xsl:text>
        !           464: </xsl:text>
        !           465:   </xsl:template>
        !           466: 
        !           467:   <xsl:template match="function">
        !           468:     <xsl:variable name="name" select="string(@name)"/>
        !           469:     <xsl:variable name="nlen" select="string-length($name)"/>
        !           470:     <xsl:variable name="tlen" select="string-length(return/@type)"/>
        !           471:     <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
        !           472:     <h3><a name="{$name}"></a>Function: <xsl:value-of select="$name"/></h3>
        !           473:     <pre class="programlisting">
        !           474:     <xsl:call-template name="dumptext">
        !           475:       <xsl:with-param name="text" select="return/@type"/>
        !           476:     </xsl:call-template>
        !           477:     <xsl:text>&#9;</xsl:text>
        !           478:     <xsl:value-of select="@name"/>
        !           479:     <xsl:if test="$blen - 40 &lt; -8">
        !           480:       <xsl:text>&#9;</xsl:text>
        !           481:     </xsl:if>
        !           482:     <xsl:if test="$blen - 40 &lt; 0">
        !           483:       <xsl:text>&#9;</xsl:text>
        !           484:     </xsl:if>
        !           485:     <xsl:text>&#9;(</xsl:text>
        !           486:     <xsl:if test="not(arg)">
        !           487:       <xsl:text>void</xsl:text>
        !           488:     </xsl:if>
        !           489:     <xsl:for-each select="arg">
        !           490:       <xsl:call-template name="dumptext">
        !           491:         <xsl:with-param name="text" select="@type"/>
        !           492:       </xsl:call-template>
        !           493:       <xsl:text> </xsl:text>
        !           494:       <xsl:value-of select="@name"/>
        !           495:       <xsl:if test="position() != last()">
        !           496:         <xsl:text>, </xsl:text><br/>
        !           497:        <xsl:if test="$blen - 40 &gt; 8">
        !           498:          <xsl:text>&#9;</xsl:text>
        !           499:        </xsl:if>
        !           500:        <xsl:if test="$blen - 40 &gt; 0">
        !           501:          <xsl:text>&#9;</xsl:text>
        !           502:        </xsl:if>
        !           503:        <xsl:text>&#9;&#9;&#9;&#9;&#9; </xsl:text>
        !           504:       </xsl:if>
        !           505:     </xsl:for-each>
        !           506:     <xsl:text>)</xsl:text><br/>
        !           507:     <xsl:text>
        !           508: </xsl:text>
        !           509:     </pre>
        !           510:     <p>
        !           511:     <xsl:call-template name="dumptext">
        !           512:       <xsl:with-param name="text" select="info"/>
        !           513:     </xsl:call-template>
        !           514:     </p><xsl:text>
        !           515: </xsl:text>
        !           516:     <xsl:if test="arg | return/@info">
        !           517:       <div class="variablelist"><table border="0"><col align="left"/><tbody>
        !           518:       <xsl:for-each select="arg">
        !           519:         <tr>
        !           520:           <td><span class="term"><i><tt><xsl:value-of select="@name"/></tt></i>:</span></td>
        !           521:          <td>
        !           522:            <xsl:call-template name="dumptext">
        !           523:              <xsl:with-param name="text" select="@info"/>
        !           524:            </xsl:call-template>
        !           525:          </td>
        !           526:         </tr>
        !           527:       </xsl:for-each>
        !           528:       <xsl:if test="return/@info">
        !           529:         <tr>
        !           530:           <td><span class="term"><i><tt>Returns</tt></i>:</span></td>
        !           531:          <td>
        !           532:            <xsl:call-template name="dumptext">
        !           533:              <xsl:with-param name="text" select="return/@info"/>
        !           534:            </xsl:call-template>
        !           535:          </td>
        !           536:         </tr>
        !           537:       </xsl:if>
        !           538:       </tbody></table></div>
        !           539:     </xsl:if>
        !           540:   </xsl:template>
        !           541: 
        !           542:   <xsl:template match="exports" mode="toc">
        !           543:     <xsl:apply-templates select="key('symbols', string(@symbol))[1]" mode="toc"/>
        !           544:   </xsl:template>
        !           545: 
        !           546:   <xsl:template match="exports">
        !           547:     <xsl:apply-templates select="key('symbols', string(@symbol))[1]"/>
        !           548:   </xsl:template>
        !           549: 
        !           550:   <xsl:template name="description">
        !           551:     <xsl:if test="deprecated">
        !           552:       <h2 style="font-weight:bold;color:red;text-align:center">This module is deprecated</h2>
        !           553:     </xsl:if>
        !           554:     <xsl:if test="description">
        !           555:       <p><xsl:value-of select="description"/></p>
        !           556:     </xsl:if>
        !           557:   </xsl:template>
        !           558: 
        !           559: <!--
        !           560:   <xsl:template name="docomponents">
        !           561:     <xsl:param name="mode"/>
        !           562:     <xsl:apply-templates select="exports[@type='macro']" mode="$mode">
        !           563:       <xsl:sort select='@symbol'/>
        !           564:     </xsl:apply-templates>
        !           565:     <xsl:apply-templates select="exports[@type='enum']" mode="$mode">
        !           566:       <xsl:sort select='@symbol'/>
        !           567:     </xsl:apply-templates>
        !           568:     <xsl:apply-templates select="exports[@type='typedef']" mode="$mode">
        !           569:       <xsl:sort select='@symbol'/>
        !           570:     </xsl:apply-templates>
        !           571:     <xsl:apply-templates select="exports[@type='struct']" mode="$mode">
        !           572:       <xsl:sort select='@symbol'/>
        !           573:     </xsl:apply-templates>
        !           574:     <xsl:apply-templates select="exports[@type='function']" mode="$mode">
        !           575:       <xsl:sort select='@symbol'/>
        !           576:     </xsl:apply-templates>
        !           577:   </xsl:template>
        !           578: -->
        !           579: 
        !           580:   <xsl:template match="file">
        !           581:     <xsl:variable name="name" select="@name"/>
        !           582:     <xsl:variable name="title">Module <xsl:value-of select="$name"/> from <xsl:value-of select="/api/@name"/></xsl:variable>
        !           583:     <xsl:document href="{$htmldir}/libxml-{$name}.html" method="xml" encoding="UTF-8"
        !           584:       doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
        !           585:       doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        !           586:        <html>
        !           587:          <head>
        !           588:            <xsl:call-template name="style"/>
        !           589:            <xsl:call-template name="docstyle"/>
        !           590:            <title><xsl:value-of select="$title"/></title>
        !           591:          </head>
        !           592:          <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
        !           593:            <xsl:call-template name="titlebox">
        !           594:              <xsl:with-param name="title" select="$title"/>
        !           595:            </xsl:call-template>
        !           596:          <table border="0" cellpadding="4" cellspacing="0" width="100%" align="center">
        !           597:            <tr>
        !           598:              <td bgcolor="#8b7765">
        !           599:                <table border="0" cellspacing="0" cellpadding="2" width="100%">
        !           600:                  <tr>
        !           601:                    <td valign="top" width="200" bgcolor="#8b7765">
        !           602:                      <xsl:call-template name="apitoc"/>
        !           603:                    </td>
        !           604:                    <td valign="top" bgcolor="#8b7765">
        !           605:                      <table border="0" cellspacing="0" cellpadding="1" width="100%">
        !           606:                        <tr>
        !           607:                          <td>
        !           608:                            <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000">
        !           609:                              <tr>
        !           610:                                <td>
        !           611:                                  <table border="0" cellpadding="3" cellspacing="1" width="100%">
        !           612:                                    <tr>
        !           613:                                      <td bgcolor="#fffacd">
        !           614:            <xsl:call-template name="navbar"/>
        !           615:            <xsl:call-template name="description"/>
        !           616:            <xsl:choose>
        !           617:              <xsl:when test="deprecated">
        !           618:                <div class="deprecated">
        !           619:                  <h2>Table of Contents</h2>
        !           620:                  <xsl:apply-templates select="exports" mode="toc"/>
        !           621:                  <h2>Description</h2>
        !           622:                  <xsl:text>
        !           623: </xsl:text>
        !           624:                  <xsl:apply-templates select="exports"/>
        !           625:                </div>
        !           626:              </xsl:when>
        !           627:              <xsl:otherwise>
        !           628:                <h2>Table of Contents</h2>
        !           629:                <xsl:apply-templates select="exports[@type='macro']" mode="toc">
        !           630:                  <xsl:sort select='@symbol'/>
        !           631:                </xsl:apply-templates>
        !           632:                <xsl:apply-templates select="exports[@type='enum']" mode="toc">
        !           633:                  <xsl:sort select='@symbol'/>
        !           634:                </xsl:apply-templates>
        !           635:                <xsl:apply-templates select="exports[@type='typedef']" mode="toc">
        !           636:                  <xsl:sort select='@symbol'/>
        !           637:                </xsl:apply-templates>
        !           638:                <xsl:apply-templates select="exports[@type='struct']" mode="toc">
        !           639:                  <xsl:sort select='@symbol'/>
        !           640:                </xsl:apply-templates>
        !           641:                <xsl:apply-templates select="exports[@type='function']" mode="toc">
        !           642:                  <xsl:sort select='@symbol'/>
        !           643:                </xsl:apply-templates>
        !           644:                <h2>Description</h2>
        !           645:                <xsl:text>
        !           646: </xsl:text>
        !           647:                <xsl:apply-templates select="exports[@type='macro']">
        !           648:                  <xsl:sort select='@symbol'/>
        !           649:                </xsl:apply-templates>
        !           650:                <xsl:apply-templates select="exports[@type='enum']">
        !           651:                  <xsl:sort select='@symbol'/>
        !           652:                </xsl:apply-templates>
        !           653:                <xsl:apply-templates select="exports[@type='typedef']">
        !           654:                  <xsl:sort select='@symbol'/>
        !           655:                </xsl:apply-templates>
        !           656:                <xsl:apply-templates select="exports[@type='struct']">
        !           657:                  <xsl:sort select='@symbol'/>
        !           658:                </xsl:apply-templates>
        !           659:                <xsl:apply-templates select="exports[@type='function']">
        !           660:                  <xsl:sort select='@symbol'/>
        !           661:                </xsl:apply-templates>
        !           662:              </xsl:otherwise>
        !           663:            </xsl:choose>
        !           664:                                        <p><a href="{$href_base}bugs.html">Daniel Veillard</a></p>
        !           665:                                      </td>
        !           666:                                    </tr>
        !           667:                                  </table>
        !           668:                                </td>
        !           669:                              </tr>
        !           670:                            </table>
        !           671:                          </td>
        !           672:                        </tr>
        !           673:                      </table>
        !           674:                    </td>
        !           675:                  </tr>
        !           676:                </table>
        !           677:              </td>
        !           678:            </tr>
        !           679:          </table>
        !           680:          </body>
        !           681:        </html>
        !           682:     </xsl:document>
        !           683:   </xsl:template>
        !           684: 
        !           685:   <xsl:template match="file" mode="toc">
        !           686:     <xsl:variable name="name" select="@name"/>
        !           687:     <li>
        !           688:       <a href="libxml-{$name}.html"><xsl:value-of select="$name"/></a>
        !           689:       <xsl:text>: </xsl:text>
        !           690:       <xsl:value-of select="summary"/>
        !           691:     </li>
        !           692:   </xsl:template>
        !           693: 
        !           694:   <xsl:template name="mainpage">
        !           695:     <xsl:param name="file" select="concat($htmldir, '/index.html')"/>
        !           696:     <xsl:variable name="title">Reference Manual for <xsl:value-of select="/api/@name"/></xsl:variable>
        !           697:     <xsl:document href="{$file}" method="xml" encoding="UTF-8"
        !           698:       doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
        !           699:       doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        !           700:        <html>
        !           701:          <head>
        !           702:            <xsl:call-template name="style"/>
        !           703:            <xsl:call-template name="docstyle"/>
        !           704:            <title><xsl:value-of select="$title"/></title>
        !           705:          </head>
        !           706:          <body bgcolor="#8b7765" text="#000000" link="#a06060" vlink="#000000">
        !           707:            <xsl:call-template name="titlebox">
        !           708:              <xsl:with-param name="title" select="$title"/>
        !           709:            </xsl:call-template>
        !           710:          <table border="0" cellpadding="4" cellspacing="0" width="100%" align="center">
        !           711:            <tr>
        !           712:              <td bgcolor="#8b7765">
        !           713:                <table border="0" cellspacing="0" cellpadding="2" width="100%">
        !           714:                  <tr>
        !           715:                    <td valign="top" width="200" bgcolor="#8b7765">
        !           716:                      <xsl:call-template name="apitoc"/>
        !           717:                    </td>
        !           718:                    <td valign="top" bgcolor="#8b7765">
        !           719:                      <table border="0" cellspacing="0" cellpadding="1" width="100%">
        !           720:                        <tr>
        !           721:                          <td>
        !           722:                            <table border="0" cellspacing="0" cellpadding="1" width="100%" bgcolor="#000000">
        !           723:                              <tr>
        !           724:                                <td>
        !           725:                                  <table border="0" cellpadding="3" cellspacing="1" width="100%">
        !           726:                                    <tr>
        !           727:                                      <td bgcolor="#fffacd">
        !           728:            <h2>Table of Contents</h2>
        !           729:            <ul>
        !           730:            <xsl:apply-templates select="/api/files/file" mode="toc"/>
        !           731:            </ul>
        !           732:                                        <p><a href="{$href_base}bugs.html">Daniel Veillard</a></p>
        !           733:                                      </td>
        !           734:                                    </tr>
        !           735:                                  </table>
        !           736:                                </td>
        !           737:                              </tr>
        !           738:                            </table>
        !           739:                          </td>
        !           740:                        </tr>
        !           741:                      </table>
        !           742:                    </td>
        !           743:                  </tr>
        !           744:                </table>
        !           745:              </td>
        !           746:            </tr>
        !           747:          </table>
        !           748:          </body>
        !           749:        </html>
        !           750:     </xsl:document>
        !           751:   </xsl:template>
        !           752: 
        !           753:   <xsl:template match="/">
        !           754:     <!-- Save the main index.html as well as a couple of copies -->
        !           755:     <xsl:call-template name="mainpage"/>
        !           756:     <xsl:call-template name="mainpage">
        !           757:       <xsl:with-param name="file" select="concat($htmldir, '/book1.html')"/>
        !           758:     </xsl:call-template>
        !           759:     <xsl:call-template name="mainpage">
        !           760:       <xsl:with-param name="file" select="concat($htmldir, '/libxml-lib.html')"/>
        !           761:     </xsl:call-template>
        !           762:     <!-- now build the file for each of the modules -->
        !           763:     <xsl:apply-templates select="/api/files/file"/>
        !           764:   </xsl:template>
        !           765: 
        !           766: </xsl:stylesheet>

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