Blame doc/wiki.xsl

Packit 423ecb
Packit 423ecb
Packit 423ecb
  Stylesheet to generate the HTML documentation from an XML API descriptions:
Packit 423ecb
  xsltproc wiki.xsl libxml2-api.xml
Packit 423ecb
Packit 423ecb
  Daniel Veillard
Packit 423ecb
-->
Packit 423ecb
Packit 423ecb
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
Packit 423ecb
  xmlns:exsl="http://exslt.org/common"
Packit 423ecb
  xmlns:str="http://exslt.org/strings"
Packit 423ecb
  extension-element-prefixes="exsl str"
Packit 423ecb
  exclude-result-prefixes="exsl str">
Packit 423ecb
Packit 423ecb
  
Packit 423ecb
  
Packit 423ecb
      doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
Packit 423ecb
      doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
Packit 423ecb
Packit 423ecb
  
Packit 423ecb
  <xsl:key name="symbols" match="/api/symbols/*" use="@name"/>
Packit 423ecb
Packit 423ecb
  
Packit 423ecb
  <xsl:variable name="htmldir">wiki</xsl:variable>
Packit 423ecb
  <xsl:variable name="href_base">../</xsl:variable>
Packit 423ecb
Packit 423ecb
  <xsl:template name="style">
Packit 423ecb
    <link rel="SHORTCUT ICON" href="/favicon.ico"/> 
Packit 423ecb
    <style type="text/css">
Packit 423ecb
TD {font-family: Verdana,Arial,Helvetica}
Packit 423ecb
BODY {font-family: Verdana,Arial,Helvetica; margin-top: 2em; margin-left: 0em; margin-right: 0em}
Packit 423ecb
H1 {font-family: Verdana,Arial,Helvetica}
Packit 423ecb
H2 {font-family: Verdana,Arial,Helvetica}
Packit 423ecb
H3 {font-family: Verdana,Arial,Helvetica}
Packit 423ecb
A:link, A:visited, A:active { text-decoration: underline }
Packit 423ecb
</style>
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template name="docstyle">
Packit 423ecb
    <style type="text/css">
Packit 423ecb
      div.deprecated pre.programlisting {border-style: double;border-color:red}
Packit 423ecb
      pre.programlisting {border-style: double;}
Packit 423ecb
    </style>
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  
Packit 423ecb
       be the API one and not the result tree from the tokenize() result,
Packit 423ecb
       because the keys are only defined on the main document -->
Packit 423ecb
  <xsl:template mode="dumptoken" match='*'>
Packit 423ecb
    <xsl:param name="token"/>
Packit 423ecb
    <xsl:variable name="ref" select="key('symbols', $token)"/>
Packit 423ecb
    <xsl:choose>
Packit 423ecb
      <xsl:when test="$ref">
Packit 423ecb
        <xsl:value-of select="$token"/>
Packit 423ecb
      </xsl:when>
Packit 423ecb
      <xsl:otherwise>
Packit 423ecb
        <xsl:value-of select="$token"/>
Packit 423ecb
      </xsl:otherwise>
Packit 423ecb
    </xsl:choose>
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  
Packit 423ecb
  <xsl:template name="dumptext">
Packit 423ecb
    <xsl:param name="text"/>
Packit 423ecb
    <xsl:variable name="ctxt" select='.'/>
Packit 423ecb
    
Packit 423ecb
    <xsl:for-each select="str:tokenize($text, ' 	')">
Packit 423ecb
      <xsl:apply-templates select="$ctxt" mode='dumptoken'>
Packit 423ecb
        <xsl:with-param name="token" select="string(.)"/>
Packit 423ecb
      </xsl:apply-templates>
Packit 423ecb
      <xsl:if test="position() != last()">
Packit 423ecb
        <xsl:text> </xsl:text>
Packit 423ecb
      </xsl:if>
Packit 423ecb
    </xsl:for-each>
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template match="macro" mode="toc">
Packit 423ecb
    
