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\r
be processed by doc book\r
******************************************************************** -->\r
- <xsl:output method="xml" indent="yes" encoding="utf-8"/>\r
+ <xsl:output method="xml" indent="yes" encoding="utf-8" />\r
\r
<!-- We deal only with the reference chapter -->\r
<xsl:template match="/">\r
</sect1>\r
\r
<sect1 id="PostGIS_TypeFunctionMatrix">\r
+ <xsl:variable name='matrix_checkmark'><![CDATA[<inlinemediaobject><imageobject><imagedata fileref='images/matrix_checkmark.png' /></imageobject></inlinemediaobject>]]></xsl:variable>\r
+ <xsl:variable name='matrix_transform'><![CDATA[<inlinemediaobject><imageobject><imagedata fileref='images/matrix_transform.png' /></imageobject></inlinemediaobject>]]></xsl:variable>\r
+ <xsl:variable name='matrix_autocast'><![CDATA[<inlinemediaobject><imageobject><imagedata fileref='images/matrix_autocast.png' /></imageobject></inlinemediaobject>]]></xsl:variable>\r
<title>PostGIS Function Support Matrix</title>\r
\r
<para>Below is an alphabetical listing of spatial specific functions in PostGIS and the kinds of spatial\r
types they work with or OGC/SQL compliance they try to conform to.</para>\r
<para><itemizedlist>\r
- <listitem>A ✓ means the function works with the type or subtype natively.</listitem>\r
- <listitem>A ☺ means it works but with a transform cast built-in to cast to geometry, transform and then cast back.</listitem>\r
- <listitem>A ☑ means the function works with the type, but because of a auto-cast rather than direct support.</listitem>\r
+ <listitem>A <xsl:value-of select="$matrix_checkmark" disable-output-escaping="yes"/> means the function works with the type or subtype natively.</listitem>\r
+ <listitem>A <xsl:value-of select="$matrix_transform" disable-output-escaping="yes"/> means it works but with a transform cast built-in using cast to geometry, transform to a "best srid" spatial ref and then cast back. Results may not be as expected for large areas or areas at poles \r
+ and may accumulate floating point junk.</listitem>\r
+ <listitem>A <xsl:value-of select="$matrix_autocast" disable-output-escaping="yes"/> means the function works with the type because of a auto-cast to another such as to box3d rather than direct type support.</listitem>\r
</itemizedlist>\r
</para>\r
\r
<xsl:choose>\r
<!-- direct support -->\r
<xsl:when test="contains(refsynopsisdiv/funcsynopsis,'geometry') or contains(refsynopsisdiv/funcsynopsis/funcprototype/funcdef,'geometry')">\r
- <entry>✓</entry>\r
+ <entry><xsl:value-of select="$matrix_checkmark" disable-output-escaping="yes"/></entry>\r
</xsl:when>\r
<!-- support via autocast -->\r
<xsl:when test="contains(refsynopsisdiv/funcsynopsis,'box') or contains(refsynopsisdiv/funcsynopsis/funcprototype/funcdef,'box')">\r
- <entry>☑</entry>\r
+ <entry><xsl:value-of select="$matrix_autocast" disable-output-escaping="yes"/></entry>\r
</xsl:when>\r
<!-- no support -->\r
<xsl:otherwise>\r
<xsl:choose>\r
<!-- Support via geometry transform hack -->\r
<xsl:when test="(contains(refsynopsisdiv/funcsynopsis,'geography') or contains(refsynopsisdiv/funcsynopsis/funcprototype/funcdef,'geography')) and contains($comment,'(T)')">\r
- <entry>☺</entry>\r
+ <entry><xsl:value-of select="$matrix_transform" disable-output-escaping="yes"/></entry>\r
</xsl:when>\r
<!-- direct support -->\r
<xsl:when test="contains(refsynopsisdiv/funcsynopsis,'geography') or contains(refsynopsisdiv/funcsynopsis/funcprototype/funcdef,'geography')">\r
- <entry>✓</entry>\r
+ <entry><xsl:value-of select="$matrix_checkmark" disable-output-escaping="yes"/></entry>\r
</xsl:when>\r
<!-- no support -->\r
<xsl:otherwise>\r
<xsl:choose>\r
<!-- supports -->\r
<xsl:when test="contains(.,'This function supports 3d')">\r
- <entry>✓</entry>\r
+ <entry><xsl:value-of select="$matrix_checkmark" disable-output-escaping="yes"/></entry>\r
</xsl:when>\r
<!-- no support -->\r
<xsl:otherwise>\r
<xsl:choose>\r
<!-- supports -->\r
<xsl:when test="contains(.,'supports Circular Strings')">\r
- <entry>✓</entry>\r
+ <entry><xsl:value-of select="$matrix_checkmark" disable-output-escaping="yes"/></entry>\r
</xsl:when>\r
<!-- no support -->\r
<xsl:otherwise>\r
<xsl:choose>\r
<!-- supports -->\r
<xsl:when test="contains(.,'implements the SQL/MM')">\r
- <entry>✓</entry>\r
+ <entry><xsl:value-of select="$matrix_checkmark" disable-output-escaping="yes"/></entry>\r
</xsl:when>\r
<!-- no support -->\r
<xsl:otherwise>\r