diff options
Diffstat (limited to 'tools/doc-generator.xsl')
-rw-r--r-- | tools/doc-generator.xsl | 1199 |
1 files changed, 0 insertions, 1199 deletions
diff --git a/tools/doc-generator.xsl b/tools/doc-generator.xsl deleted file mode 100644 index 76fc96964..000000000 --- a/tools/doc-generator.xsl +++ /dev/null @@ -1,1199 +0,0 @@ -<!-- Generate HTML documentation from the Telepathy specification. -The master copy of this stylesheet is in the Telepathy spec repository - -please make any changes there. - -Copyright (C) 2006-2008 Collabora Limited - -This library is free software; you can redistribute it and/or -modify it under the terms of the GNU Lesser General Public -License as published by the Free Software Foundation; either -version 2.1 of the License, or (at your option) any later version. - -This library is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -Lesser General Public License for more details. - -You should have received a copy of the GNU Lesser General Public -License along with this library; if not, write to the Free Software -Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ---> - -<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" - xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0" - xmlns:html="http://www.w3.org/1999/xhtml" - exclude-result-prefixes="tp html"> - <!--Don't move the declaration of the HTML namespace up here — XMLNSs - don't work ideally in the presence of two things that want to use the - absence of a prefix, sadly. --> - - <xsl:param name="allow-undefined-interfaces" select="false()"/> - - <xsl:template match="html:* | @*" mode="html"> - <xsl:copy> - <xsl:apply-templates mode="html"/> - </xsl:copy> - </xsl:template> - - <xsl:template match="tp:type" mode="html"> - <xsl:call-template name="tp-type"> - <xsl:with-param name="tp-type" select="string(.)"/> - </xsl:call-template> - </xsl:template> - - <!-- tp:dbus-ref: reference a D-Bus interface, signal, method or property --> - <xsl:template match="tp:dbus-ref" mode="html"> - <xsl:variable name="name"> - <xsl:choose> - <xsl:when test="@namespace"> - <xsl:value-of select="@namespace"/> - <xsl:text>.</xsl:text> - </xsl:when> - </xsl:choose> - <xsl:value-of select="string(.)"/> - </xsl:variable> - - <xsl:choose> - <xsl:when test="//interface[@name=$name] - or //interface/method[concat(../@name, '.', @name)=$name] - or //interface/signal[concat(../@name, '.', @name)=$name] - or //interface/property[concat(../@name, '.', @name)=$name] - or //interface[@name=concat($name, '.DRAFT')] - or //interface/method[ - concat(../@name, '.', @name)=concat($name, '.DRAFT')] - or //interface/signal[ - concat(../@name, '.', @name)=concat($name, '.DRAFT')] - or //interface/property[ - concat(../@name, '.', @name)=concat($name, '.DRAFT')] - "> - <a xmlns="http://www.w3.org/1999/xhtml" href="#{$name}"> - <xsl:value-of select="string(.)"/> - </a> - </xsl:when> - - <xsl:when test="$allow-undefined-interfaces"> - <span xmlns="http://www.w3.org/1999/xhtml" title="defined elsewhere"> - <xsl:value-of select="string(.)"/> - </span> - </xsl:when> - - <xsl:otherwise> - <xsl:message terminate="yes"> - <xsl:text>ERR: cannot find D-Bus interface, method, </xsl:text> - <xsl:text>signal or property called '</xsl:text> - <xsl:value-of select="$name"/> - <xsl:text>' </xsl:text> - </xsl:message> - </xsl:otherwise> - </xsl:choose> - </xsl:template> - - <!-- tp:member-ref: reference a property of the current interface --> - <xsl:template match="tp:member-ref" mode="html"> - <xsl:variable name="prefix" select="concat(ancestor::interface/@name, - '.')"/> - <xsl:variable name="name" select="string(.)"/> - - <xsl:if test="not(ancestor::interface)"> - <xsl:message terminate="yes"> - <xsl:text>ERR: Cannot use tp:member-ref when not in an</xsl:text> - <xsl:text> <interface> </xsl:text> - </xsl:message> - </xsl:if> - - <xsl:choose> - <xsl:when test="ancestor::interface/signal[@name=$name]"/> - <xsl:when test="ancestor::interface/method[@name=$name]"/> - <xsl:when test="ancestor::interface/property[@name=$name]"/> - <xsl:otherwise> - <xsl:message terminate="yes"> - <xsl:text>ERR: interface </xsl:text> - <xsl:value-of select="ancestor::interface/@name"/> - <xsl:text> has no signal/method/property called </xsl:text> - <xsl:value-of select="$name"/> - <xsl:text> </xsl:text> - </xsl:message> - </xsl:otherwise> - </xsl:choose> - - <a xmlns="http://www.w3.org/1999/xhtml" href="#{$prefix}{$name}"> - <xsl:value-of select="$name"/> - </a> - </xsl:template> - - <xsl:template match="*" mode="identity"> - <xsl:copy> - <xsl:apply-templates mode="identity"/> - </xsl:copy> - </xsl:template> - - <xsl:template match="tp:docstring"> - <xsl:apply-templates mode="html"/> - </xsl:template> - - <xsl:template match="tp:added"> - <p class="added" xmlns="http://www.w3.org/1999/xhtml">Added in - version <xsl:value-of select="@version"/>. - <xsl:apply-templates select="node()" mode="html"/></p> - </xsl:template> - - <xsl:template match="tp:changed"> - <xsl:choose> - <xsl:when test="node()"> - <p class="changed" xmlns="http://www.w3.org/1999/xhtml">Changed in - version <xsl:value-of select="@version"/>: - <xsl:apply-templates select="node()" mode="html"/></p> - </xsl:when> - <xsl:otherwise> - <p class="changed">Changed in version - <xsl:value-of select="@version"/></p> - </xsl:otherwise> - </xsl:choose> - </xsl:template> - - <xsl:template match="tp:deprecated"> - <p class="deprecated" xmlns="http://www.w3.org/1999/xhtml">Deprecated - since version <xsl:value-of select="@version"/>. - <xsl:apply-templates select="node()" mode="html"/></p> - </xsl:template> - - <xsl:template match="tp:rationale" mode="html"> - <div xmlns="http://www.w3.org/1999/xhtml" class="rationale"> - <xsl:apply-templates select="node()" mode="html"/> - </div> - </xsl:template> - - <xsl:template match="tp:errors"> - <h1 xmlns="http://www.w3.org/1999/xhtml">Errors</h1> - <xsl:apply-templates/> - </xsl:template> - - <xsl:template match="tp:generic-types"> - <h1 xmlns="http://www.w3.org/1999/xhtml">Generic types</h1> - <xsl:call-template name="do-types"/> - </xsl:template> - - <xsl:template name="do-types"> - <xsl:if test="tp:simple-type"> - <h2 xmlns="http://www.w3.org/1999/xhtml">Simple types</h2> - <xsl:apply-templates select="tp:simple-type"/> - </xsl:if> - - <xsl:if test="tp:enum"> - <h2 xmlns="http://www.w3.org/1999/xhtml">Enumerated types:</h2> - <xsl:apply-templates select="tp:enum"/> - </xsl:if> - - <xsl:if test="tp:flags"> - <h2 xmlns="http://www.w3.org/1999/xhtml">Sets of flags:</h2> - <xsl:apply-templates select="tp:flags"/> - </xsl:if> - - <xsl:if test="tp:struct"> - <h2 xmlns="http://www.w3.org/1999/xhtml">Structure types</h2> - <xsl:apply-templates select="tp:struct"/> - </xsl:if> - - <xsl:if test="tp:mapping"> - <h2 xmlns="http://www.w3.org/1999/xhtml">Mapping types</h2> - <xsl:apply-templates select="tp:mapping"/> - </xsl:if> - - <xsl:if test="tp:external-type"> - <h2 xmlns="http://www.w3.org/1999/xhtml">Types defined elsewhere</h2> - <dl><xsl:apply-templates select="tp:external-type"/></dl> - </xsl:if> - </xsl:template> - - <xsl:template match="tp:error"> - <h2 xmlns="http://www.w3.org/1999/xhtml"><a name="{concat(../@namespace, '.', translate(@name, ' ', ''))}"></a><xsl:value-of select="concat(../@namespace, '.', translate(@name, ' ', ''))"/></h2> - <xsl:apply-templates select="tp:docstring"/> - <xsl:apply-templates select="tp:added"/> - <xsl:apply-templates select="tp:changed"/> - <xsl:apply-templates select="tp:deprecated"/> - </xsl:template> - - <xsl:template match="/tp:spec/tp:copyright"> - <div xmlns="http://www.w3.org/1999/xhtml"> - <xsl:apply-templates mode="text"/> - </div> - </xsl:template> - <xsl:template match="/tp:spec/tp:license"> - <div xmlns="http://www.w3.org/1999/xhtml" class="license"> - <xsl:apply-templates mode="html"/> - </div> - </xsl:template> - - <xsl:template match="tp:copyright"/> - <xsl:template match="tp:license"/> - - <xsl:template match="interface"> - <h1 xmlns="http://www.w3.org/1999/xhtml"><a name="{@name}"></a><xsl:value-of select="@name"/></h1> - - <xsl:if test="@tp:causes-havoc"> - <p xmlns="http://www.w3.org/1999/xhtml" class="causes-havoc"> - This interface is <xsl:value-of select="@tp:causes-havoc"/> - and is likely to cause havoc to your API/ABI if bindings are generated. - Don't include it in libraries that care about compatibility. - </p> - </xsl:if> - - <xsl:if test="tp:requires"> - <p>Implementations of this interface must also implement:</p> - <ul xmlns="http://www.w3.org/1999/xhtml"> - <xsl:for-each select="tp:requires"> - <li><code><a href="#{@interface}"><xsl:value-of select="@interface"/></a></code></li> - </xsl:for-each> - </ul> - </xsl:if> - - <xsl:apply-templates select="tp:docstring" /> - <xsl:apply-templates select="tp:added"/> - <xsl:apply-templates select="tp:changed"/> - <xsl:apply-templates select="tp:deprecated"/> - - <xsl:choose> - <xsl:when test="method"> - <h2 xmlns="http://www.w3.org/1999/xhtml">Methods:</h2> - <xsl:apply-templates select="method"/> - </xsl:when> - <xsl:otherwise> - <p xmlns="http://www.w3.org/1999/xhtml">Interface has no methods.</p> - </xsl:otherwise> - </xsl:choose> - - <xsl:choose> - <xsl:when test="signal"> - <h2 xmlns="http://www.w3.org/1999/xhtml">Signals:</h2> - <xsl:apply-templates select="signal"/> - </xsl:when> - <xsl:otherwise> - <p xmlns="http://www.w3.org/1999/xhtml">Interface has no signals.</p> - </xsl:otherwise> - </xsl:choose> - - <xsl:choose> - <xsl:when test="tp:property"> - <h2 xmlns="http://www.w3.org/1999/xhtml">Telepathy Properties:</h2> - <p xmlns="http://www.w3.org/1999/xhtml">Accessed using the - <a href="#org.freedesktop.Telepathy.Properties">Telepathy - Properties</a> interface.</p> - <dl xmlns="http://www.w3.org/1999/xhtml"> - <xsl:apply-templates select="tp:property"/> - </dl> - </xsl:when> - <xsl:otherwise> - <p xmlns="http://www.w3.org/1999/xhtml">Interface has no Telepathy - properties.</p> - </xsl:otherwise> - </xsl:choose> - - <xsl:choose> - <xsl:when test="property"> - <h2 xmlns="http://www.w3.org/1999/xhtml">D-Bus core Properties:</h2> - <p xmlns="http://www.w3.org/1999/xhtml">Accessed using the - org.freedesktop.DBus.Properties interface.</p> - <dl xmlns="http://www.w3.org/1999/xhtml"> - <xsl:apply-templates select="property"/> - </dl> - </xsl:when> - <xsl:otherwise> - <p xmlns="http://www.w3.org/1999/xhtml">Interface has no D-Bus core - properties.</p> - </xsl:otherwise> - </xsl:choose> - - <xsl:call-template name="do-types"/> - - </xsl:template> - - <xsl:template match="tp:flags"> - - <xsl:if test="not(@name) or @name = ''"> - <xsl:message terminate="yes"> - <xsl:text>ERR: missing @name on a tp:flags type </xsl:text> - </xsl:message> - </xsl:if> - - <xsl:if test="not(@type) or @type = ''"> - <xsl:message terminate="yes"> - <xsl:text>ERR: missing @type on tp:flags type</xsl:text> - <xsl:value-of select="@name"/> - <xsl:text> </xsl:text> - </xsl:message> - </xsl:if> - - <h3> - <a name="type-{@name}"> - <xsl:value-of select="@name"/> - </a> - </h3> - <xsl:apply-templates select="tp:docstring" /> - <xsl:apply-templates select="tp:added"/> - <xsl:apply-templates select="tp:changed"/> - <xsl:apply-templates select="tp:deprecated"/> - <dl xmlns="http://www.w3.org/1999/xhtml"> - <xsl:variable name="value-prefix"> - <xsl:choose> - <xsl:when test="@value-prefix"> - <xsl:value-of select="@value-prefix"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="@name"/> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - <xsl:for-each select="tp:flag"> - <dt xmlns="http://www.w3.org/1999/xhtml"><code><xsl:value-of select="concat($value-prefix, '_', @suffix)"/> = <xsl:value-of select="@value"/></code></dt> - <xsl:choose> - <xsl:when test="tp:docstring"> - <dd xmlns="http://www.w3.org/1999/xhtml"> - <xsl:apply-templates select="tp:docstring" /> - <xsl:apply-templates select="tp:added"/> - <xsl:apply-templates select="tp:changed"/> - <xsl:apply-templates select="tp:deprecated"/> - </dd> - </xsl:when> - <xsl:otherwise> - <dd xmlns="http://www.w3.org/1999/xhtml">(Undocumented)</dd> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </dl> - </xsl:template> - - <xsl:template match="tp:enum"> - - <xsl:if test="not(@name) or @name = ''"> - <xsl:message terminate="yes"> - <xsl:text>ERR: missing @name on a tp:enum type </xsl:text> - </xsl:message> - </xsl:if> - - <xsl:if test="not(@type) or @type = ''"> - <xsl:message terminate="yes"> - <xsl:text>ERR: missing @type on tp:enum type</xsl:text> - <xsl:value-of select="@name"/> - <xsl:text> </xsl:text> - </xsl:message> - </xsl:if> - - <h3 xmlns="http://www.w3.org/1999/xhtml"> - <a name="type-{@name}"> - <xsl:value-of select="@name"/> - </a> - </h3> - <xsl:apply-templates select="tp:docstring" /> - <xsl:apply-templates select="tp:added"/> - <xsl:apply-templates select="tp:changed"/> - <xsl:apply-templates select="tp:deprecated"/> - <dl xmlns="http://www.w3.org/1999/xhtml"> - <xsl:variable name="value-prefix"> - <xsl:choose> - <xsl:when test="@value-prefix"> - <xsl:value-of select="@value-prefix"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="@name"/> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - <xsl:for-each select="tp:enumvalue"> - <dt xmlns="http://www.w3.org/1999/xhtml"><code><xsl:value-of select="concat($value-prefix, '_', @suffix)"/> = <xsl:value-of select="@value"/></code></dt> - <xsl:choose> - <xsl:when test="tp:docstring"> - <dd xmlns="http://www.w3.org/1999/xhtml"> - <xsl:apply-templates select="tp:docstring" /> - <xsl:apply-templates select="tp:added"/> - <xsl:apply-templates select="tp:changed"/> - <xsl:apply-templates select="tp:deprecated"/> - </dd> - </xsl:when> - <xsl:otherwise> - <dd xmlns="http://www.w3.org/1999/xhtml">(Undocumented)</dd> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - </dl> - </xsl:template> - - <xsl:template match="property"> - - <xsl:if test="not(parent::interface)"> - <xsl:message terminate="yes"> - <xsl:text>ERR: property </xsl:text> - <xsl:value-of select="@name"/> - <xsl:text> does not have an interface as parent </xsl:text> - </xsl:message> - </xsl:if> - - <xsl:if test="not(@name) or @name = ''"> - <xsl:message terminate="yes"> - <xsl:text>ERR: missing @name on a property of </xsl:text> - <xsl:value-of select="../@name"/> - <xsl:text> </xsl:text> - </xsl:message> - </xsl:if> - - <xsl:if test="not(@type) or @type = ''"> - <xsl:message terminate="yes"> - <xsl:text>ERR: missing @type on property </xsl:text> - <xsl:value-of select="concat(../@name, '.', @name)"/> - <xsl:text>: '</xsl:text> - <xsl:value-of select="@access"/> - <xsl:text>' </xsl:text> - </xsl:message> - </xsl:if> - - <dt xmlns="http://www.w3.org/1999/xhtml"> - <a name="{concat(../@name, '.', @name)}"> - <code><xsl:value-of select="@name"/></code> - </a> - <xsl:text> − </xsl:text> - <code><xsl:value-of select="@type"/></code> - <xsl:call-template name="parenthesized-tp-type"/> - <xsl:text>, </xsl:text> - <xsl:choose> - <xsl:when test="@access = 'read'"> - <xsl:text>read-only</xsl:text> - </xsl:when> - <xsl:when test="@access = 'write'"> - <xsl:text>write-only</xsl:text> - </xsl:when> - <xsl:when test="@access = 'readwrite'"> - <xsl:text>read/write</xsl:text> - </xsl:when> - <xsl:otherwise> - <xsl:message terminate="yes"> - <xsl:text>ERR: unknown or missing value for </xsl:text> - <xsl:text>@access on property </xsl:text> - <xsl:value-of select="concat(../@name, '.', @name)"/> - <xsl:text>: '</xsl:text> - <xsl:value-of select="@access"/> - <xsl:text>' </xsl:text> - </xsl:message> - </xsl:otherwise> - </xsl:choose> - </dt> - <dd xmlns="http://www.w3.org/1999/xhtml"> - <xsl:apply-templates select="tp:docstring"/> - <xsl:apply-templates select="tp:added"/> - <xsl:apply-templates select="tp:changed"/> - <xsl:apply-templates select="tp:deprecated"/> - </dd> - </xsl:template> - - <xsl:template match="tp:property"> - <dt xmlns="http://www.w3.org/1999/xhtml"> - <xsl:if test="@name"> - <code><xsl:value-of select="@name"/></code> − - </xsl:if> - <code><xsl:value-of select="@type"/></code> - </dt> - <dd xmlns="http://www.w3.org/1999/xhtml"> - <xsl:apply-templates select="tp:docstring"/> - <xsl:apply-templates select="tp:added"/> - <xsl:apply-templates select="tp:changed"/> - <xsl:apply-templates select="tp:deprecated"/> - </dd> - </xsl:template> - - <xsl:template match="tp:mapping"> - <div xmlns="http://www.w3.org/1999/xhtml" class="struct"> - <h3> - <a name="type-{@name}"> - <xsl:value-of select="@name"/> - </a> − a{ - <xsl:for-each select="tp:member"> - <xsl:value-of select="@type"/> - <xsl:text>: </xsl:text> - <xsl:value-of select="@name"/> - <xsl:if test="position() != last()"> → </xsl:if> - </xsl:for-each> - } - </h3> - <div class="docstring"> - <xsl:apply-templates select="tp:docstring"/> - <xsl:if test="string(@array-name) != ''"> - <p>In bindings that need a separate name, arrays of - <xsl:value-of select="@name"/> should be called - <xsl:value-of select="@array-name"/>.</p> - </xsl:if> - </div> - <div> - <h4>Members</h4> - <dl> - <xsl:apply-templates select="tp:member" mode="members-in-docstring"/> - </dl> - </div> - </div> - </xsl:template> - - <xsl:template match="tp:docstring" mode="in-index"/> - - <xsl:template match="tp:simple-type | tp:enum | tp:flags | tp:external-type" - mode="in-index"> - − <xsl:value-of select="@type"/> - </xsl:template> - - <xsl:template match="tp:simple-type"> - - <xsl:if test="not(@name) or @name = ''"> - <xsl:message terminate="yes"> - <xsl:text>ERR: missing @name on a tp:simple-type </xsl:text> - </xsl:message> - </xsl:if> - - <xsl:if test="not(@type) or @type = ''"> - <xsl:message terminate="yes"> - <xsl:text>ERR: missing @type on tp:simple-type</xsl:text> - <xsl:value-of select="@name"/> - <xsl:text> </xsl:text> - </xsl:message> - </xsl:if> - - <div xmlns="http://www.w3.org/1999/xhtml" class="simple-type"> - <h3> - <a name="type-{@name}"> - <xsl:value-of select="@name"/> - </a> − <xsl:value-of select="@type"/> - </h3> - <div class="docstring"> - <xsl:apply-templates select="tp:docstring"/> - <xsl:apply-templates select="tp:added"/> - <xsl:apply-templates select="tp:changed"/> - <xsl:apply-templates select="tp:deprecated"/> - </div> - </div> - </xsl:template> - - <xsl:template match="tp:external-type"> - - <xsl:if test="not(@name) or @name = ''"> - <xsl:message terminate="yes"> - <xsl:text>ERR: missing @name on a tp:external-type </xsl:text> - </xsl:message> - </xsl:if> - - <xsl:if test="not(@type) or @type = ''"> - <xsl:message terminate="yes"> - <xsl:text>ERR: missing @type on tp:external-type</xsl:text> - <xsl:value-of select="@name"/> - <xsl:text> </xsl:text> - </xsl:message> - </xsl:if> - - <div xmlns="http://www.w3.org/1999/xhtml" class="external-type"> - <dt> - <a name="type-{@name}"> - <xsl:value-of select="@name"/> - </a> − <xsl:value-of select="@type"/> - </dt> - <dd>Defined by: <xsl:value-of select="@from"/></dd> - </div> - </xsl:template> - - <xsl:template match="tp:struct" mode="in-index"> - − ( <xsl:for-each select="tp:member"> - <xsl:value-of select="@type"/> - <xsl:if test="position() != last()">, </xsl:if> - </xsl:for-each> ) - </xsl:template> - - <xsl:template match="tp:mapping" mode="in-index"> - − a{ <xsl:for-each select="tp:member"> - <xsl:value-of select="@type"/> - <xsl:if test="position() != last()"> → </xsl:if> - </xsl:for-each> } - </xsl:template> - - <xsl:template match="tp:struct"> - <div xmlns="http://www.w3.org/1999/xhtml" class="struct"> - <h3> - <a name="type-{@name}"> - <xsl:value-of select="@name"/> - </a> − ( - <xsl:for-each select="tp:member"> - <xsl:value-of select="@type"/> - <xsl:text>: </xsl:text> - <xsl:value-of select="@name"/> - <xsl:if test="position() != last()">, </xsl:if> - </xsl:for-each> - ) - </h3> - <div class="docstring"> - <xsl:apply-templates select="tp:docstring"/> - <xsl:apply-templates select="tp:added"/> - <xsl:apply-templates select="tp:changed"/> - <xsl:apply-templates select="tp:deprecated"/> - </div> - <xsl:choose> - <xsl:when test="string(@array-name) != ''"> - <p>In bindings that need a separate name, arrays of - <xsl:value-of select="@name"/> should be called - <xsl:value-of select="@array-name"/>.</p> - </xsl:when> - <xsl:otherwise> - <p>Arrays of <xsl:value-of select="@name"/> don't generally - make sense.</p> - </xsl:otherwise> - </xsl:choose> - <div> - <h4>Members</h4> - <dl> - <xsl:apply-templates select="tp:member" mode="members-in-docstring"/> - </dl> - </div> - </div> - </xsl:template> - - <xsl:template match="method"> - - <xsl:if test="not(parent::interface)"> - <xsl:message terminate="yes"> - <xsl:text>ERR: method </xsl:text> - <xsl:value-of select="@name"/> - <xsl:text> does not have an interface as parent </xsl:text> - </xsl:message> - </xsl:if> - - <xsl:if test="not(@name) or @name = ''"> - <xsl:message terminate="yes"> - <xsl:text>ERR: missing @name on a method of </xsl:text> - <xsl:value-of select="../@name"/> - <xsl:text> </xsl:text> - </xsl:message> - </xsl:if> - - <xsl:for-each select="arg"> - <xsl:if test="not(@type) or @type = ''"> - <xsl:message terminate="yes"> - <xsl:text>ERR: an arg of method </xsl:text> - <xsl:value-of select="concat(../../@name, '.', ../@name)"/> - <xsl:text> has no type</xsl:text> - </xsl:message> - </xsl:if> - <xsl:choose> - <xsl:when test="@direction='in'"> - <xsl:if test="not(@name) or @name = ''"> - <xsl:message terminate="yes"> - <xsl:text>ERR: an 'in' arg of method </xsl:text> - <xsl:value-of select="concat(../../@name, '.', ../@name)"/> - <xsl:text> has no name</xsl:text> - </xsl:message> - </xsl:if> - </xsl:when> - <xsl:when test="@direction='out'"> - <!-- FIXME: This is commented out until someone with a lot of time - on their hands goes through the spec adding names to all the "out" - arguments - - <xsl:if test="not(@name) or @name = ''"> - <xsl:message terminate="no"> - <xsl:text>INFO: an 'out' arg of method </xsl:text> - <xsl:value-of select="concat(../../@name, '.', ../@name)"/> - <xsl:text> has no name</xsl:text> - </xsl:message> - </xsl:if>--> - </xsl:when> - <xsl:otherwise> - <xsl:message terminate="yes"> - <xsl:text>ERR: an arg of method </xsl:text> - <xsl:value-of select="concat(../../@name, '.', ../@name)"/> - <xsl:text> has direction neither 'in' nor 'out'</xsl:text> - </xsl:message> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - - <div xmlns="http://www.w3.org/1999/xhtml" class="method"> - <h3 xmlns="http://www.w3.org/1999/xhtml"> - <a name="{concat(../@name, concat('.', @name))}"> - <xsl:value-of select="@name"/> - </a> ( - <xsl:for-each xmlns="" select="arg[@direction='in']"> - <xsl:value-of select="@type"/>: <xsl:value-of select="@name"/> - <xsl:if test="position() != last()">, </xsl:if> - </xsl:for-each> - ) → - <xsl:choose> - <xsl:when test="arg[@direction='out']"> - <xsl:for-each xmlns="" select="arg[@direction='out']"> - <xsl:value-of select="@type"/> - <xsl:if test="position() != last()">, </xsl:if> - </xsl:for-each> - </xsl:when> - <xsl:otherwise>nothing</xsl:otherwise> - </xsl:choose> - </h3> - <div xmlns="http://www.w3.org/1999/xhtml" class="docstring"> - <xsl:apply-templates select="tp:docstring" /> - <xsl:apply-templates select="tp:added"/> - <xsl:apply-templates select="tp:changed"/> - <xsl:apply-templates select="tp:deprecated"/> - </div> - - <xsl:if test="arg[@direction='in']"> - <div xmlns="http://www.w3.org/1999/xhtml"> - <h4>Parameters</h4> - <dl xmlns="http://www.w3.org/1999/xhtml"> - <xsl:apply-templates select="arg[@direction='in']" - mode="parameters-in-docstring"/> - </dl> - </div> - </xsl:if> - - <xsl:if test="arg[@direction='out']"> - <div xmlns="http://www.w3.org/1999/xhtml"> - <h4>Returns</h4> - <dl xmlns="http://www.w3.org/1999/xhtml"> - <xsl:apply-templates select="arg[@direction='out']" - mode="returns-in-docstring"/> - </dl> - </div> - </xsl:if> - - <xsl:if test="tp:possible-errors"> - <div xmlns="http://www.w3.org/1999/xhtml"> - <h4>Possible errors</h4> - <dl xmlns="http://www.w3.org/1999/xhtml"> - <xsl:apply-templates select="tp:possible-errors/tp:error"/> - </dl> - </div> - </xsl:if> - - </div> - </xsl:template> - - <xsl:template name="tp-type"> - <xsl:param name="tp-type"/> - <xsl:param name="type"/> - - <xsl:variable name="single-type"> - <xsl:choose> - <xsl:when test="contains($tp-type, '[]')"> - <xsl:value-of select="substring-before($tp-type, '[]')"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="$tp-type"/> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - - <xsl:variable name="type-of-tp-type"> - <xsl:if test="contains($tp-type, '[]')"> - <!-- one 'a', plus one for each [ after the [], and delete all ] --> - <xsl:value-of select="concat('a', - translate(substring-after($tp-type, '[]'), '[]', 'a'))"/> - </xsl:if> - - <xsl:choose> - <xsl:when test="//tp:simple-type[@name=$single-type]"> - <xsl:value-of select="string(//tp:simple-type[@name=$single-type]/@type)"/> - </xsl:when> - <xsl:when test="//tp:struct[@name=$single-type]"> - <xsl:text>(</xsl:text> - <xsl:for-each select="//tp:struct[@name=$single-type]/tp:member"> - <xsl:value-of select="@type"/> - </xsl:for-each> - <xsl:text>)</xsl:text> - </xsl:when> - <xsl:when test="//tp:enum[@name=$single-type]"> - <xsl:value-of select="string(//tp:enum[@name=$single-type]/@type)"/> - </xsl:when> - <xsl:when test="//tp:flags[@name=$single-type]"> - <xsl:value-of select="string(//tp:flags[@name=$single-type]/@type)"/> - </xsl:when> - <xsl:when test="//tp:mapping[@name=$single-type]"> - <xsl:text>a{</xsl:text> - <xsl:for-each select="//tp:mapping[@name=$single-type]/tp:member"> - <xsl:value-of select="@type"/> - </xsl:for-each> - <xsl:text>}</xsl:text> - </xsl:when> - <xsl:when test="//tp:external-type[@name=$single-type]"> - <xsl:value-of select="string(//tp:external-type[@name=$single-type]/@type)"/> - </xsl:when> - <xsl:otherwise> - <xsl:message terminate="yes"> - <xsl:text>ERR: Unable to find type '</xsl:text> - <xsl:value-of select="$tp-type"/> - <xsl:text>' </xsl:text> - </xsl:message> - </xsl:otherwise> - </xsl:choose> - </xsl:variable> - - <xsl:if test="string($type) != '' and - string($type-of-tp-type) != string($type)"> - <xsl:message terminate="yes"> - <xsl:text>ERR: tp:type '</xsl:text> - <xsl:value-of select="$tp-type"/> - <xsl:text>' has D-Bus type '</xsl:text> - <xsl:value-of select="$type-of-tp-type"/> - <xsl:text>' but has been used with type='</xsl:text> - <xsl:value-of select="$type"/> - <xsl:text>' </xsl:text> - </xsl:message> - </xsl:if> - - <a href="#type-{$single-type}"><xsl:value-of select="$tp-type"/></a> - - </xsl:template> - - <xsl:template name="parenthesized-tp-type"> - <xsl:if test="@tp:type"> - <xsl:text> (</xsl:text> - <xsl:call-template name="tp-type"> - <xsl:with-param name="tp-type" select="@tp:type"/> - <xsl:with-param name="type" select="@type"/> - </xsl:call-template> - <xsl:text>)</xsl:text> - </xsl:if> - </xsl:template> - - <xsl:template match="tp:member" mode="members-in-docstring"> - <dt xmlns="http://www.w3.org/1999/xhtml"> - <code><xsl:value-of select="@name"/></code> − - <code><xsl:value-of select="@type"/></code> - <xsl:call-template name="parenthesized-tp-type"/> - </dt> - <dd xmlns="http://www.w3.org/1999/xhtml"> - <xsl:choose> - <xsl:when test="tp:docstring"> - <xsl:apply-templates select="tp:docstring" /> - </xsl:when> - <xsl:otherwise> - <em>(undocumented)</em> - </xsl:otherwise> - </xsl:choose> - </dd> - </xsl:template> - - <xsl:template match="arg" mode="parameters-in-docstring"> - <dt xmlns="http://www.w3.org/1999/xhtml"> - <code><xsl:value-of select="@name"/></code> − - <code><xsl:value-of select="@type"/></code> - <xsl:call-template name="parenthesized-tp-type"/> - </dt> - <dd xmlns="http://www.w3.org/1999/xhtml"> - <xsl:apply-templates select="tp:docstring" /> - </dd> - </xsl:template> - - <xsl:template match="arg" mode="returns-in-docstring"> - <dt xmlns="http://www.w3.org/1999/xhtml"> - <xsl:if test="@name"> - <code><xsl:value-of select="@name"/></code> − - </xsl:if> - <code><xsl:value-of select="@type"/></code> - <xsl:call-template name="parenthesized-tp-type"/> - </dt> - <dd xmlns="http://www.w3.org/1999/xhtml"> - <xsl:apply-templates select="tp:docstring"/> - </dd> - </xsl:template> - - <xsl:template match="tp:possible-errors/tp:error"> - <dt xmlns="http://www.w3.org/1999/xhtml"> - <code><xsl:value-of select="@name"/></code> - </dt> - <dd xmlns="http://www.w3.org/1999/xhtml"> - <xsl:variable name="name" select="@name"/> - <xsl:choose> - <xsl:when test="tp:docstring"> - <xsl:apply-templates select="tp:docstring"/> - </xsl:when> - <xsl:when test="//tp:errors/tp:error[concat(../@namespace, '.', translate(@name, ' ', ''))=$name]/tp:docstring"> - <xsl:apply-templates select="//tp:errors/tp:error[concat(../@namespace, '.', translate(@name, ' ', ''))=$name]/tp:docstring"/> <em xmlns="http://www.w3.org/1999/xhtml">(generic description)</em> - </xsl:when> - <xsl:otherwise> - (Undocumented.) - </xsl:otherwise> - </xsl:choose> - </dd> - </xsl:template> - - <xsl:template match="signal"> - - <xsl:if test="not(parent::interface)"> - <xsl:message terminate="yes"> - <xsl:text>ERR: signal </xsl:text> - <xsl:value-of select="@name"/> - <xsl:text> does not have an interface as parent </xsl:text> - </xsl:message> - </xsl:if> - - <xsl:if test="not(@name) or @name = ''"> - <xsl:message terminate="yes"> - <xsl:text>ERR: missing @name on a signal of </xsl:text> - <xsl:value-of select="../@name"/> - <xsl:text> </xsl:text> - </xsl:message> - </xsl:if> - - <xsl:for-each select="arg"> - <xsl:if test="not(@type) or @type = ''"> - <xsl:message terminate="yes"> - <xsl:text>ERR: an arg of signal </xsl:text> - <xsl:value-of select="concat(../../@name, '.', ../@name)"/> - <xsl:text> has no type</xsl:text> - </xsl:message> - </xsl:if> - <xsl:if test="not(@name) or @name = ''"> - <xsl:message terminate="yes"> - <xsl:text>ERR: an arg of signal </xsl:text> - <xsl:value-of select="concat(../../@name, '.', ../@name)"/> - <xsl:text> has no name</xsl:text> - </xsl:message> - </xsl:if> - <xsl:choose> - <xsl:when test="not(@direction)"/> - <xsl:when test="@direction='in'"> - <xsl:message terminate="no"> - <xsl:text>INFO: an arg of signal </xsl:text> - <xsl:value-of select="concat(../../@name, '.', ../@name)"/> - <xsl:text> has unnecessary direction 'in'</xsl:text> - </xsl:message> - </xsl:when> - <xsl:otherwise> - <xsl:message terminate="yes"> - <xsl:text>ERR: an arg of signal </xsl:text> - <xsl:value-of select="concat(../../@name, '.', ../@name)"/> - <xsl:text> has direction other than 'in'</xsl:text> - </xsl:message> - </xsl:otherwise> - </xsl:choose> - </xsl:for-each> - - <div xmlns="http://www.w3.org/1999/xhtml" class="signal"> - <h3 xmlns="http://www.w3.org/1999/xhtml"> - <a name="{concat(../@name, concat('.', @name))}"> - <xsl:value-of select="@name"/> - </a> ( - <xsl:for-each xmlns="" select="arg"> - <xsl:value-of select="@type"/>: <xsl:value-of select="@name"/> - <xsl:if test="position() != last()">, </xsl:if> - </xsl:for-each> - )</h3> - - <div xmlns="http://www.w3.org/1999/xhtml" class="docstring"> - <xsl:apply-templates select="tp:docstring"/> - <xsl:apply-templates select="tp:added"/> - <xsl:apply-templates select="tp:changed"/> - <xsl:apply-templates select="tp:deprecated"/> - </div> - - <xsl:if test="arg"> - <div xmlns="http://www.w3.org/1999/xhtml"> - <h4>Parameters</h4> - <dl xmlns="http://www.w3.org/1999/xhtml"> - <xsl:apply-templates select="arg" mode="parameters-in-docstring"/> - </dl> - </div> - </xsl:if> - </div> - </xsl:template> - - <xsl:output method="xml" indent="no" encoding="ascii" - omit-xml-declaration="yes" - doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" - doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" /> - - <xsl:template match="/tp:spec"> - <html xmlns="http://www.w3.org/1999/xhtml"> - <head> - <title> - <xsl:value-of select="tp:title"/> - <xsl:if test="tp:version"> - <xsl:text> version </xsl:text> - <xsl:value-of select="tp:version"/> - </xsl:if> - </title> - <style type="text/css"> - - body { - font-family: sans-serif; - margin: 2em; - height: 100%; - font-size: 1.2em; - } - h1 { - padding-top: 5px; - padding-bottom: 5px; - font-size: 1.6em; - background: #dadae2; - } - h2 { - font-size: 1.3em; - } - h3 { - font-size: 1.2em; - } - a:link, a:visited, a:link:hover, a:visited:hover { - font-weight: bold; - } - .topbox { - padding-top: 10px; - padding-left: 10px; - border-bottom: black solid 1px; - padding-bottom: 10px; - background: #dadae2; - font-size: 2em; - font-weight: bold; - color: #5c5c5c; - } - .topnavbox { - padding-left: 10px; - padding-top: 5px; - padding-bottom: 5px; - background: #abacba; - border-bottom: black solid 1px; - font-size: 1.2em; - } - .topnavbox a{ - color: black; - font-weight: normal; - } - .sidebar { - float: left; - /* width:9em; - border-right:#abacba solid 1px; - border-left: #abacba solid 1px; - height:100%; */ - border: #abacba solid 1px; - padding-left: 10px; - margin-left: 10px; - padding-right: 10px; - margin-right: 10px; - color: #5d5d5d; - background: #dadae2; - } - .sidebar a { - text-decoration: none; - border-bottom: #e29625 dotted 1px; - color: #e29625; - font-weight: normal; - } - .sidebar h1 { - font-size: 1.2em; - color: black; - } - .sidebar ul { - padding-left: 25px; - padding-bottom: 10px; - border-bottom: #abacba solid 1px; - } - .sidebar li { - padding-top: 2px; - padding-bottom: 2px; - } - .sidebar h2 { - font-style:italic; - font-size: 0.81em; - padding-left: 5px; - padding-right: 5px; - font-weight: normal; - } - .date { - font-size: 0.6em; - float: right; - font-style: italic; - } - .method, .signal, .property { - margin-left: 1em; - margin-right: 4em; - } - .rationale { - font-style: italic; - border-left: 0.25em solid #808080; - padding-left: 0.5em; - } - - .added { - color: #006600; - background: #ffffff; - } - .deprecated { - color: #ff0000; - background: #ffffff; - } - table, tr, td, th { - border: 1px solid #666; - } - - </style> - </head> - <body> - <h1 class="topbox"> - <xsl:value-of select="tp:title" /> - </h1> - <xsl:if test="tp:version"> - <h2>Version <xsl:value-of select="string(tp:version)"/></h2> - </xsl:if> - <xsl:apply-templates select="tp:copyright"/> - <xsl:apply-templates select="tp:license"/> - <xsl:apply-templates select="tp:docstring"/> - - <h2>Interfaces</h2> - <ul> - <xsl:for-each select="//node/interface"> - <li><code><a href="#{@name}"><xsl:value-of select="@name"/></a></code></li> - </xsl:for-each> - </ul> - - <xsl:apply-templates select="//node"/> - <xsl:apply-templates select="tp:generic-types"/> - <xsl:apply-templates select="tp:errors"/> - - <h1>Index</h1> - <h2>Index of interfaces</h2> - <ul> - <xsl:for-each select="//node/interface"> - <li><code><a href="#{@name}"><xsl:value-of select="@name"/></a></code></li> - </xsl:for-each> - </ul> - <h2>Index of types</h2> - <ul> - <xsl:for-each select="//tp:simple-type | //tp:enum | //tp:flags | //tp:mapping | //tp:struct | //tp:external-type"> - <xsl:sort select="@name"/> - <li> - <code> - <a href="#type-{@name}"> - <xsl:value-of select="@name"/> - </a> - </code> - <xsl:apply-templates mode="in-index" select="."/> - </li> - </xsl:for-each> - </ul> - </body> - </html> - </xsl:template> - - <xsl:template match="node"> - <xsl:apply-templates /> - </xsl:template> - - <xsl:template match="text()"> - <xsl:if test="normalize-space(.) != ''"> - <xsl:message terminate="yes"> - <xsl:text>Stray text: {{{</xsl:text> - <xsl:value-of select="." /> - <xsl:text>}}} </xsl:text> - </xsl:message> - </xsl:if> - </xsl:template> - - <xsl:template match="*"> - <xsl:message terminate="yes"> - <xsl:text>Unrecognised element: {</xsl:text> - <xsl:value-of select="namespace-uri(.)" /> - <xsl:text>}</xsl:text> - <xsl:value-of select="local-name(.)" /> - <xsl:text> </xsl:text> - </xsl:message> - </xsl:template> -</xsl:stylesheet> - -<!-- vim:set sw=2 sts=2 et: --> |