Packit 423ecb
    <xsl:text>#define </xsl:text><xsl:value-of select="@name"/>
Packit 423ecb
    
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template match="variable" mode="toc">
Packit 423ecb
    
Packit 423ecb
    <xsl:text>Variable </xsl:text>
Packit 423ecb
    <xsl:call-template name="dumptext">
Packit 423ecb
      <xsl:with-param name="text" select="string(@type)"/>
Packit 423ecb
    </xsl:call-template>
Packit 423ecb
    <xsl:text> </xsl:text>
Packit 423ecb
    
Packit 423ecb
    <xsl:value-of select="@name"/>
Packit 423ecb
    <xsl:text>
Packit 423ecb
Packit 423ecb
</xsl:text>
Packit 423ecb
    
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template match="typedef" mode="toc">
Packit 423ecb
    <xsl:variable name="name" select="string(@name)"/>
Packit 423ecb
    
Packit 423ecb
    <xsl:choose>
Packit 423ecb
      <xsl:when test="@type = 'enum'">
Packit 423ecb
	<xsl:text>Enum </xsl:text>
Packit 423ecb
	<xsl:value-of select="$name"/>
Packit 423ecb
	<xsl:text>
Packit 423ecb
</xsl:text>
Packit 423ecb
      </xsl:when>
Packit 423ecb
      <xsl:otherwise>
Packit 423ecb
	<xsl:text>Typedef </xsl:text>
Packit 423ecb
	<xsl:call-template name="dumptext">
Packit 423ecb
	  <xsl:with-param name="text" select="@type"/>
Packit 423ecb
	</xsl:call-template>
Packit 423ecb
	<xsl:text> </xsl:text>
Packit 423ecb
	<xsl:value-of select="$name"/>
Packit 423ecb
	<xsl:text>
Packit 423ecb
</xsl:text>
Packit 423ecb
      </xsl:otherwise>
Packit 423ecb
    </xsl:choose>
Packit 423ecb
    
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template match="typedef[@type = 'enum']">
Packit 423ecb
    <xsl:variable name="name" select="string(@name)"/>
Packit 423ecb
    

Enum <xsl:value-of select="$name"/>

Packit 423ecb
    
Packit 423ecb
      <xsl:text>Enum </xsl:text>
Packit 423ecb
      <xsl:value-of select="$name"/>
Packit 423ecb
      <xsl:text> {
Packit 423ecb
</xsl:text>
Packit 423ecb
      <xsl:for-each select="/api/symbols/enum[@type = $name]">
Packit 423ecb
        <xsl:sort select="@value" data-type="number" order="ascending"/>
Packit 423ecb
        <xsl:text>    </xsl:text>
Packit 423ecb
        <xsl:value-of select="@name"/>
Packit 423ecb
        <xsl:text> = </xsl:text>
Packit 423ecb
        <xsl:value-of select="@value"/>
Packit 423ecb
        <xsl:if test="@info != ''">
Packit 423ecb
	  <xsl:text> : </xsl:text>
Packit 423ecb
	  <xsl:call-template name="dumptext">
Packit 423ecb
	    <xsl:with-param name="text" select="@info"/>
Packit 423ecb
	  </xsl:call-template>
Packit 423ecb
        </xsl:if>
Packit 423ecb
        <xsl:text>
Packit 423ecb
</xsl:text>
Packit 423ecb
      </xsl:for-each>
Packit 423ecb
      <xsl:text>}
Packit 423ecb
</xsl:text>
Packit 423ecb
    
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template match="struct" mode="toc">
Packit 423ecb
    
Packit 423ecb
    <xsl:text>Structure </xsl:text><xsl:value-of select="@name"/>
Packit 423ecb
    <xsl:value-of select="@type"/><xsl:text>
Packit 423ecb
</xsl:text>
Packit 423ecb
    <xsl:if test="not(field)">
