mirror of
https://git.osgeo.org/gitea/postgis/postgis
synced 2024-10-25 09:32:46 +00:00
5e0af6d7e4
git-svn-id: http://svn.osgeo.org/postgis/trunk@3230 b70326c6-7e19-0410-871a-916f4a2858ee
149 lines
6.5 KiB
XML
149 lines
6.5 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
|
|
<!-- ********************************************************************
|
|
$Id: 0.1 postgis_aggs_mm.xml.xsl 2008-09-26 $
|
|
********************************************************************
|
|
Copyright 2008, Regina Obe
|
|
License: BSD
|
|
Purpose: This is an xsl transform that generates index listing of aggregate functions and mm /sql compliant functions xml section from reference_new.xml to then
|
|
be processed by doc book
|
|
******************************************************************** -->
|
|
<xsl:output method="xml" indent="yes" encoding="utf-8"/>
|
|
<xsl:template match='/chapter'>
|
|
<chapter>
|
|
<title>PostGIS Special Functions Index</title>
|
|
<sect1>
|
|
<title>PostGIS Aggregate Functions</title>
|
|
<para>The functions given below are spatial aggregate functions provided with PostGIS that can be used just like any other sql aggregate function such as sum, average.</para>
|
|
<itemizedlist>
|
|
<!-- Pull out the purpose section for each ref entry and strip whitespace and put in a variable to be tagged unto each function comment -->
|
|
<xsl:for-each select='sect1/refentry'>
|
|
<xsl:sort select="@id"/>
|
|
<xsl:variable name='comment'>
|
|
<xsl:value-of select="normalize-space(translate(translate(refnamediv/refpurpose,'
', ' '), '	', ' '))"/>
|
|
</xsl:variable>
|
|
<xsl:variable name="refid">
|
|
<xsl:value-of select="@id" />
|
|
</xsl:variable>
|
|
|
|
<!-- For each function prototype if it takes a geometry set then catalog it as an aggregate function -->
|
|
<xsl:for-each select="refsynopsisdiv/funcsynopsis/funcprototype">
|
|
<xsl:choose>
|
|
<xsl:when test="contains(paramdef/type,'geometry set')">
|
|
<listitem><link linkend="{$refid}"><xsl:value-of select="$refid" /></link> - <xsl:value-of select="$comment" /></listitem>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:for-each>
|
|
</xsl:for-each>
|
|
</itemizedlist>
|
|
</sect1>
|
|
|
|
<sect1>
|
|
<title>PostGIS SQL-MM Compliant Functions</title>
|
|
<para>The functions given below are PostGIS functions that conform to the SQL/MM 3 standard</para>
|
|
<note>
|
|
<para>SQL-MM defines the default SRID of all geometry constructors as 0.
|
|
PostGIS uses a default SRID of -1.</para>
|
|
</note>
|
|
<itemizedlist>
|
|
<!-- Pull out the purpose section for each ref entry and strip whitespace and put in a variable to be tagged unto each function comment -->
|
|
<xsl:for-each select='sect1/refentry'>
|
|
<xsl:sort select="@id"/>
|
|
<xsl:variable name='comment'>
|
|
<xsl:value-of select="normalize-space(translate(translate(refnamediv/refpurpose,'
', ' '), '	', ' '))"/>
|
|
</xsl:variable>
|
|
<xsl:variable name="refid">
|
|
<xsl:value-of select="@id" />
|
|
</xsl:variable>
|
|
|
|
<!-- For each section if there is note that it implements SQL/MM catalog it -->
|
|
<xsl:for-each select="refsection">
|
|
<xsl:for-each select="para">
|
|
<xsl:choose>
|
|
<xsl:when test="contains(.,'implements the SQL/MM')">
|
|
<listitem><link linkend="{$refid}"><xsl:value-of select="$refid" /></link> - <xsl:value-of select="$comment" /> <xsl:value-of select="." /></listitem>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:for-each>
|
|
</xsl:for-each>
|
|
</xsl:for-each>
|
|
</itemizedlist>
|
|
</sect1>
|
|
|
|
<sect1>
|
|
<title>PostGIS Functions that support 3D</title>
|
|
<para>The functions given below are PostGIS functions that do not throw away the Z-Index.</para>
|
|
<itemizedlist>
|
|
<!-- Pull out the purpose section for each ref entry and strip whitespace and put in a variable to be tagged unto each function comment -->
|
|
<xsl:for-each select='sect1/refentry'>
|
|
<xsl:sort select="@id"/>
|
|
<xsl:variable name='comment'>
|
|
<xsl:value-of select="normalize-space(translate(translate(refnamediv/refpurpose,'
', ' '), '	', ' '))"/>
|
|
</xsl:variable>
|
|
<xsl:variable name="refid">
|
|
<xsl:value-of select="@id" />
|
|
</xsl:variable>
|
|
|
|
<!-- For each section if there is note that it supports 3d catalog it -->
|
|
<xsl:for-each select="refsection">
|
|
<xsl:for-each select="para">
|
|
<xsl:choose>
|
|
<xsl:when test="contains(.,'This function supports 3d')">
|
|
<listitem><link linkend="{$refid}"><xsl:value-of select="$refid" /></link> - <xsl:value-of select="$comment" /></listitem>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:for-each>
|
|
</xsl:for-each>
|
|
</xsl:for-each>
|
|
</itemizedlist>
|
|
</sect1>
|
|
|
|
<sect1>
|
|
<title>PostGIS Circular String Curve Supports Functions</title>
|
|
<para>The functions given below are PostGIS functions that can use CIRCULARSTRING and CURVEDPOLYGON</para>
|
|
<itemizedlist>
|
|
<!-- Pull out the purpose section for each ref entry and strip whitespace and put in a variable to be tagged unto each function comment -->
|
|
<xsl:for-each select='sect1/refentry'>
|
|
<xsl:sort select="@id"/>
|
|
<xsl:variable name='comment'>
|
|
<xsl:value-of select="normalize-space(translate(translate(refnamediv/refpurpose,'
', ' '), '	', ' '))"/>
|
|
</xsl:variable>
|
|
<xsl:variable name="refid">
|
|
<xsl:value-of select="@id" />
|
|
</xsl:variable>
|
|
|
|
<!-- For each section if there is note that it implements SQL/MM catalog it -->
|
|
<xsl:for-each select="refsection">
|
|
<xsl:for-each select="para">
|
|
<xsl:choose>
|
|
<xsl:when test="contains(.,'supports Circular Strings')">
|
|
<listitem><link linkend="{$refid}"><xsl:value-of select="$refid" /></link> - <xsl:value-of select="$comment" /></listitem>
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
</xsl:for-each>
|
|
</xsl:for-each>
|
|
</xsl:for-each>
|
|
</itemizedlist>
|
|
</sect1>
|
|
</chapter>
|
|
</xsl:template>
|
|
|
|
<!--macro to pull out function parameter names so we can provide a pretty arg list prefix for each function -->
|
|
<xsl:template name="listparams">
|
|
<xsl:param name="func" />
|
|
<xsl:for-each select="$func">
|
|
<xsl:if test="count(paramdef/parameter) > 0">args: </xsl:if>
|
|
<xsl:for-each select="paramdef">
|
|
<xsl:choose>
|
|
<xsl:when test="count(parameter) > 0">
|
|
<xsl:value-of select="parameter" />
|
|
</xsl:when>
|
|
</xsl:choose>
|
|
<xsl:if test="position()<last()"><xsl:text>, </xsl:text></xsl:if>
|
|
</xsl:for-each>
|
|
<xsl:if test="count(paramdef/parameter) > 0"> - </xsl:if>
|
|
</xsl:for-each>
|
|
</xsl:template>
|
|
|
|
</xsl:stylesheet>
|