Blame doc/devhelp/html.xsl

Packit 423ecb
Packit 423ecb
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
  <xsl:output method="xml" encoding="UTF-8" indent="yes"/>
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
Packit 423ecb
Packit 423ecb
             The following builds the Synopsis section
Packit 423ecb
Packit 423ecb
-->
Packit 423ecb
  <xsl:template mode="synopsis" 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
    <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 mode="synopsis" 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
    <xsl:text>typedef </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>);</xsl:text>
Packit 423ecb
    <xsl:text>
Packit 423ecb
</xsl:text>
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template mode="synopsis" match="exports[@type='function']">
Packit 423ecb
    <xsl:variable name="def" select="key('symbols',@symbol)"/>
Packit 423ecb
    <xsl:apply-templates mode="synopsis" select="$def"/>
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template mode="synopsis" match="exports[@type='typedef']">
Packit 423ecb
    <xsl:text>typedef </xsl:text>
Packit 423ecb
    <xsl:call-template name="dumptext">
Packit 423ecb
      <xsl:with-param name="text" select="string(key('symbols',@symbol)/@type)"/>
Packit 423ecb
    </xsl:call-template>
Packit 423ecb
    <xsl:text> </xsl:text>
Packit 423ecb
    <xsl:value-of select="@symbol"/>
Packit 423ecb
    <xsl:text>;
Packit 423ecb
</xsl:text>
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template mode="synopsis" match="exports[@type='macro']">
Packit 423ecb
    <xsl:variable name="def" select="key('symbols',@symbol)"/>
Packit 423ecb
    <xsl:text>#define </xsl:text>
Packit 423ecb
    <xsl:value-of select="@symbol"/>
Packit 423ecb
    <xsl:if test="$def/arg">
Packit 423ecb
      <xsl:text>(</xsl:text>
Packit 423ecb
      <xsl:for-each select="$def/arg">
Packit 423ecb
        <xsl:value-of select="@name"/>
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:text>)</xsl:text>
Packit 423ecb
    </xsl:if>
Packit 423ecb
    <xsl:text>;
Packit 423ecb
</xsl:text>
Packit 423ecb
  </xsl:template>
Packit 423ecb
  <xsl:template mode="synopsis" match="exports[@type='enum']">
Packit 423ecb
  </xsl:template>
Packit 423ecb
  <xsl:template mode="synopsis" match="exports[@type='struct']">
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
Packit 423ecb
Packit 423ecb
             The following builds the Details section
Packit 423ecb
Packit 423ecb
-->
Packit 423ecb
  <xsl:template mode="details" match="struct">
Packit 423ecb
    <xsl:variable name="name" select="string(@name)"/>
Packit 423ecb
    
Packit 423ecb
    

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

Packit 423ecb
    
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, 70)"/>
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
    <xsl:value-of select="$name"/>
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
    
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template mode="details" match="typedef[@type != 'enum']">
Packit 423ecb
    <xsl:variable name="name" select="string(@name)"/>
Packit 423ecb
    
Packit 423ecb
    

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

Packit 423ecb
    
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
    <xsl:value-of select="$name"/>
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
    
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template mode="details" match="variable">
Packit 423ecb
    <xsl:variable name="name" select="string(@name)"/>
Packit 423ecb
    
Packit 423ecb
    

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

Packit 423ecb
    
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
    <xsl:value-of select="$name"/>
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
    
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template mode="details" match="typedef[@type = 'enum']">
Packit 423ecb
    <xsl:variable name="name" select="string(@name)"/>
Packit 423ecb
    
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:if test="@value">
Packit 423ecb
        <xsl:text> = </xsl:text>
Packit 423ecb
	<xsl:value-of select="@value"/>
Packit 423ecb
      </xsl:if>
Packit 423ecb
      <xsl:if test="@info">
Packit 423ecb
        <xsl:text> /* </xsl:text>
Packit 423ecb
	<xsl:value-of select="@info"/>
Packit 423ecb
        <xsl:text> */</xsl:text>
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
    

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
    
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template mode="details" match="macro">
Packit 423ecb
    <xsl:variable name="name" select="string(@name)"/>
Packit 423ecb
    
Packit 423ecb
    

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

Packit 423ecb
    
Packit 423ecb
    <xsl:text>#define </xsl:text>
Packit 423ecb
    <xsl:value-of select="$name"/>
Packit 423ecb
    <xsl:if test="arg">
Packit 423ecb
      <xsl:text>(</xsl:text>
Packit 423ecb
      <xsl:for-each select="arg">
Packit 423ecb
        <xsl:value-of select="@name"/>
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:text>)</xsl:text>
Packit 423ecb
    </xsl:if>
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">
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
      
Packit 423ecb
    </xsl:if>
Packit 423ecb
    <xsl:text>
Packit 423ecb
</xsl:text>
Packit 423ecb
    
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template mode="details" 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
    
Packit 423ecb
    

<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
    
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
  <xsl:template mode="details" 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
    

Function type <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
    
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
Packit 423ecb
Packit 423ecb
             The following builds the general.html page
Packit 423ecb
Packit 423ecb
-->
Packit 423ecb
  <xsl:template name="generate_general">
Packit 423ecb
    <xsl:variable name="next" select="string(/api/files/file[position()=1]/@name)"/>
Packit 423ecb
    <xsl:document xmlns="" href="general.html" method="xml" indent="yes" encoding="UTF-8">
Packit 423ecb
      <html>
Packit 423ecb
        <head>
Packit 423ecb
	  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
Packit 423ecb
	  <title><xsl:value-of select="concat(@name, ': ', summary)"/></title>
Packit 423ecb
	  <meta name="generator" content="Libxml2 devhelp stylesheet"/>
Packit 423ecb
	  <link rel="start" href="index.html" title="libxml2 Reference Manual"/>