Packit 423ecb
      <xsl:text>The content of this structure is not made public by the API.
Packit 423ecb
</xsl:text>
Packit 423ecb
    </xsl:if>
Packit 423ecb
    
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template match="struct">
Packit 423ecb
    

Structure <xsl:value-of select="@name"/>

Packit 423ecb
    
Packit 423ecb
    <xsl:text>Structure </xsl:text><xsl:value-of select="@name"/>
Packit 423ecb
    <xsl:value-of select="@type"/><xsl:text> {
Packit 423ecb
</xsl:text>
Packit 423ecb
    <xsl:if test="not(field)">
Packit 423ecb
      <xsl:text>The content of this structure is not made public by the API.
Packit 423ecb
</xsl:text>
Packit 423ecb
    </xsl:if>
Packit 423ecb
    <xsl:for-each select="field">
Packit 423ecb
        <xsl:text>    </xsl:text>
Packit 423ecb
	<xsl:call-template name="dumptext">
Packit 423ecb
	  <xsl:with-param name="text" select="@type"/>
Packit 423ecb
	</xsl:call-template>
Packit 423ecb
	<xsl:text>	</xsl:text>
Packit 423ecb
	<xsl:value-of select="@name"/>
Packit 423ecb
	<xsl:if test="@info != ''">
Packit 423ecb
	  <xsl:text>	: </xsl:text>
Packit 423ecb
	  <xsl:call-template name="dumptext">
Packit 423ecb
	    <xsl:with-param name="text" select="substring(@info, 1, 40)"/>
Packit 423ecb
	  </xsl:call-template>
Packit 423ecb
	</xsl:if>
Packit 423ecb
	<xsl:text>
Packit 423ecb
</xsl:text>
Packit 423ecb
    </xsl:for-each>
Packit 423ecb
    <xsl:text>}</xsl:text>
Packit 423ecb
    
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template match="macro">
Packit 423ecb
    <xsl:variable name="name" select="string(@name)"/>
Packit 423ecb
    

Macro: <xsl:value-of select="$name"/>

Packit 423ecb
    
<xsl:text>#define </xsl:text><xsl:value-of select="$name"/>
Packit 423ecb
    

Packit 423ecb
    <xsl:call-template name="dumptext">
Packit 423ecb
      <xsl:with-param name="text" select="info"/>
Packit 423ecb
    </xsl:call-template>
Packit 423ecb
    

<xsl:text>
Packit 423ecb
</xsl:text>
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template match="function" mode="toc">
Packit 423ecb
    <xsl:variable name="name" select="string(@name)"/>
Packit 423ecb
    <xsl:variable name="nlen" select="string-length($name)"/>
Packit 423ecb
    <xsl:variable name="tlen" select="string-length(return/@type)"/>
Packit 423ecb
    <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
Packit 423ecb
    
Packit 423ecb
    <xsl:call-template name="dumptext">
Packit 423ecb
      <xsl:with-param name="text" select="return/@type"/>
Packit 423ecb
    </xsl:call-template>
Packit 423ecb
    <xsl:text>	</xsl:text>
Packit 423ecb
    <xsl:value-of select="@name"/>
Packit 423ecb
    <xsl:if test="$blen - 40 < -8">
Packit 423ecb
      <xsl:text>	</xsl:text>
Packit 423ecb
    </xsl:if>
Packit 423ecb
    <xsl:if test="$blen - 40 < 0">
Packit 423ecb
      <xsl:text>	</xsl:text>
Packit 423ecb
    </xsl:if>
