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

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

Added in

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

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

Changed in

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

Packit Service c6b9b0
      </xsl:when>
Packit Service c6b9b0
      <xsl:otherwise>
Packit Service c6b9b0
        

Changed in version

Packit Service c6b9b0
          <xsl:value-of select="@version"/>

Packit Service c6b9b0
      </xsl:otherwise>
Packit Service c6b9b0
    </xsl:choose>
Packit Service c6b9b0
  </xsl:template>
Packit Service c6b9b0
Packit Service c6b9b0
  <xsl:template match="tp:deprecated">
Packit Service c6b9b0
    

Deprecated

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

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

Errors

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

Generic types

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

Simple types

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

Enumerated types:

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

Sets of flags:

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

Structure types

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

Mapping types

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

Types defined elsewhere

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

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

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

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

Packit Service c6b9b0
Packit Service c6b9b0
    <xsl:if test="@tp:causes-havoc">
Packit Service c6b9b0
      

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

Packit Service c6b9b0
    </xsl:if>
Packit Service c6b9b0
Packit Service c6b9b0
    <xsl:if test="tp:requires">
Packit Service c6b9b0
      

Implementations of this interface must also implement:

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

    Methods:

    Packit Service c6b9b0
            <xsl:apply-templates select="method"/>
    Packit Service c6b9b0
          </xsl:when>
    Packit Service c6b9b0
          <xsl:otherwise>
    Packit Service c6b9b0
            

    Interface has no methods.

    Packit Service c6b9b0
          </xsl:otherwise>
    Packit Service c6b9b0
        </xsl:choose>
    Packit Service c6b9b0
    Packit Service c6b9b0
        <xsl:choose>
    Packit Service c6b9b0
          <xsl:when test="signal">
    Packit Service c6b9b0
            

    Signals:

    Packit Service c6b9b0
            <xsl:apply-templates select="signal"/>
    Packit Service c6b9b0
          </xsl:when>
    Packit Service c6b9b0
          <xsl:otherwise>
    Packit Service c6b9b0
            

    Interface has no signals.

    Packit Service c6b9b0
          </xsl:otherwise>
    Packit Service c6b9b0
        </xsl:choose>
    Packit Service c6b9b0
    Packit Service c6b9b0
        <xsl:choose>
    Packit Service c6b9b0
          <xsl:when test="tp:property">
    Packit Service c6b9b0
            

    Telepathy Properties:

    Packit Service c6b9b0
            

    Accessed using the

    Packit Service c6b9b0
              Telepathy
    Packit Service c6b9b0
                Properties interface.

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

    Interface has no Telepathy

    Packit Service c6b9b0
              properties.

    Packit Service c6b9b0
          </xsl:otherwise>
    Packit Service c6b9b0
        </xsl:choose>
    Packit Service c6b9b0
    Packit Service c6b9b0
        <xsl:choose>
    Packit Service c6b9b0
          <xsl:when test="property">
    Packit Service c6b9b0
            

    D-Bus core Properties:

    Packit Service c6b9b0
            

    Accessed using the

    Packit Service c6b9b0
              org.freedesktop.DBus.Properties interface.

    Packit Service c6b9b0
            
    Packit Service c6b9b0
              <xsl:apply-templates select="property"/>
    Packit Service c6b9b0
            
    Packit Service c6b9b0
          </xsl:when>
    Packit Service c6b9b0
          <xsl:otherwise>
    Packit Service c6b9b0
            

    Interface has no D-Bus core

    Packit Service c6b9b0
              properties.

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

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

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

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

    In bindings that need a separate name, arrays of

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

    Packit Service c6b9b0
            </xsl:if>
    Packit Service c6b9b0
          
    Packit Service c6b9b0
          
    Packit Service c6b9b0
            

    Members

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

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

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

    In bindings that need a separate name, arrays of

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

    Packit Service c6b9b0
            </xsl:when>
    Packit Service c6b9b0
            <xsl:otherwise>
    Packit Service c6b9b0
              

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

    Packit Service c6b9b0
                make sense.

    Packit Service c6b9b0
            </xsl:otherwise>
    Packit Service c6b9b0
          </xsl:choose>
    Packit Service c6b9b0
          
    Packit Service c6b9b0
            

    Members

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

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

    Parameters

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

    Returns

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

    Possible errors

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

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

    Parameters

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

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

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

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

    Interfaces

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

      Index

      Packit Service c6b9b0
              

      Index of interfaces

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

        Index of types

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