Blame telepathy-account-widgets/tools/doc-generator.xsl

Packit 79f644
Packit 79f644
The master copy of this stylesheet is in the Telepathy spec repository -
Packit 79f644
please make any changes there.
Packit 79f644
Packit 79f644
Copyright (C) 2006-2008 Collabora Limited
Packit 79f644
Packit 79f644
This library is free software; you can redistribute it and/or
Packit 79f644
modify it under the terms of the GNU Lesser General Public
Packit 79f644
License as published by the Free Software Foundation; either
Packit 79f644
version 2.1 of the License, or (at your option) any later version.
Packit 79f644
Packit 79f644
This library is distributed in the hope that it will be useful,
Packit 79f644
but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 79f644
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 79f644
Lesser General Public License for more details.
Packit 79f644
Packit 79f644
You should have received a copy of the GNU Lesser General Public
Packit 79f644
License along with this library; if not, write to the Free Software
Packit 79f644
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
Packit 79f644
-->
Packit 79f644
Packit 79f644
Packit 79f644
  xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0"
Packit 79f644
  xmlns:html="http://www.w3.org/1999/xhtml"
Packit 79f644
  exclude-result-prefixes="tp html">
Packit 79f644
  
Packit 79f644
  don't work ideally in the presence of two things that want to use the
Packit 79f644
  absence of a prefix, sadly. -->
Packit 79f644
Packit 79f644
  <xsl:param name="allow-undefined-interfaces" select="false()"/>
Packit 79f644
Packit 79f644
  <xsl:template match="html:* | @*" mode="html">
Packit 79f644
    <xsl:copy>
Packit 79f644
      <xsl:apply-templates mode="html"/>
Packit 79f644
    </xsl:copy>
Packit 79f644
  </xsl:template>
Packit 79f644
Packit 79f644
  <xsl:template match="tp:type" mode="html">
Packit 79f644
    <xsl:call-template name="tp-type">
Packit 79f644
      <xsl:with-param name="tp-type" select="string(.)"/>
Packit 79f644
    </xsl:call-template>
Packit 79f644
  </xsl:template>
Packit 79f644
Packit 79f644
  
Packit 79f644
  <xsl:template match="tp:dbus-ref" mode="html">
Packit 79f644
    <xsl:variable name="name">
Packit 79f644
      <xsl:choose>
Packit 79f644
        <xsl:when test="@namespace">
Packit 79f644
          <xsl:value-of select="@namespace"/>
Packit 79f644
          <xsl:text>.</xsl:text>
Packit 79f644
        </xsl:when>
Packit 79f644
      </xsl:choose>
Packit 79f644
      <xsl:value-of select="string(.)"/>
Packit 79f644
    </xsl:variable>
Packit 79f644
Packit 79f644
    <xsl:choose>
Packit 79f644
      
Packit 79f644
        or //interface/method[concat(../@name, '.', @name)=$name]
Packit 79f644
        or //interface/signal[concat(../@name, '.', @name)=$name]
Packit 79f644
        or //interface/property[concat(../@name, '.', @name)=$name]
Packit 79f644
        or //interface[@name=concat($name, '.DRAFT')]
Packit 79f644
        or //interface/method[
Packit 79f644
          concat(../@name, '.', @name)=concat($name, '.DRAFT')]
Packit 79f644
        or //interface/signal[
Packit 79f644
          concat(../@name, '.', @name)=concat($name, '.DRAFT')]
Packit 79f644
        or //interface/property[
Packit 79f644
          concat(../@name, '.', @name)=concat($name, '.DRAFT')]
Packit 79f644
        ">
Packit 79f644
        
Packit 79f644
          <xsl:value-of select="string(.)"/>
Packit 79f644
        
Packit 79f644
      </xsl:when>
Packit 79f644
Packit 79f644
      <xsl:when test="$allow-undefined-interfaces">
Packit 79f644
        
Packit 79f644
          <xsl:value-of select="string(.)"/>
Packit 79f644
        
Packit 79f644
      </xsl:when>
Packit 79f644
Packit 79f644
      <xsl:otherwise>
Packit 79f644
        <xsl:message terminate="yes">
Packit 79f644
          <xsl:text>ERR: cannot find D-Bus interface, method, </xsl:text>
Packit 79f644
          <xsl:text>signal or property called '</xsl:text>
Packit 79f644
          <xsl:value-of select="$name"/>
Packit 79f644
          <xsl:text>'
</xsl:text>
Packit 79f644
        </xsl:message>
Packit 79f644
      </xsl:otherwise>
Packit 79f644
    </xsl:choose>
Packit 79f644
  </xsl:template>
Packit 79f644
Packit 79f644
  
Packit 79f644
  <xsl:template match="tp:member-ref" mode="html">
Packit 79f644
    
Packit 79f644
      '.')"/>
Packit 79f644
    <xsl:variable name="name" select="string(.)"/>
Packit 79f644
Packit 79f644
    <xsl:if test="not(ancestor::interface)">
Packit 79f644
      <xsl:message terminate="yes">
Packit 79f644
        <xsl:text>ERR: Cannot use tp:member-ref when not in an</xsl:text>
Packit 79f644
        <xsl:text> <interface>
</xsl:text>
Packit 79f644
      </xsl:message>
Packit 79f644
    </xsl:if>
Packit 79f644
Packit 79f644
    <xsl:choose>
Packit 79f644
      <xsl:when test="ancestor::interface/signal[@name=$name]"/>
Packit 79f644
      <xsl:when test="ancestor::interface/method[@name=$name]"/>
Packit 79f644
      <xsl:when test="ancestor::interface/property[@name=$name]"/>
Packit 79f644
      <xsl:otherwise>
Packit 79f644
        <xsl:message terminate="yes">
Packit 79f644
          <xsl:text>ERR: interface </xsl:text>
Packit 79f644
          <xsl:value-of select="ancestor::interface/@name"/>
Packit 79f644
          <xsl:text> has no signal/method/property called </xsl:text>
Packit 79f644
          <xsl:value-of select="$name"/>
Packit 79f644
          <xsl:text>
</xsl:text>
Packit 79f644
        </xsl:message>
Packit 79f644
      </xsl:otherwise>
Packit 79f644
    </xsl:choose>
Packit 79f644
Packit 79f644
    
Packit 79f644
      <xsl:value-of select="$name"/>
Packit 79f644
    
Packit 79f644
  </xsl:template>
Packit 79f644
Packit 79f644
  <xsl:template match="*" mode="identity">
Packit 79f644
    <xsl:copy>
Packit 79f644
      <xsl:apply-templates mode="identity"/>
Packit 79f644
    </xsl:copy>
Packit 79f644
  </xsl:template>
Packit 79f644
Packit 79f644
  <xsl:template match="tp:docstring">
Packit 79f644
    <xsl:apply-templates mode="html"/>
Packit 79f644
  </xsl:template>
Packit 79f644
Packit 79f644
  <xsl:template match="tp:added">
Packit 79f644
    

Added in

Packit 79f644
      version <xsl:value-of select="@version"/>.
Packit 79f644
      <xsl:apply-templates select="node()" mode="html"/>

Packit 79f644
  </xsl:template>
Packit 79f644
Packit 79f644
  <xsl:template match="tp:changed">
Packit 79f644
    <xsl:choose>
Packit 79f644
      <xsl:when test="node()">
Packit 79f644
        

Changed in

Packit 79f644
          version <xsl:value-of select="@version"/>:
Packit 79f644
          <xsl:apply-templates select="node()" mode="html"/>

Packit 79f644
      </xsl:when>
Packit 79f644
      <xsl:otherwise>
Packit 79f644
        

Changed in version

Packit 79f644
          <xsl:value-of select="@version"/>

Packit 79f644
      </xsl:otherwise>
Packit 79f644
    </xsl:choose>
Packit 79f644
  </xsl:template>
Packit 79f644
Packit 79f644
  <xsl:template match="tp:deprecated">