Packit 423ecb
    <xsl:text>	(</xsl:text>
Packit 423ecb
    <xsl:if test="not(arg)">
Packit 423ecb
      <xsl:text>void</xsl:text>
Packit 423ecb
    </xsl:if>
Packit 423ecb
    <xsl:for-each select="arg">
Packit 423ecb
      <xsl:call-template name="dumptext">
Packit 423ecb
        <xsl:with-param name="text" select="@type"/>
Packit 423ecb
      </xsl:call-template>
Packit 423ecb
      <xsl:text> </xsl:text>
Packit 423ecb
      <xsl:value-of select="@name"/>
Packit 423ecb
      <xsl:if test="position() != last()">
Packit 423ecb
        <xsl:text>, </xsl:text>
Packit 423ecb
	<xsl:if test="$blen - 40 > 8">
Packit 423ecb
	  <xsl:text>	</xsl:text>
Packit 423ecb
	</xsl:if>
Packit 423ecb
	<xsl:if test="$blen - 40 > 0">
Packit 423ecb
	  <xsl:text>	</xsl:text>
Packit 423ecb
	</xsl:if>
Packit 423ecb
	<xsl:text>					 </xsl:text>
Packit 423ecb
      </xsl:if>
Packit 423ecb
    </xsl:for-each>
Packit 423ecb
    <xsl:text>)</xsl:text>
Packit 423ecb
    <xsl:text>
Packit 423ecb
</xsl:text>
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template match="functype" mode="toc">
Packit 423ecb
    <xsl:variable name="name" select="string(@name)"/>
Packit 423ecb
    <xsl:variable name="nlen" select="string-length($name)"/>
Packit 423ecb
    <xsl:variable name="tlen" select="string-length(return/@type)"/>
Packit 423ecb
    <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
Packit 423ecb
    
Packit 423ecb
    <xsl:text>Function type: </xsl:text>
Packit 423ecb
    <xsl:value-of select="$name"/>
Packit 423ecb
    <xsl:text>
Packit 423ecb
</xsl:text>
Packit 423ecb
    <xsl:call-template name="dumptext">
Packit 423ecb
      <xsl:with-param name="text" select="return/@type"/>
Packit 423ecb
    </xsl:call-template>
Packit 423ecb
    <xsl:text>	</xsl:text>
Packit 423ecb
    <xsl:value-of select="$name"/>
Packit 423ecb
    <xsl:if test="$blen - 40 < -8">
Packit 423ecb
      <xsl:text>	</xsl:text>
Packit 423ecb
    </xsl:if>
Packit 423ecb
    <xsl:if test="$blen - 40 < 0">
Packit 423ecb
      <xsl:text>	</xsl:text>
Packit 423ecb
    </xsl:if>
Packit 423ecb
    <xsl:text>	(</xsl:text>
Packit 423ecb
    <xsl:if test="not(arg)">
Packit 423ecb
      <xsl:text>void</xsl:text>
Packit 423ecb
    </xsl:if>
Packit 423ecb
    <xsl:for-each select="arg">
Packit 423ecb
      <xsl:call-template name="dumptext">
Packit 423ecb
        <xsl:with-param name="text" select="@type"/>
Packit 423ecb
      </xsl:call-template>
Packit 423ecb
      <xsl:text> </xsl:text>
Packit 423ecb
      <xsl:value-of select="@name"/>
Packit 423ecb
      <xsl:if test="position() != last()">
Packit 423ecb
        <xsl:text>, </xsl:text>
Packit 423ecb
	<xsl:if test="$blen - 40 > 8">
Packit 423ecb
	  <xsl:text>	</xsl:text>
Packit 423ecb
	</xsl:if>
Packit 423ecb
	<xsl:if test="$blen - 40 > 0">
Packit 423ecb
	  <xsl:text>	</xsl:text>
Packit 423ecb
	</xsl:if>
Packit 423ecb
	<xsl:text>					 </xsl:text>
Packit 423ecb
      </xsl:if>
Packit 423ecb
    </xsl:for-each>
Packit 423ecb
    <xsl:text>)
Packit 423ecb
</xsl:text>
Packit 423ecb
    
Packit 423ecb
    <xsl:text>
Packit 423ecb
</xsl:text>
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template match="functype">
Packit 423ecb
    <xsl:variable name="name" select="string(@name)"/>