Packit 423ecb
	  <link rel="up" href="index.html" title="libxml2 Reference Manual"/>
Packit 423ecb
	  <link rel="stylesheet" href="style.css" type="text/css"/>
Packit 423ecb
	  <link rel="chapter" href="index.html" title="libxml2 Reference Manual"/>
Packit 423ecb
        </head>
Packit 423ecb
	<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
Packit 423ecb
Packit 423ecb
          
Packit 423ecb
	    
Packit 423ecb
              Up
Packit 423ecb
              Home
Packit 423ecb
	      <xsl:if test="$next != ''">
Packit 423ecb
		Next
Packit 423ecb
	      </xsl:if>
Packit 423ecb
              libxml2 Reference Manual
Packit 423ecb
            
Packit 423ecb
	  
Packit 423ecb
	  

libxml2 API Modules

Packit 423ecb
	  

Packit 423ecb
	  <xsl:for-each select="/api/files/file">
Packit 423ecb
	    <xsl:value-of select="@name"/> - <xsl:value-of select="summary"/>
Packit 423ecb
	  </xsl:for-each>
Packit 423ecb
	  

Packit 423ecb
	</body>
Packit 423ecb
      </html>
Packit 423ecb
    </xsl:document>
Packit 423ecb
  </xsl:template>
Packit 423ecb
Packit 423ecb
Packit 423ecb
Packit 423ecb
             The following builds the index.html page
Packit 423ecb
Packit 423ecb
-->
Packit 423ecb
  <xsl:template name="generate_index">
Packit 423ecb
    <xsl:document xmlns="" href="index.html" method="xml" indent="yes" encoding="UTF-8">
Packit 423ecb
      <html>
Packit 423ecb
        <head>
Packit 423ecb
	  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
Packit 423ecb
	  <title>libxml2 Reference Manual</title>
Packit 423ecb
	  <meta name="generator" content="Libxml2 devhelp stylesheet"/>
Packit 423ecb
	  <link rel="stylesheet" href="style.css" type="text/css"/>
Packit 423ecb
        </head>
Packit 423ecb
	<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
Packit 423ecb
Packit 423ecb
          
Packit 423ecb
	    
Packit 423ecb
              Home
Packit 423ecb
	      Next
Packit 423ecb
              libxml2 Reference Manual
Packit 423ecb
            
Packit 423ecb
	  
Packit 423ecb
	  

libxml2 Reference Manual

Packit 423ecb

Libxml2 is the XML C parser and toolkit developed for the Gnome project

Packit 423ecb
(but usable outside of the Gnome platform), it is free software available
Packit 423ecb
under the MIT
Packit 423ecb
License. XML itself is a metalanguage to design markup languages, i.e.
Packit 423ecb
text language where semantic and structure are added to the content using
Packit 423ecb
extra "markup" information enclosed between angle brackets. HTML is the most
Packit 423ecb
well-known markup language. Though the library is written in C a variety of language bindings make it available in
Packit 423ecb
other environments.

Packit 423ecb

Libxml2 implements a number of existing standards related to markup

Packit 423ecb
languages:

Packit 423ecb
Packit 423ecb
  • Namespaces in XML: http://www.w3.org/TR/REC-xml-names/
  • Packit 423ecb
  • XML Base: http://www.w3.org/TR/xmlbase/
  • Packit 423ecb
  • RFC 2396 :
  • Packit 423ecb
    Uniform Resource Identifiers http://www.ietf.org/rfc/rfc2396.txt
    Packit 423ecb
  • XML Path Language (XPath) 1.0: http://www.w3.org/TR/xpath
  • Packit 423ecb
  • HTML4 parser: http://www.w3.org/TR/html401/
  • Packit 423ecb
  • XML Pointer Language (XPointer) Version 1.0: http://www.w3.org/TR/xptr
  • Packit 423ecb
  • XML Inclusions (XInclude) Version 1.0: http://www.w3.org/TR/xinclude/
  • Packit 423ecb
  • ISO-8859-x encodings, as well as rfc2044 [UTF-8]
  • Packit 423ecb
    and rfc2781
    Packit 423ecb
    [UTF-16] Unicode encodings, and more if using iconv support
    Packit 423ecb
  • part of SGML Open Technical Resolution TR9401:1997
  • Packit 423ecb
  • XML Catalogs Working Draft 06 August 2001: http://www.oasis-open.org/committees/entity/spec-2001-08-06.html
  • Packit 423ecb
  • Canonical XML Version 1.0: http://www.w3.org/TR/xml-c14n
  • Packit 423ecb
    and the Exclusive XML Canonicalization CR draft http://www.w3.org/TR/xml-exc-c14n
    Packit 423ecb
  • Relax NG, ISO/IEC 19757-2:2003, http://www.oasis-open.org/committees/relax-ng/spec-20011203.html
  • Packit 423ecb
  • W3C XML Schemas Part 2: Datatypes REC 02 May
  • Packit 423ecb
    2001
    Packit 423ecb
  • W3C xml:id Working Draft 7
  • Packit 423ecb
    April 2004
    Packit 423ecb
    Packit 423ecb
    	  

    As a result the libxml2 API is very

    Packit 423ecb
    	      large. If you get lost searching for some specific API use
    Packit 423ecb
    	      the online search
    Packit 423ecb
    	      engine hosted on xmlsoft.org
    Packit 423ecb
    	      the libxml2 and libxslt project page. 

    Packit 423ecb
    	</body>
    Packit 423ecb
          </html>
    Packit 423ecb
        </xsl:document>
    Packit 423ecb
      </xsl:template>
    Packit 423ecb
    Packit 423ecb
    </xsl:stylesheet>
    Packit 423ecb
    Packit 423ecb