Packit 79f644
    

Deprecated

Packit 79f644
      since version <xsl:value-of select="@version"/>.
Packit 79f644
      <xsl:apply-templates select="node()" mode="html"/>

Packit 79f644
  </xsl:template>
Packit 79f644
Packit 79f644
  <xsl:template match="tp:rationale" mode="html">
Packit 79f644
    
Packit 79f644
      <xsl:apply-templates select="node()" mode="html"/>
Packit 79f644
    
Packit 79f644
  </xsl:template>
Packit 79f644
Packit 79f644
  <xsl:template match="tp:errors">
Packit 79f644
    

Errors

Packit 79f644
    <xsl:apply-templates/>
Packit 79f644
  </xsl:template>
Packit 79f644
Packit 79f644
  <xsl:template match="tp:generic-types">
Packit 79f644
    

Generic types

Packit 79f644
    <xsl:call-template name="do-types"/>
Packit 79f644
  </xsl:template>
Packit 79f644
Packit 79f644
  <xsl:template name="do-types">
Packit 79f644
    <xsl:if test="tp:simple-type">
Packit 79f644
      

Simple types

Packit 79f644
      <xsl:apply-templates select="tp:simple-type"/>
Packit 79f644
    </xsl:if>
Packit 79f644
Packit 79f644
    <xsl:if test="tp:enum">
Packit 79f644
      

Enumerated types:

Packit 79f644
      <xsl:apply-templates select="tp:enum"/>
Packit 79f644
    </xsl:if>
Packit 79f644
Packit 79f644
    <xsl:if test="tp:flags">
Packit 79f644
      

Sets of flags:

Packit 79f644
      <xsl:apply-templates select="tp:flags"/>
Packit 79f644
    </xsl:if>
Packit 79f644
Packit 79f644
    <xsl:if test="tp:struct">
Packit 79f644
      

Structure types

Packit 79f644
      <xsl:apply-templates select="tp:struct"/>
Packit 79f644
    </xsl:if>
Packit 79f644
Packit 79f644
    <xsl:if test="tp:mapping">
Packit 79f644
      

Mapping types

Packit 79f644
      <xsl:apply-templates select="tp:mapping"/>
Packit 79f644
    </xsl:if>
Packit 79f644
Packit 79f644
    <xsl:if test="tp:external-type">
Packit 79f644
      

Types defined elsewhere

Packit 79f644
      
<xsl:apply-templates select="tp:external-type"/>
Packit 79f644
    </xsl:if>
Packit 79f644
  </xsl:template>
Packit 79f644
Packit 79f644
  <xsl:template match="tp:error">
Packit 79f644
    

<xsl:value-of select="concat(../@namespace, '.', translate(@name, ' ', ''))"/>

Packit 79f644
    <xsl:apply-templates select="tp:docstring"/>
Packit 79f644
    <xsl:apply-templates select="tp:added"/>
Packit 79f644
    <xsl:apply-templates select="tp:changed"/>
Packit 79f644
    <xsl:apply-templates select="tp:deprecated"/>
Packit 79f644
  </xsl:template>
Packit 79f644
Packit 79f644
  <xsl:template match="/tp:spec/tp:copyright">
Packit 79f644
    
Packit 79f644
      <xsl:apply-templates mode="text"/>
Packit 79f644
    
Packit 79f644
  </xsl:template>
Packit 79f644
  <xsl:template match="/tp:spec/tp:license">
Packit 79f644
    
Packit 79f644
      <xsl:apply-templates mode="html"/>
Packit 79f644
    
Packit 79f644
  </xsl:template>
Packit 79f644
Packit 79f644
  <xsl:template match="tp:copyright"/>
Packit 79f644
  <xsl:template match="tp:license"/>
Packit 79f644
Packit 79f644
  <xsl:template match="interface">
Packit 79f644
    

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

Packit 79f644
Packit 79f644
    <xsl:if test="@tp:causes-havoc">
Packit 79f644
      

Packit 79f644
        This interface is <xsl:value-of select="@tp:causes-havoc"/>
Packit 79f644
        and is likely to cause havoc to your API/ABI if bindings are generated.
Packit 79f644
        Don't include it in libraries that care about compatibility.
Packit 79f644
      

Packit 79f644
    </xsl:if>
Packit 79f644
Packit 79f644
    <xsl:if test="tp:requires">
Packit 79f644
      

Implementations of this interface must also implement:

Packit 79f644
      
    Packit 79f644
            <xsl:for-each select="tp:requires">
    Packit 79f644
              
  • <xsl:value-of select="@interface"/>
  • Packit 79f644
            </xsl:for-each>
    Packit 79f644
          
    Packit 79f644
        </xsl:if>
    Packit 79f644
    Packit 79f644
        <xsl:apply-templates select="tp:docstring" />
    Packit 79f644
        <xsl:apply-templates select="tp:added"/>
    Packit 79f644
        <xsl:apply-templates select="tp:changed"/>
    Packit 79f644
        <xsl:apply-templates select="tp:deprecated"/>
    Packit 79f644
    Packit 79f644
        <xsl:choose>
    Packit 79f644
          <xsl:when test="method">
    Packit 79f644
            

    Methods:

    Packit 79f644
            <xsl:apply-templates select="method"/>
    Packit 79f644
          </xsl:when>
    Packit 79f644
          <xsl:otherwise>
    Packit 79f644
            

    Interface has no methods.

    Packit 79f644
          </xsl:otherwise>
    Packit 79f644
        </xsl:choose>
    Packit 79f644
    Packit 79f644
        <xsl:choose>
    Packit 79f644
          <xsl:when test="signal">
    Packit 79f644
            

    Signals:

    Packit 79f644
            <xsl:apply-templates select="signal"/>
    Packit 79f644
          </xsl:when>
    Packit 79f644
          <xsl:otherwise>
    Packit 79f644
            

    Interface has no signals.

    Packit 79f644
          </xsl:otherwise>
    Packit 79f644
        </xsl:choose>
    Packit 79f644
    Packit 79f644
        <xsl:choose>
    Packit 79f644
          <xsl:when test="tp:property">
    Packit 79f644
            

    Telepathy Properties:

    Packit 79f644
            

    Accessed using the

    Packit 79f644
              Telepathy
    Packit 79f644
                Properties interface.

    Packit 79f644
            
    Packit 79f644
              <xsl:apply-templates select="tp:property"/>
    Packit 79f644
            
    Packit 79f644
          </xsl:when>
    Packit 79f644
          <xsl:otherwise>
    Packit 79f644
            

    Interface has no Telepathy

    Packit 79f644
              properties.

    Packit 79f644
          </xsl:otherwise>
    Packit 79f644
        </xsl:choose>
    Packit 79f644
    Packit 79f644
        <xsl:choose>
    Packit 79f644
          <xsl:when test="property">
    Packit 79f644
            

    D-Bus core Properties:

    Packit 79f644
            

    Accessed using the

    Packit 79f644
              org.freedesktop.DBus.Properties interface.

    Packit 79f644
            
    Packit 79f644
              <xsl:apply-templates select="property"/>
    Packit 79f644
            
    Packit 79f644
          </xsl:when>
    Packit 79f644
          <xsl:otherwise>
    Packit 79f644
            

    Interface has no D-Bus core

    Packit 79f644
              properties.

    Packit 79f644
          </xsl:otherwise>
    Packit 79f644
        </xsl:choose>
    Packit 79f644
    Packit 79f644
        <xsl:call-template name="do-types"/>
    Packit 79f644
    Packit 79f644
      </xsl:template>
    Packit 79f644
    Packit 79f644
      <xsl:template match="tp:flags">
    Packit 79f644
    Packit 79f644
        <xsl:if test="not(@name) or @name = ''">
    Packit 79f644
          <xsl:message terminate="yes">
    Packit 79f644
            <xsl:text>ERR: missing @name on a tp:flags type
    </xsl:text>
    Packit 79f644
          </xsl:message>
    Packit 79f644
        </xsl:if>
    Packit 79f644
    Packit 79f644
        <xsl:if test="not(@type) or @type = ''">
    Packit 79f644
          <xsl:message terminate="yes">
    Packit 79f644
            <xsl:text>ERR: missing @type on tp:flags type</xsl:text>
    Packit 79f644
            <xsl:value-of select="@name"/>
    Packit 79f644
            <xsl:text>
    </xsl:text>
    Packit 79f644
          </xsl:message>
    Packit 79f644
        </xsl:if>
    Packit 79f644
    Packit 79f644
        

    Packit 79f644
          
    Packit 79f644
            <xsl:value-of select="@name"/>
    Packit 79f644
          
    Packit 79f644
        
    Packit 79f644
        <xsl:apply-templates select="tp:docstring" />
    Packit 79f644
        <xsl:apply-templates select="tp:added"/>
    Packit 79f644
        <xsl:apply-templates select="tp:changed"/>
    Packit 79f644
        <xsl:apply-templates select="tp:deprecated"/>
    Packit 79f644
        
    Packit 79f644
            <xsl:variable name="value-prefix">
    Packit 79f644
              <xsl:choose>
    Packit 79f644
                <xsl:when test="@value-prefix">
    Packit 79f644
                  <xsl:value-of select="@value-prefix"/>
    Packit 79f644
                </xsl:when>
    Packit 79f644
                <xsl:otherwise>
    Packit 79f644
                  <xsl:value-of select="@name"/>
    Packit 79f644
                </xsl:otherwise>
    Packit 79f644
              </xsl:choose>
    Packit 79f644
            </xsl:variable>
    Packit 79f644
          <xsl:for-each select="tp:flag">
    Packit 79f644
            
    <xsl:value-of select="concat($value-prefix, '_', @suffix)"/> = <xsl:value-of select="@value"/>
    Packit 79f644
            <xsl:choose>
    Packit 79f644
              <xsl:when test="tp:docstring">
    Packit 79f644
                
    Packit 79f644
                  <xsl:apply-templates select="tp:docstring" />
    Packit 79f644
                  <xsl:apply-templates select="tp:added"/>
    Packit 79f644
                  <xsl:apply-templates select="tp:changed"/>
    Packit 79f644
                  <xsl:apply-templates select="tp:deprecated"/>
    Packit 79f644
                
    Packit 79f644
              </xsl:when>
    Packit 79f644
              <xsl:otherwise>
    Packit 79f644
                
    (Undocumented)
    Packit 79f644
              </xsl:otherwise>
    Packit 79f644
            </xsl:choose>
    Packit 79f644
          </xsl:for-each>
    Packit 79f644
        
    Packit 79f644
      </xsl:template>
    Packit 79f644
    Packit 79f644
      <xsl:template match="tp:enum">
    Packit 79f644
    Packit 79f644
        <xsl:if test="not(@name) or @name = ''">
    Packit 79f644
          <xsl:message terminate="yes">
    Packit 79f644
            <xsl:text>ERR: missing @name on a tp:enum type
    </xsl:text>
    Packit 79f644
          </xsl:message>
    Packit 79f644
        </xsl:if>
    Packit 79f644
    Packit 79f644
        <xsl:if test="not(@type) or @type = ''">
    Packit 79f644
          <xsl:message terminate="yes">
    Packit 79f644
            <xsl:text>ERR: missing @type on tp:enum type</xsl:text>
    Packit 79f644
            <xsl:value-of select="@name"/>
    Packit 79f644
            <xsl:text>
    </xsl:text>
    Packit 79f644
          </xsl:message>
    Packit 79f644
        </xsl:if>
    Packit 79f644
    Packit 79f644
        

    Packit 79f644
          
    Packit 79f644
            <xsl:value-of select="@name"/>
    Packit 79f644
          
    Packit 79f644
        
    Packit 79f644
        <xsl:apply-templates select="tp:docstring" />
    Packit 79f644
        <xsl:apply-templates select="tp:added"/>
    Packit 79f644
        <xsl:apply-templates select="tp:changed"/>
    Packit 79f644
        <xsl:apply-templates select="tp:deprecated"/>
    Packit 79f644
        
    Packit 79f644
            <xsl:variable name="value-prefix">
    Packit 79f644
              <xsl:choose>
    Packit 79f644
                <xsl:when test="@value-prefix">
    Packit 79f644
                  <xsl:value-of select="@value-prefix"/>
    Packit 79f644
                </xsl:when>
    Packit 79f644
                <xsl:otherwise>
    Packit 79f644
                  <xsl:value-of select="@name"/>
    Packit 79f644
                </xsl:otherwise>
    Packit 79f644
              </xsl:choose>
    Packit 79f644
            </xsl:variable>
    Packit 79f644
          <xsl:for-each select="tp:enumvalue">
    Packit 79f644
            
    <xsl:value-of select="concat($value-prefix, '_', @suffix)"/> = <xsl:value-of select="@value"/>
    Packit 79f644
            <xsl:choose>
    Packit 79f644
              <xsl:when test="tp:docstring">
    Packit 79f644
                
    Packit 79f644
                  <xsl:apply-templates select="tp:docstring" />
    Packit 79f644
                  <xsl:apply-templates select="tp:added"/>
    Packit 79f644
                  <xsl:apply-templates select="tp:changed"/>
    Packit 79f644
                  <xsl:apply-templates select="tp:deprecated"/>
    Packit 79f644
                
    Packit 79f644
              </xsl:when>
    Packit 79f644
              <xsl:otherwise>
    Packit 79f644
                
    (Undocumented)
    Packit 79f644
              </xsl:otherwise>
    Packit 79f644
            </xsl:choose>
    Packit 79f644
          </xsl:for-each>
    Packit 79f644
        
    Packit 79f644
      </xsl:template>
    Packit 79f644
    Packit 79f644
      <xsl:template match="property">
    Packit 79f644
    Packit 79f644
        <xsl:if test="not(parent::interface)">
    Packit 79f644
          <xsl:message terminate="yes">
    Packit 79f644
            <xsl:text>ERR: property </xsl:text>
    Packit 79f644
            <xsl:value-of select="@name"/>
    Packit 79f644
            <xsl:text> does not have an interface as parent
    </xsl:text>
    Packit 79f644
          </xsl:message>
    Packit 79f644
        </xsl:if>
    Packit 79f644
    Packit 79f644
        <xsl:if test="not(@name) or @name = ''">
    Packit 79f644
          <xsl:message terminate="yes">
    Packit 79f644
            <xsl:text>ERR: missing @name on a property of </xsl:text>
    Packit 79f644
            <xsl:value-of select="../@name"/>
    Packit 79f644
            <xsl:text>
    </xsl:text>
    Packit 79f644
          </xsl:message>
    Packit 79f644
        </xsl:if>
    Packit 79f644
    Packit 79f644
        <xsl:if test="not(@type) or @type = ''">
    Packit 79f644
          <xsl:message terminate="yes">
    Packit 79f644
            <xsl:text>ERR: missing @type on property </xsl:text>
    Packit 79f644
            <xsl:value-of select="concat(../@name, '.', @name)"/>
    Packit 79f644
            <xsl:text>: '</xsl:text>
    Packit 79f644
            <xsl:value-of select="@access"/>
    Packit 79f644
            <xsl:text>'
    </xsl:text>
    Packit 79f644
          </xsl:message>
    Packit 79f644
        </xsl:if>
    Packit 79f644
    Packit 79f644
        
    Packit 79f644
          
    Packit 79f644
            <xsl:value-of select="@name"/>
    Packit 79f644
          
    Packit 79f644
          <xsl:text> − </xsl:text>
    Packit 79f644
          <xsl:value-of select="@type"/>
    Packit 79f644
          <xsl:call-template name="parenthesized-tp-type"/>
    Packit 79f644
          <xsl:text>, </xsl:text>
    Packit 79f644
          <xsl:choose>
    Packit 79f644
            <xsl:when test="@access = 'read'">
    Packit 79f644
              <xsl:text>read-only</xsl:text>
    Packit 79f644
            </xsl:when>
    Packit 79f644
            <xsl:when test="@access = 'write'">
    Packit 79f644
              <xsl:text>write-only</xsl:text>
    Packit 79f644
            </xsl:when>
    Packit 79f644
            <xsl:when test="@access = 'readwrite'">
    Packit 79f644
              <xsl:text>read/write</xsl:text>
    Packit 79f644
            </xsl:when>
    Packit 79f644
            <xsl:otherwise>
    Packit 79f644
              <xsl:message terminate="yes">
    Packit 79f644
                <xsl:text>ERR: unknown or missing value for </xsl:text>
    Packit 79f644
                <xsl:text>@access on property </xsl:text>
    Packit 79f644
                <xsl:value-of select="concat(../@name, '.', @name)"/>
    Packit 79f644
                <xsl:text>: '</xsl:text>
    Packit 79f644
                <xsl:value-of select="@access"/>
    Packit 79f644
                <xsl:text>'
    </xsl:text>
    Packit 79f644
              </xsl:message>
    Packit 79f644
            </xsl:otherwise>
    Packit 79f644
          </xsl:choose>
    Packit 79f644
        
    Packit 79f644
        
    Packit 79f644
          <xsl:apply-templates select="tp:docstring"/>
    Packit 79f644
          <xsl:apply-templates select="tp:added"/>
    Packit 79f644
          <xsl:apply-templates select="tp:changed"/>
    Packit 79f644
          <xsl:apply-templates select="tp:deprecated"/>
    Packit 79f644
        
    Packit 79f644
      </xsl:template>
    Packit 79f644
    Packit 79f644
      <xsl:template match="tp:property">
    Packit 79f644
        
    Packit 79f644
          <xsl:if test="@name">
    Packit 79f644
            <xsl:value-of select="@name"/> −
    Packit 79f644
          </xsl:if>
    Packit 79f644
          <xsl:value-of select="@type"/>
    Packit 79f644
        
    Packit 79f644
        
    Packit 79f644
          <xsl:apply-templates select="tp:docstring"/>
    Packit 79f644
          <xsl:apply-templates select="tp:added"/>
    Packit 79f644
          <xsl:apply-templates select="tp:changed"/>
    Packit 79f644
          <xsl:apply-templates select="tp:deprecated"/>
    Packit 79f644
        
    Packit 79f644
      </xsl:template>
    Packit 79f644
    Packit 79f644
      <xsl:template match="tp:mapping">
    Packit 79f644
        
    Packit 79f644
          

    Packit 79f644
            
    Packit 79f644
              <xsl:value-of select="@name"/>
    Packit 79f644
             − a{
    Packit 79f644
            <xsl:for-each select="tp:member">
    Packit 79f644
              <xsl:value-of select="@type"/>
    Packit 79f644
              <xsl:text>: </xsl:text>
    Packit 79f644
              <xsl:value-of select="@name"/>
    Packit 79f644
              <xsl:if test="position() != last()"> → </xsl:if>
    Packit 79f644
            </xsl:for-each>
    Packit 79f644
            }
    Packit 79f644
          
    Packit 79f644
          
    Packit 79f644
            <xsl:apply-templates select="tp:docstring"/>
    Packit 79f644
            <xsl:if test="string(@array-name) != ''">
    Packit 79f644
              

    In bindings that need a separate name, arrays of

    Packit 79f644
                <xsl:value-of select="@name"/> should be called
    Packit 79f644
                <xsl:value-of select="@array-name"/>.

    Packit 79f644
            </xsl:if>
    Packit 79f644
          
    Packit 79f644
          
    Packit 79f644
            

    Members

    Packit 79f644
            
    Packit 79f644
              <xsl:apply-templates select="tp:member" mode="members-in-docstring"/>
    Packit 79f644
            
    Packit 79f644
          
    Packit 79f644
        
    Packit 79f644
      </xsl:template>
    Packit 79f644
    Packit 79f644
      <xsl:template match="tp:docstring" mode="in-index"/>
    Packit 79f644
    Packit 79f644
      
    Packit 79f644
        mode="in-index">
    Packit 79f644
        − <xsl:value-of select="@type"/>
    Packit 79f644
      </xsl:template>
    Packit 79f644
    Packit 79f644
      <xsl:template match="tp:simple-type">
    Packit 79f644
    Packit 79f644
        <xsl:if test="not(@name) or @name = ''">
    Packit 79f644
          <xsl:message terminate="yes">
    Packit 79f644
            <xsl:text>ERR: missing @name on a tp:simple-type
    </xsl:text>
    Packit 79f644
          </xsl:message>
    Packit 79f644
        </xsl:if>
    Packit 79f644
    Packit 79f644
        <xsl:if test="not(@type) or @type = ''">
    Packit 79f644
          <xsl:message terminate="yes">
    Packit 79f644
            <xsl:text>ERR: missing @type on tp:simple-type</xsl:text>
    Packit 79f644
            <xsl:value-of select="@name"/>
    Packit 79f644
            <xsl:text>
    </xsl:text>
    Packit 79f644
          </xsl:message>
    Packit 79f644
        </xsl:if>
    Packit 79f644
    Packit 79f644
        
    Packit 79f644
          

    Packit 79f644
            
    Packit 79f644
              <xsl:value-of select="@name"/>
    Packit 79f644
             − <xsl:value-of select="@type"/>
    Packit 79f644
          
    Packit 79f644
          
    Packit 79f644
            <xsl:apply-templates select="tp:docstring"/>
    Packit 79f644
            <xsl:apply-templates select="tp:added"/>
    Packit 79f644
            <xsl:apply-templates select="tp:changed"/>
    Packit 79f644
            <xsl:apply-templates select="tp:deprecated"/>
    Packit 79f644
          
    Packit 79f644
        
    Packit 79f644
      </xsl:template>
    Packit 79f644
    Packit 79f644
      <xsl:template match="tp:external-type">
    Packit 79f644
    Packit 79f644
        <xsl:if test="not(@name) or @name = ''">
    Packit 79f644
          <xsl:message terminate="yes">
    Packit 79f644
            <xsl:text>ERR: missing @name on a tp:external-type
    </xsl:text>
    Packit 79f644
          </xsl:message>
    Packit 79f644
        </xsl:if>
    Packit 79f644
    Packit 79f644
        <xsl:if test="not(@type) or @type = ''">
    Packit 79f644
          <xsl:message terminate="yes">
    Packit 79f644
            <xsl:text>ERR: missing @type on tp:external-type</xsl:text>
    Packit 79f644
            <xsl:value-of select="@name"/>
    Packit 79f644
            <xsl:text>
    </xsl:text>
    Packit 79f644
          </xsl:message>
    Packit 79f644
        </xsl:if>
    Packit 79f644
    Packit 79f644
        
    Packit 79f644
          
    Packit 79f644
            
    Packit 79f644
              <xsl:value-of select="@name"/>
    Packit 79f644
             − <xsl:value-of select="@type"/>
    Packit 79f644
          
    Packit 79f644
          
    Defined by: <xsl:value-of select="@from"/>
    Packit 79f644
        
    Packit 79f644
      </xsl:template>
    Packit 79f644
    Packit 79f644
      <xsl:template match="tp:struct" mode="in-index">
    Packit 79f644
        − ( <xsl:for-each select="tp:member">
    Packit 79f644
              <xsl:value-of select="@type"/>
    Packit 79f644
              <xsl:if test="position() != last()">, </xsl:if>
    Packit 79f644
            </xsl:for-each> )
    Packit 79f644
      </xsl:template>
    Packit 79f644
    Packit 79f644
      <xsl:template match="tp:mapping" mode="in-index">
    Packit 79f644
        − a{ <xsl:for-each select="tp:member">
    Packit 79f644
              <xsl:value-of select="@type"/>
    Packit 79f644
              <xsl:if test="position() != last()"> → </xsl:if>
    Packit 79f644
            </xsl:for-each> }
    Packit 79f644
      </xsl:template>
    Packit 79f644
    Packit 79f644
      <xsl:template match="tp:struct">
    Packit 79f644
        
    Packit 79f644
          

    Packit 79f644
            
    Packit 79f644
              <xsl:value-of select="@name"/>
    Packit 79f644
             − (
    Packit 79f644
            <xsl:for-each select="tp:member">
    Packit 79f644
              <xsl:value-of select="@type"/>
    Packit 79f644
              <xsl:text>: </xsl:text>
    Packit 79f644
              <xsl:value-of select="@name"/>
    Packit 79f644
              <xsl:if test="position() != last()">, </xsl:if>
    Packit 79f644
            </xsl:for-each>
    Packit 79f644
            )
    Packit 79f644
          
    Packit 79f644
          
    Packit 79f644
            <xsl:apply-templates select="tp:docstring"/>
    Packit 79f644
            <xsl:apply-templates select="tp:added"/>
    Packit 79f644
            <xsl:apply-templates select="tp:changed"/>
    Packit 79f644
            <xsl:apply-templates select="tp:deprecated"/>
    Packit 79f644
          
    Packit 79f644
          <xsl:choose>
    Packit 79f644
            <xsl:when test="string(@array-name) != ''">
    Packit 79f644
              

    In bindings that need a separate name, arrays of

    Packit 79f644
                <xsl:value-of select="@name"/> should be called
    Packit 79f644
                <xsl:value-of select="@array-name"/>.

    Packit 79f644
            </xsl:when>
    Packit 79f644
            <xsl:otherwise>
    Packit 79f644
              

    Arrays of <xsl:value-of select="@name"/> don't generally

    Packit 79f644
                make sense.

    Packit 79f644
            </xsl:otherwise>
    Packit 79f644
          </xsl:choose>
    Packit 79f644
          
    Packit 79f644
            

    Members

    Packit 79f644
            
    Packit 79f644
              <xsl:apply-templates select="tp:member" mode="members-in-docstring"/>
    Packit 79f644
            
    Packit 79f644
          
    Packit 79f644
        
    Packit 79f644
      </xsl:template>
    Packit 79f644
    Packit 79f644
      <xsl:template match="method">
    Packit 79f644
    Packit 79f644
        <xsl:if test="not(parent::interface)">
    Packit 79f644
          <xsl:message terminate="yes">
    Packit 79f644
            <xsl:text>ERR: method </xsl:text>
    Packit 79f644
            <xsl:value-of select="@name"/>
    Packit 79f644
            <xsl:text> does not have an interface as parent
    </xsl:text>
    Packit 79f644
          </xsl:message>
    Packit 79f644
        </xsl:if>
    Packit 79f644
    Packit 79f644
        <xsl:if test="not(@name) or @name = ''">
    Packit 79f644
          <xsl:message terminate="yes">
    Packit 79f644
            <xsl:text>ERR: missing @name on a method of </xsl:text>
    Packit 79f644
            <xsl:value-of select="../@name"/>
    Packit 79f644
            <xsl:text>
    </xsl:text>
    Packit 79f644
          </xsl:message>
    Packit 79f644
        </xsl:if>
    Packit 79f644
    Packit 79f644
        <xsl:for-each select="arg">
    Packit 79f644
          <xsl:if test="not(@type) or @type = ''">
    Packit 79f644
            <xsl:message terminate="yes">
    Packit 79f644
              <xsl:text>ERR: an arg of method </xsl:text>
    Packit 79f644
              <xsl:value-of select="concat(../../@name, '.', ../@name)"/>
    Packit 79f644
              <xsl:text> has no type</xsl:text>
    Packit 79f644
            </xsl:message>
    Packit 79f644
          </xsl:if>
    Packit 79f644
          <xsl:choose>
    Packit 79f644
            <xsl:when test="@direction='in'">
    Packit 79f644
              <xsl:if test="not(@name) or @name = ''">
    Packit 79f644
                <xsl:message terminate="yes">
    Packit 79f644
                  <xsl:text>ERR: an 'in' arg of method </xsl:text>
    Packit 79f644
                  <xsl:value-of select="concat(../../@name, '.', ../@name)"/>
    Packit 79f644
                  <xsl:text> has no name</xsl:text>
    Packit 79f644
                </xsl:message>
    Packit 79f644
              </xsl:if>
    Packit 79f644
            </xsl:when>
    Packit 79f644
            <xsl:when test="@direction='out'">
    Packit 79f644
              
    Packit 79f644
              on their hands goes through the spec adding names to all the "out"
    Packit 79f644
              arguments
    Packit 79f644
    Packit 79f644
              <xsl:if test="not(@name) or @name = ''">
    Packit 79f644
                <xsl:message terminate="no">
    Packit 79f644
                  <xsl:text>INFO: an 'out' arg of method </xsl:text>
    Packit 79f644
                  <xsl:value-of select="concat(../../@name, '.', ../@name)"/>
    Packit 79f644
                  <xsl:text> has no name</xsl:text>
    Packit 79f644
                </xsl:message>
    Packit 79f644
              </xsl:if>-->
    Packit 79f644
            </xsl:when>
    Packit 79f644
            <xsl:otherwise>
    Packit 79f644
              <xsl:message terminate="yes">
    Packit 79f644
                <xsl:text>ERR: an arg of method </xsl:text>
    Packit 79f644
                <xsl:value-of select="concat(../../@name, '.', ../@name)"/>
    Packit 79f644
                <xsl:text> has direction neither 'in' nor 'out'</xsl:text>
    Packit 79f644
              </xsl:message>
    Packit 79f644
            </xsl:otherwise>
    Packit 79f644
          </xsl:choose>
    Packit 79f644
        </xsl:for-each>
    Packit 79f644
    Packit 79f644
        
    Packit 79f644
          

    Packit 79f644
            
    Packit 79f644
              <xsl:value-of select="@name"/>
    Packit 79f644
             (
    Packit 79f644
            <xsl:for-each xmlns="" select="arg[@direction='in']">
    Packit 79f644
              <xsl:value-of select="@type"/>: <xsl:value-of select="@name"/>
    Packit 79f644
              <xsl:if test="position() != last()">, </xsl:if>
    Packit 79f644
            </xsl:for-each>
    Packit 79f644
            ) →
    Packit 79f644
            <xsl:choose>
    Packit 79f644
              <xsl:when test="arg[@direction='out']">
    Packit 79f644
                <xsl:for-each xmlns="" select="arg[@direction='out']">
    Packit 79f644
                  <xsl:value-of select="@type"/>
    Packit 79f644
                  <xsl:if test="position() != last()">, </xsl:if>
    Packit 79f644
                </xsl:for-each>
    Packit 79f644
              </xsl:when>
    Packit 79f644
              <xsl:otherwise>nothing</xsl:otherwise>
    Packit 79f644
            </xsl:choose>
    Packit 79f644
          
    Packit 79f644
          
    Packit 79f644
            <xsl:apply-templates select="tp:docstring" />
    Packit 79f644
            <xsl:apply-templates select="tp:added"/>
    Packit 79f644
            <xsl:apply-templates select="tp:changed"/>
    Packit 79f644
            <xsl:apply-templates select="tp:deprecated"/>
    Packit 79f644
          
    Packit 79f644
    Packit 79f644
          <xsl:if test="arg[@direction='in']">
    Packit 79f644
            
    Packit 79f644
              

    Parameters

    Packit 79f644
              
    Packit 79f644
                
    Packit 79f644
                  mode="parameters-in-docstring"/>
    Packit 79f644
              
    Packit 79f644
            
    Packit 79f644
          </xsl:if>
    Packit 79f644
    Packit 79f644
          <xsl:if test="arg[@direction='out']">
    Packit 79f644
            
    Packit 79f644
              

    Returns

    Packit 79f644
              
    Packit 79f644
                
    Packit 79f644
                  mode="returns-in-docstring"/>
    Packit 79f644
              
    Packit 79f644
            
    Packit 79f644
          </xsl:if>
    Packit 79f644
    Packit 79f644
          <xsl:if test="tp:possible-errors">
    Packit 79f644
            
    Packit 79f644
              

    Possible errors

    Packit 79f644
              
    Packit 79f644
                <xsl:apply-templates select="tp:possible-errors/tp:error"/>
    Packit 79f644
              
    Packit 79f644
            
    Packit 79f644
          </xsl:if>
    Packit 79f644
    Packit 79f644
        
    Packit 79f644
      </xsl:template>
    Packit 79f644
    Packit 79f644
      <xsl:template name="tp-type">
    Packit 79f644
        <xsl:param name="tp-type"/>
    Packit 79f644
        <xsl:param name="type"/>
    Packit 79f644
    Packit 79f644
        <xsl:variable name="single-type">
    Packit 79f644
          <xsl:choose>
    Packit 79f644
            <xsl:when test="contains($tp-type, '[]')">
    Packit 79f644
              <xsl:value-of select="substring-before($tp-type, '[]')"/>
    Packit 79f644
            </xsl:when>
    Packit 79f644
            <xsl:otherwise>
    Packit 79f644
              <xsl:value-of select="$tp-type"/>
    Packit 79f644
            </xsl:otherwise>
    Packit 79f644
          </xsl:choose>
    Packit 79f644
        </xsl:variable>
    Packit 79f644
    Packit 79f644
        <xsl:variable name="type-of-tp-type">
    Packit 79f644
          <xsl:if test="contains($tp-type, '[]')">
    Packit 79f644
            
    Packit 79f644
            
    Packit 79f644
              translate(substring-after($tp-type, '[]'), '[]', 'a'))"/>
    Packit 79f644
          </xsl:if>
    Packit 79f644
    Packit 79f644
          <xsl:choose>
    Packit 79f644
            <xsl:when test="//tp:simple-type[@name=$single-type]">
    Packit 79f644
              <xsl:value-of select="string(//tp:simple-type[@name=$single-type]/@type)"/>
    Packit 79f644
            </xsl:when>
    Packit 79f644
            <xsl:when test="//tp:struct[@name=$single-type]">
    Packit 79f644
              <xsl:text>(</xsl:text>
    Packit 79f644
              <xsl:for-each select="//tp:struct[@name=$single-type]/tp:member">
    Packit 79f644
                <xsl:value-of select="@type"/>
    Packit 79f644
              </xsl:for-each>
    Packit 79f644
              <xsl:text>)</xsl:text>
    Packit 79f644
            </xsl:when>
    Packit 79f644
            <xsl:when test="//tp:enum[@name=$single-type]">
    Packit 79f644
              <xsl:value-of select="string(//tp:enum[@name=$single-type]/@type)"/>
    Packit 79f644
            </xsl:when>
    Packit 79f644
            <xsl:when test="//tp:flags[@name=$single-type]">
    Packit 79f644
              <xsl:value-of select="string(//tp:flags[@name=$single-type]/@type)"/>
    Packit 79f644
            </xsl:when>
    Packit 79f644
            <xsl:when test="//tp:mapping[@name=$single-type]">
    Packit 79f644
              <xsl:text>a{</xsl:text>
    Packit 79f644
              <xsl:for-each select="//tp:mapping[@name=$single-type]/tp:member">
    Packit 79f644
                <xsl:value-of select="@type"/>
    Packit 79f644
              </xsl:for-each>
    Packit 79f644
              <xsl:text>}</xsl:text>
    Packit 79f644
            </xsl:when>
    Packit 79f644
            <xsl:when test="//tp:external-type[@name=$single-type]">
    Packit 79f644
              <xsl:value-of select="string(//tp:external-type[@name=$single-type]/@type)"/>
    Packit 79f644
            </xsl:when>
    Packit 79f644
            <xsl:otherwise>
    Packit 79f644
              <xsl:message terminate="yes">
    Packit 79f644
                <xsl:text>ERR: Unable to find type '</xsl:text>
    Packit 79f644
                <xsl:value-of select="$tp-type"/>
    Packit 79f644
                <xsl:text>'
    </xsl:text>
    Packit 79f644
              </xsl:message>
    Packit 79f644
            </xsl:otherwise>
    Packit 79f644
          </xsl:choose>
    Packit 79f644
        </xsl:variable>
    Packit 79f644
    Packit 79f644
        
    Packit 79f644
          string($type-of-tp-type) != string($type)">
    Packit 79f644
          <xsl:message terminate="yes">
    Packit 79f644
            <xsl:text>ERR: tp:type '</xsl:text>
    Packit 79f644
            <xsl:value-of select="$tp-type"/>
    Packit 79f644
            <xsl:text>' has D-Bus type '</xsl:text>
    Packit 79f644
            <xsl:value-of select="$type-of-tp-type"/>
    Packit 79f644
            <xsl:text>' but has been used with type='</xsl:text>
    Packit 79f644
            <xsl:value-of select="$type"/>
    Packit 79f644
            <xsl:text>'
    </xsl:text>
    Packit 79f644
          </xsl:message>
    Packit 79f644
        </xsl:if>
    Packit 79f644
    Packit 79f644
        <xsl:value-of select="$tp-type"/>
    Packit 79f644
    Packit 79f644
      </xsl:template>
    Packit 79f644
    Packit 79f644
      <xsl:template name="parenthesized-tp-type">
    Packit 79f644
        <xsl:if test="@tp:type">
    Packit 79f644
          <xsl:text> (</xsl:text>
    Packit 79f644
          <xsl:call-template name="tp-type">
    Packit 79f644
            <xsl:with-param name="tp-type" select="@tp:type"/>
    Packit 79f644
            <xsl:with-param name="type" select="@type"/>
    Packit 79f644
          </xsl:call-template>
    Packit 79f644
          <xsl:text>)</xsl:text>
    Packit 79f644
        </xsl:if>
    Packit 79f644
      </xsl:template>
    Packit 79f644
    Packit 79f644
      <xsl:template match="tp:member" mode="members-in-docstring">
    Packit 79f644
        
    Packit 79f644
          <xsl:value-of select="@name"/> −
    Packit 79f644
          <xsl:value-of select="@type"/>
    Packit 79f644
          <xsl:call-template name="parenthesized-tp-type"/>
    Packit 79f644
        
    Packit 79f644
        
    Packit 79f644
          <xsl:choose>
    Packit 79f644
            <xsl:when test="tp:docstring">
    Packit 79f644
              <xsl:apply-templates select="tp:docstring" />
    Packit 79f644
            </xsl:when>
    Packit 79f644
            <xsl:otherwise>
    Packit 79f644
              (undocumented)
    Packit 79f644
            </xsl:otherwise>
    Packit 79f644
          </xsl:choose>
    Packit 79f644
        
    Packit 79f644
      </xsl:template>
    Packit 79f644
    Packit 79f644
      <xsl:template match="arg" mode="parameters-in-docstring">
    Packit 79f644
        
    Packit 79f644
          <xsl:value-of select="@name"/> −
    Packit 79f644
          <xsl:value-of select="@type"/>
    Packit 79f644
          <xsl:call-template name="parenthesized-tp-type"/>
    Packit 79f644
        
    Packit 79f644
        
    Packit 79f644
          <xsl:apply-templates select="tp:docstring" />
    Packit 79f644
        
    Packit 79f644
      </xsl:template>
    Packit 79f644
    Packit 79f644
      <xsl:template match="arg" mode="returns-in-docstring">
    Packit 79f644
        
    Packit 79f644
          <xsl:if test="@name">
    Packit 79f644
            <xsl:value-of select="@name"/> −
    Packit 79f644
          </xsl:if>
    Packit 79f644
          <xsl:value-of select="@type"/>
    Packit 79f644
          <xsl:call-template name="parenthesized-tp-type"/>
    Packit 79f644
        
    Packit 79f644
        
    Packit 79f644
          <xsl:apply-templates select="tp:docstring"/>
    Packit 79f644
        
    Packit 79f644
      </xsl:template>
    Packit 79f644
    Packit 79f644
      <xsl:template match="tp:possible-errors/tp:error">
    Packit 79f644
        
    Packit 79f644
          <xsl:value-of select="@name"/>
    Packit 79f644
        
    Packit 79f644
        
    Packit 79f644
            <xsl:variable name="name" select="@name"/>
    Packit 79f644
            <xsl:choose>
    Packit 79f644
              <xsl:when test="tp:docstring">
    Packit 79f644
                <xsl:apply-templates select="tp:docstring"/>
    Packit 79f644
              </xsl:when>
    Packit 79f644
              <xsl:when test="//tp:errors/tp:error[concat(../@namespace, '.', translate(@name, ' ', ''))=$name]/tp:docstring">
    Packit 79f644
                <xsl:apply-templates select="//tp:errors/tp:error[concat(../@namespace, '.', translate(@name, ' ', ''))=$name]/tp:docstring"/> (generic description)
    Packit 79f644
              </xsl:when>
    Packit 79f644
              <xsl:otherwise>
    Packit 79f644
                (Undocumented.)
    Packit 79f644
              </xsl:otherwise>
    Packit 79f644
            </xsl:choose>
    Packit 79f644
        
    Packit 79f644
      </xsl:template>
    Packit 79f644
    Packit 79f644
      <xsl:template match="signal">
    Packit 79f644
    Packit 79f644
        <xsl:if test="not(parent::interface)">
    Packit 79f644
          <xsl:message terminate="yes">
    Packit 79f644
            <xsl:text>ERR: signal </xsl:text>
    Packit 79f644
            <xsl:value-of select="@name"/>
    Packit 79f644
            <xsl:text> does not have an interface as parent
    </xsl:text>
    Packit 79f644
          </xsl:message>
    Packit 79f644
        </xsl:if>
    Packit 79f644
    Packit 79f644
        <xsl:if test="not(@name) or @name = ''">
    Packit 79f644
          <xsl:message terminate="yes">
    Packit 79f644
            <xsl:text>ERR: missing @name on a signal of </xsl:text>
    Packit 79f644
            <xsl:value-of select="../@name"/>
    Packit 79f644
            <xsl:text>
    </xsl:text>
    Packit 79f644
          </xsl:message>
    Packit 79f644
        </xsl:if>
    Packit 79f644
    Packit 79f644
        <xsl:for-each select="arg">
    Packit 79f644
          <xsl:if test="not(@type) or @type = ''">
    Packit 79f644
            <xsl:message terminate="yes">
    Packit 79f644
              <xsl:text>ERR: an arg of signal </xsl:text>
    Packit 79f644
              <xsl:value-of select="concat(../../@name, '.', ../@name)"/>
    Packit 79f644
              <xsl:text> has no type</xsl:text>
    Packit 79f644
            </xsl:message>
    Packit 79f644
          </xsl:if>
    Packit 79f644
          <xsl:if test="not(@name) or @name = ''">
    Packit 79f644
            <xsl:message terminate="yes">
    Packit 79f644
              <xsl:text>ERR: an arg of signal </xsl:text>
    Packit 79f644
              <xsl:value-of select="concat(../../@name, '.', ../@name)"/>
    Packit 79f644
              <xsl:text> has no name</xsl:text>
    Packit 79f644
            </xsl:message>
    Packit 79f644
          </xsl:if>
    Packit 79f644
          <xsl:choose>
    Packit 79f644
            <xsl:when test="not(@direction)"/>
    Packit 79f644
            <xsl:when test="@direction='in'">
    Packit 79f644
              <xsl:message terminate="no">
    Packit 79f644
                <xsl:text>INFO: an arg of signal </xsl:text>
    Packit 79f644
                <xsl:value-of select="concat(../../@name, '.', ../@name)"/>
    Packit 79f644
                <xsl:text> has unnecessary direction 'in'</xsl:text>
    Packit 79f644
              </xsl:message>
    Packit 79f644
            </xsl:when>
    Packit 79f644
            <xsl:otherwise>
    Packit 79f644
              <xsl:message terminate="yes">
    Packit 79f644
                <xsl:text>ERR: an arg of signal </xsl:text>
    Packit 79f644
                <xsl:value-of select="concat(../../@name, '.', ../@name)"/>
    Packit 79f644
                <xsl:text> has direction other than 'in'</xsl:text>
    Packit 79f644
              </xsl:message>
    Packit 79f644
            </xsl:otherwise>
    Packit 79f644
          </xsl:choose>
    Packit 79f644
        </xsl:for-each>
    Packit 79f644
    Packit 79f644
        
    Packit 79f644
          

    Packit 79f644
            
    Packit 79f644
              <xsl:value-of select="@name"/>
    Packit 79f644
             (
    Packit 79f644
            <xsl:for-each xmlns="" select="arg">
    Packit 79f644
              <xsl:value-of select="@type"/>: <xsl:value-of select="@name"/>
    Packit 79f644
              <xsl:if test="position() != last()">, </xsl:if>
    Packit 79f644
            </xsl:for-each>
    Packit 79f644
            )
    Packit 79f644
    Packit 79f644
          
    Packit 79f644
            <xsl:apply-templates select="tp:docstring"/>
    Packit 79f644
            <xsl:apply-templates select="tp:added"/>
    Packit 79f644
            <xsl:apply-templates select="tp:changed"/>
    Packit 79f644
            <xsl:apply-templates select="tp:deprecated"/>
    Packit 79f644
          
    Packit 79f644
    Packit 79f644
          <xsl:if test="arg">
    Packit 79f644
            
    Packit 79f644
              

    Parameters

    Packit 79f644
              
    Packit 79f644
                <xsl:apply-templates select="arg" mode="parameters-in-docstring"/>
    Packit 79f644
              
    Packit 79f644
            
    Packit 79f644
          </xsl:if>
    Packit 79f644
        
    Packit 79f644
      </xsl:template>
    Packit 79f644
    Packit 79f644
      
    Packit 79f644
        omit-xml-declaration="yes"
    Packit 79f644
        doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
    Packit 79f644
        doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" />
    Packit 79f644
    Packit 79f644
      <xsl:template match="/tp:spec">
    Packit 79f644
        <html xmlns="http://www.w3.org/1999/xhtml">
    Packit 79f644
          <head>
    Packit 79f644
            <title>
    Packit 79f644
              <xsl:value-of select="tp:title"/>
    Packit 79f644
              <xsl:if test="tp:version">
    Packit 79f644
                <xsl:text> version </xsl:text>
    Packit 79f644
                <xsl:value-of select="tp:version"/>
    Packit 79f644
              </xsl:if>
    Packit 79f644
            </title>
    Packit 79f644
            <style type="text/css">
    Packit 79f644
    Packit 79f644
              body {
    Packit 79f644
                font-family: sans-serif;
    Packit 79f644
                margin: 2em;
    Packit 79f644
                height: 100%;
    Packit 79f644
                font-size: 1.2em;
    Packit 79f644
              }
    Packit 79f644
              h1 {
    Packit 79f644
                padding-top: 5px;
    Packit 79f644
                padding-bottom: 5px;
    Packit 79f644
                font-size: 1.6em;
    Packit 79f644
                background: #dadae2;
    Packit 79f644
              }
    Packit 79f644
              h2 {
    Packit 79f644
                font-size: 1.3em;
    Packit 79f644
              }
    Packit 79f644
              h3 {
    Packit 79f644
                font-size: 1.2em;
    Packit 79f644
              }
    Packit 79f644
              a:link, a:visited, a:link:hover, a:visited:hover {
    Packit 79f644
                font-weight: bold;
    Packit 79f644
              }
    Packit 79f644
              .topbox {
    Packit 79f644
                padding-top: 10px;
    Packit 79f644
                padding-left: 10px;
    Packit 79f644
                border-bottom: black solid 1px;
    Packit 79f644
                padding-bottom: 10px;
    Packit 79f644
                background: #dadae2;
    Packit 79f644
                font-size: 2em;
    Packit 79f644
                font-weight: bold;
    Packit 79f644
                color: #5c5c5c;
    Packit 79f644
              }
    Packit 79f644
              .topnavbox {
    Packit 79f644
                padding-left: 10px;
    Packit 79f644
                padding-top: 5px;
    Packit 79f644
                padding-bottom: 5px;
    Packit 79f644
                background: #abacba;
    Packit 79f644
                border-bottom: black solid 1px;
    Packit 79f644
                font-size: 1.2em;
    Packit 79f644
              }
    Packit 79f644
              .topnavbox a{
    Packit 79f644
                color: black;
    Packit 79f644
                font-weight: normal;
    Packit 79f644
              }
    Packit 79f644
              .sidebar {
    Packit 79f644
                float: left;
    Packit 79f644
                /* width:9em;
    Packit 79f644
                border-right:#abacba solid 1px;
    Packit 79f644
                border-left: #abacba solid 1px;
    Packit 79f644
                height:100%; */
    Packit 79f644
                border: #abacba solid 1px;
    Packit 79f644
                padding-left: 10px;
    Packit 79f644
                margin-left: 10px;
    Packit 79f644
                padding-right: 10px;
    Packit 79f644
                margin-right: 10px;
    Packit 79f644
                color: #5d5d5d;
    Packit 79f644
                background: #dadae2;
    Packit 79f644
              }
    Packit 79f644
              .sidebar a {
    Packit 79f644
                text-decoration: none;
    Packit 79f644
                border-bottom: #e29625 dotted 1px;
    Packit 79f644
                color: #e29625;
    Packit 79f644
                font-weight: normal;
    Packit 79f644
              }
    Packit 79f644
              .sidebar h1 {
    Packit 79f644
                font-size: 1.2em;
    Packit 79f644
                color: black;
    Packit 79f644
              }
    Packit 79f644
              .sidebar ul {
    Packit 79f644
                padding-left: 25px;
    Packit 79f644
                padding-bottom: 10px;
    Packit 79f644
                border-bottom: #abacba solid 1px;
    Packit 79f644
              }
    Packit 79f644
              .sidebar li {
    Packit 79f644
                padding-top: 2px;
    Packit 79f644
                padding-bottom: 2px;
    Packit 79f644
              }
    Packit 79f644
              .sidebar h2 {
    Packit 79f644
                font-style:italic;
    Packit 79f644
                font-size: 0.81em;
    Packit 79f644
                padding-left: 5px;
    Packit 79f644
                padding-right: 5px;
    Packit 79f644
                font-weight: normal;
    Packit 79f644
              }
    Packit 79f644
              .date {
    Packit 79f644
                font-size: 0.6em;
    Packit 79f644
                float: right;
    Packit 79f644
                font-style: italic;
    Packit 79f644
              }
    Packit 79f644
              .method, .signal, .property {
    Packit 79f644
                margin-left: 1em;
    Packit 79f644
                margin-right: 4em;
    Packit 79f644
              }
    Packit 79f644
              .rationale {
    Packit 79f644
                font-style: italic;
    Packit 79f644
                border-left: 0.25em solid #808080;
    Packit 79f644
                padding-left: 0.5em;
    Packit 79f644
              }
    Packit 79f644
    Packit 79f644
              .added {
    Packit 79f644
                color: #006600;
    Packit 79f644
                background: #ffffff;
    Packit 79f644
              }
    Packit 79f644
              .deprecated {
    Packit 79f644
                color: #ff0000;
    Packit 79f644
                background: #ffffff;
    Packit 79f644
              }
    Packit 79f644
              table, tr, td, th {
    Packit 79f644
                border: 1px solid #666;
    Packit 79f644
              }
    Packit 79f644
    Packit 79f644
            </style>
    Packit 79f644
          </head>
    Packit 79f644
          <body>
    Packit 79f644
            

    Packit 79f644
              <xsl:value-of select="tp:title" />
    Packit 79f644
            
    Packit 79f644
            <xsl:if test="tp:version">
    Packit 79f644
              

    Version <xsl:value-of select="string(tp:version)"/>

    Packit 79f644
            </xsl:if>
    Packit 79f644
            <xsl:apply-templates select="tp:copyright"/>
    Packit 79f644
            <xsl:apply-templates select="tp:license"/>
    Packit 79f644
            <xsl:apply-templates select="tp:docstring"/>
    Packit 79f644
    Packit 79f644
            

    Interfaces

    Packit 79f644
            
      Packit 79f644
                <xsl:for-each select="//node/interface">
      Packit 79f644
                  
    • <xsl:value-of select="@name"/>
    • Packit 79f644
                </xsl:for-each>
      Packit 79f644
              
      Packit 79f644
      Packit 79f644
              <xsl:apply-templates select="//node"/>
      Packit 79f644
              <xsl:apply-templates select="tp:generic-types"/>
      Packit 79f644
              <xsl:apply-templates select="tp:errors"/>
      Packit 79f644
      Packit 79f644
              

      Index

      Packit 79f644
              

      Index of interfaces

      Packit 79f644
              
        Packit 79f644
                  <xsl:for-each select="//node/interface">
        Packit 79f644
                    
      • <xsl:value-of select="@name"/>
      • Packit 79f644
                  </xsl:for-each>
        Packit 79f644
                
        Packit 79f644
                

        Index of types

        Packit 79f644
                
          Packit 79f644
                    <xsl:for-each select="//tp:simple-type | //tp:enum | //tp:flags | //tp:mapping | //tp:struct | //tp:external-type">
          Packit 79f644
                      <xsl:sort select="@name"/>
          Packit 79f644
                      
        • Packit 79f644
                        
          Packit 79f644
                          
          Packit 79f644
                            <xsl:value-of select="@name"/>
          Packit 79f644
                          
          Packit 79f644
                        
          Packit 79f644
                        <xsl:apply-templates mode="in-index" select="."/>
          Packit 79f644
                      
          Packit 79f644
                    </xsl:for-each>
          Packit 79f644
                  
          Packit 79f644
                </body>
          Packit 79f644
              </html>
          Packit 79f644
            </xsl:template>
          Packit 79f644
          Packit 79f644
            <xsl:template match="node">
          Packit 79f644
                <xsl:apply-templates />
          Packit 79f644
            </xsl:template>
          Packit 79f644
          Packit 79f644
            <xsl:template match="text()">
          Packit 79f644
              <xsl:if test="normalize-space(.) != ''">
          Packit 79f644
                <xsl:message terminate="yes">
          Packit 79f644
                  <xsl:text>Stray text: {{{</xsl:text>
          Packit 79f644
                  <xsl:value-of select="." />
          Packit 79f644
                  <xsl:text>}}}
          </xsl:text>
          Packit 79f644
                </xsl:message>
          Packit 79f644
              </xsl:if>
          Packit 79f644
            </xsl:template>
          Packit 79f644
          Packit 79f644
            <xsl:template match="*">
          Packit 79f644
                <xsl:message terminate="yes">
          Packit 79f644
                   <xsl:text>Unrecognised element: {</xsl:text>
          Packit 79f644
                   <xsl:value-of select="namespace-uri(.)" />
          Packit 79f644
                   <xsl:text>}</xsl:text>
          Packit 79f644
                   <xsl:value-of select="local-name(.)" />
          Packit 79f644
                   <xsl:text>
          </xsl:text>
          Packit 79f644
                </xsl:message>
          Packit 79f644
            </xsl:template>
          Packit 79f644
          </xsl:stylesheet>
          Packit 79f644
          Packit 79f644