Packit 423ecb
    <xsl:variable name="nlen" select="string-length($name)"/>
Packit 423ecb
    <xsl:variable name="tlen" select="string-length(return/@type)"/>
Packit 423ecb
    <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
Packit 423ecb
    

Packit 423ecb
      
Packit 423ecb
      <xsl:text>Function type: </xsl:text>
Packit 423ecb
      <xsl:value-of select="$name"/>
Packit 423ecb
    
Packit 423ecb
    
Packit 423ecb
    <xsl:text>Function type: </xsl:text>
Packit 423ecb
    <xsl:value-of select="$name"/>
Packit 423ecb
    <xsl:text>
Packit 423ecb
</xsl:text>
Packit 423ecb
    <xsl:call-template name="dumptext">
Packit 423ecb
      <xsl:with-param name="text" select="return/@type"/>
Packit 423ecb
    </xsl:call-template>
Packit 423ecb
    <xsl:text>	</xsl:text>
Packit 423ecb
    <xsl:value-of select="@name"/>
Packit 423ecb
    <xsl:if test="$blen - 40 < -8">
Packit 423ecb
      <xsl:text>	</xsl:text>
Packit 423ecb
    </xsl:if>
Packit 423ecb
    <xsl:if test="$blen - 40 < 0">
Packit 423ecb
      <xsl:text>	</xsl:text>
Packit 423ecb
    </xsl:if>
Packit 423ecb
    <xsl:text>	(</xsl:text>
Packit 423ecb
    <xsl:if test="not(arg)">
Packit 423ecb
      <xsl:text>void</xsl:text>
Packit 423ecb
    </xsl:if>
Packit 423ecb
    <xsl:for-each select="arg">
Packit 423ecb
      <xsl:call-template name="dumptext">
Packit 423ecb
        <xsl:with-param name="text" select="@type"/>
Packit 423ecb
      </xsl:call-template>
Packit 423ecb
      <xsl:text> </xsl:text>
Packit 423ecb
      <xsl:value-of select="@name"/>
Packit 423ecb
      <xsl:if test="position() != last()">
Packit 423ecb
        <xsl:text>, </xsl:text>
Packit 423ecb
	<xsl:if test="$blen - 40 > 8">
Packit 423ecb
	  <xsl:text>	</xsl:text>
Packit 423ecb
	</xsl:if>
Packit 423ecb
	<xsl:if test="$blen - 40 > 0">
Packit 423ecb
	  <xsl:text>	</xsl:text>
Packit 423ecb
	</xsl:if>
Packit 423ecb
	<xsl:text>					 </xsl:text>
Packit 423ecb
      </xsl:if>
Packit 423ecb
    </xsl:for-each>
Packit 423ecb
    <xsl:text>)
Packit 423ecb
</xsl:text>
Packit 423ecb
    
Packit 423ecb
    

Packit 423ecb
    <xsl:call-template name="dumptext">
Packit 423ecb
      <xsl:with-param name="text" select="info"/>
Packit 423ecb
    </xsl:call-template>
Packit 423ecb
    

Packit 423ecb
    <xsl:if test="arg | return">
Packit 423ecb
      
Packit 423ecb
      <xsl:for-each select="arg">
Packit 423ecb
        
Packit 423ecb
          <tt><xsl:value-of select="@name"/></tt>:
Packit 423ecb
	  
Packit 423ecb
	    <xsl:call-template name="dumptext">
Packit 423ecb
	      <xsl:with-param name="text" select="@info"/>
Packit 423ecb
	    </xsl:call-template>
Packit 423ecb
	  
Packit 423ecb
        
Packit 423ecb
      </xsl:for-each>
Packit 423ecb
      <xsl:if test="return/@info">
Packit 423ecb
        
Packit 423ecb
          <tt>Returns</tt>:
Packit 423ecb
	  
Packit 423ecb
	    <xsl:call-template name="dumptext">
Packit 423ecb
	      <xsl:with-param name="text" select="return/@info"/>
Packit 423ecb
	    </xsl:call-template>
Packit 423ecb
	  
Packit 423ecb
        
Packit 423ecb
      </xsl:if>
Packit 423ecb
      
Packit 423ecb
    </xsl:if>
Packit 423ecb
    
Packit 423ecb
    <xsl:text>
Packit 423ecb
</xsl:text>
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template match="function">
Packit 423ecb
    <xsl:variable name="name" select="string(@name)"/>
Packit 423ecb
    <xsl:variable name="nlen" select="string-length($name)"/>
Packit 423ecb
    <xsl:variable name="tlen" select="string-length(return/@type)"/>
Packit 423ecb
    <xsl:variable name="blen" select="(($nlen + 8) - (($nlen + 8) mod 8)) + (($tlen + 8) - (($tlen + 8) mod 8))"/>
Packit 423ecb
    

Function: <xsl:value-of select="$name"/>

Packit 423ecb
    
Packit 423ecb
    <xsl:call-template name="dumptext">
Packit 423ecb
      <xsl:with-param name="text" select="return/@type"/>
Packit 423ecb
    </xsl:call-template>
Packit 423ecb
    <xsl:text>	</xsl:text>
Packit 423ecb
    <xsl:value-of select="@name"/>
Packit 423ecb
    <xsl:if test="$blen - 40 < -8">
Packit 423ecb
      <xsl:text>	</xsl:text>
Packit 423ecb
    </xsl:if>
Packit 423ecb
    <xsl:if test="$blen - 40 < 0">
Packit 423ecb
      <xsl:text>	</xsl:text>
Packit 423ecb
    </xsl:if>
Packit 423ecb
    <xsl:text>	(</xsl:text>
Packit 423ecb
    <xsl:if test="not(arg)">
Packit 423ecb
      <xsl:text>void</xsl:text>
Packit 423ecb
    </xsl:if>
Packit 423ecb
    <xsl:for-each select="arg">
Packit 423ecb
      <xsl:call-template name="dumptext">
Packit 423ecb
        <xsl:with-param name="text" select="@type"/>
Packit 423ecb
      </xsl:call-template>
Packit 423ecb
      <xsl:text> </xsl:text>
Packit 423ecb
      <xsl:value-of select="@name"/>
Packit 423ecb
      <xsl:if test="position() != last()">
Packit 423ecb
        <xsl:text>, </xsl:text>
Packit 423ecb
	<xsl:if test="$blen - 40 > 8">
Packit 423ecb
	  <xsl:text>	</xsl:text>
Packit 423ecb
	</xsl:if>
Packit 423ecb
	<xsl:if test="$blen - 40 > 0">
Packit 423ecb
	  <xsl:text>	</xsl:text>
Packit 423ecb
	</xsl:if>
Packit 423ecb
	<xsl:text>					 </xsl:text>
Packit 423ecb
      </xsl:if>
Packit 423ecb
    </xsl:for-each>
Packit 423ecb
    <xsl:text>)</xsl:text>
Packit 423ecb
    <xsl:text>
Packit 423ecb
</xsl:text>
Packit 423ecb
    
Packit 423ecb
    

Packit 423ecb
    <xsl:call-template name="dumptext">
Packit 423ecb
      <xsl:with-param name="text" select="info"/>
Packit 423ecb
    </xsl:call-template>
Packit 423ecb
    

<xsl:text>
Packit 423ecb
</xsl:text>
Packit 423ecb
    <xsl:if test="arg | return/@info">
Packit 423ecb
      
Packit 423ecb
      <xsl:for-each select="arg">
Packit 423ecb
        
Packit 423ecb
          <tt><xsl:value-of select="@name"/></tt>:
Packit 423ecb
	  
Packit 423ecb
	    <xsl:call-template name="dumptext">
Packit 423ecb
	      <xsl:with-param name="text" select="@info"/>
Packit 423ecb
	    </xsl:call-template>
Packit 423ecb
	  
Packit 423ecb
        
Packit 423ecb
      </xsl:for-each>
Packit 423ecb
      <xsl:if test="return/@info">
Packit 423ecb
        
Packit 423ecb
          <tt>Returns</tt>:
Packit 423ecb
	  
Packit 423ecb
	    <xsl:call-template name="dumptext">
Packit 423ecb
	      <xsl:with-param name="text" select="return/@info"/>
Packit 423ecb
	    </xsl:call-template>
Packit 423ecb
	  
Packit 423ecb
        
Packit 423ecb
      </xsl:if>
Packit 423ecb
      
Packit 423ecb
    </xsl:if>
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template match="exports" mode="toc">
Packit 423ecb
    <xsl:apply-templates select="key('symbols', string(@symbol))[1]" mode="toc"/>
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template match="exports">
Packit 423ecb
    <xsl:apply-templates select="key('symbols', string(@symbol))[1]"/>
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template name="description">
Packit 423ecb
    <xsl:if test="deprecated">
Packit 423ecb
      

This module is deprecated

Packit 423ecb
    </xsl:if>
Packit 423ecb
    <xsl:if test="description">
Packit 423ecb
      

<xsl:value-of select="description"/>

Packit 423ecb
    </xsl:if>
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template name="docomponents">
Packit 423ecb
    <xsl:param name="mode"/>
Packit 423ecb
    <xsl:apply-templates select="exports[@type='macro']" mode="$mode">
Packit 423ecb
      <xsl:sort select='@symbol'/>
Packit 423ecb
    </xsl:apply-templates>
Packit 423ecb
    <xsl:apply-templates select="exports[@type='enum']" mode="$mode">
Packit 423ecb
      <xsl:sort select='@symbol'/>
Packit 423ecb
    </xsl:apply-templates>
Packit 423ecb
    <xsl:apply-templates select="exports[@type='typedef']" mode="$mode">
Packit 423ecb
      <xsl:sort select='@symbol'/>
Packit 423ecb
    </xsl:apply-templates>
Packit 423ecb
    <xsl:apply-templates select="exports[@type='struct']" mode="$mode">
Packit 423ecb
      <xsl:sort select='@symbol'/>
Packit 423ecb
    </xsl:apply-templates>
Packit 423ecb
    <xsl:apply-templates select="exports[@type='function']" mode="$mode">
Packit 423ecb
      <xsl:sort select='@symbol'/>
Packit 423ecb
    </xsl:apply-templates>
Packit 423ecb
  </xsl:template>
Packit 423ecb
  
Packit 423ecb
  <xsl:template match="file">
Packit 423ecb
    <xsl:variable name="name" select="@name"/>
Packit 423ecb
    <xsl:variable name="title">Module <xsl:value-of select="$name"/> from <xsl:value-of select="/api/@name"/></xsl:variable>
Packit 423ecb
    
Packit 423ecb
      doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
Packit 423ecb
      doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Packit 423ecb
	    <xsl:call-template name="style"/>
Packit 423ecb
	    <xsl:call-template name="docstyle"/>
Packit 423ecb
      
Packit 423ecb
        
Packit 423ecb
          
Packit 423ecb
	    <xsl:call-template name="description"/>
Packit 423ecb
	    <xsl:choose>
Packit 423ecb
	      <xsl:when test="deprecated">
Packit 423ecb
	        
Packit 423ecb
		  

Table of Contents

Packit 423ecb
		  <xsl:apply-templates select="exports" mode="toc"/>
Packit 423ecb
		  

Description

Packit 423ecb
		  <xsl:text>
Packit 423ecb
</xsl:text>
Packit 423ecb
		  <xsl:apply-templates select="exports"/>
Packit 423ecb
		
Packit 423ecb
	      </xsl:when>
Packit 423ecb
	      <xsl:otherwise>
Packit 423ecb
		

Table of Contents

Packit 423ecb
		<xsl:apply-templates select="exports[@type='macro']" mode="toc">
Packit 423ecb
		  <xsl:sort select='@symbol'/>
Packit 423ecb
		</xsl:apply-templates>
Packit 423ecb
		<xsl:apply-templates select="exports[@type='enum']" mode="toc">
Packit 423ecb
		  <xsl:sort select='@symbol'/>
Packit 423ecb
		</xsl:apply-templates>
Packit 423ecb
		<xsl:apply-templates select="exports[@type='typedef']" mode="toc">
Packit 423ecb
		  <xsl:sort select='@symbol'/>
Packit 423ecb
		</xsl:apply-templates>
Packit 423ecb
		<xsl:apply-templates select="exports[@type='struct']" mode="toc">
Packit 423ecb
		  <xsl:sort select='@symbol'/>
Packit 423ecb
		</xsl:apply-templates>
Packit 423ecb
		<xsl:apply-templates select="exports[@type='function']" mode="toc">
Packit 423ecb
		  <xsl:sort select='@symbol'/>
Packit 423ecb
		</xsl:apply-templates>
Packit 423ecb
		

Description

Packit 423ecb
		<xsl:text>
Packit 423ecb
</xsl:text>
Packit 423ecb
		<xsl:apply-templates select="exports[@type='macro']">
Packit 423ecb
		  <xsl:sort select='@symbol'/>
Packit 423ecb
		</xsl:apply-templates>
Packit 423ecb
		<xsl:apply-templates select="exports[@type='enum']">
Packit 423ecb
		  <xsl:sort select='@symbol'/>
Packit 423ecb
		</xsl:apply-templates>
Packit 423ecb
		<xsl:apply-templates select="exports[@type='typedef']">
Packit 423ecb
		  <xsl:sort select='@symbol'/>
Packit 423ecb
		</xsl:apply-templates>
Packit 423ecb
		<xsl:apply-templates select="exports[@type='struct']">
Packit 423ecb
		  <xsl:sort select='@symbol'/>
Packit 423ecb
		</xsl:apply-templates>
Packit 423ecb
		<xsl:apply-templates select="exports[@type='function']">
Packit 423ecb
		  <xsl:sort select='@symbol'/>
Packit 423ecb
		</xsl:apply-templates>
Packit 423ecb
	      </xsl:otherwise>
Packit 423ecb
	    </xsl:choose>
Packit 423ecb
    
Packit 423ecb
  
Packit 423ecb
Packit 423ecb
    </xsl:document>
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template match="file" mode="toc">
Packit 423ecb
    <xsl:variable name="name" select="@name"/>
Packit 423ecb
    <xsl:value-of select="$name"/>
Packit 423ecb
      <xsl:value-of select="summary"/>
Packit 423ecb
      

Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template name="mainpage">
Packit 423ecb
    <xsl:param name="file" select="concat($htmldir, '/libxml-index.html')"/>
Packit 423ecb
    <xsl:variable name="title">Reference Manual for <xsl:value-of select="/api/@name"/></xsl:variable>
Packit 423ecb
    
Packit 423ecb
      doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN"
Packit 423ecb
      doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Packit 423ecb
      <xsl:call-template name="style"/>
Packit 423ecb
      <xsl:call-template name="docstyle"/>
Packit 423ecb
      
Packit 423ecb
        
Packit 423ecb
          
Packit 423ecb
            <xsl:apply-templates select="/api/files/file" mode="toc"/>
Packit 423ecb
          
Packit 423ecb
        
Packit 423ecb
      
Packit 423ecb
    </xsl:document>
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template match="/">
Packit 423ecb
    
Packit 423ecb
    <xsl:call-template name="mainpage"/>
Packit 423ecb
    
Packit 423ecb
    <xsl:apply-templates select="/api/files/file"/>
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
</xsl:stylesheet>