]> granicus.if.org Git - postgis/commitdiff
Add xsl file that autogenerates sql set comment statements from reference_new.xml
authorRegina Obe <lr@pcorp.us>
Mon, 22 Sep 2008 12:28:57 +0000 (12:28 +0000)
committerRegina Obe <lr@pcorp.us>
Mon, 22 Sep 2008 12:28:57 +0000 (12:28 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@2988 b70326c6-7e19-0410-871a-916f4a2858ee

doc/xsl/postgis_comments.sql.xsl [new file with mode: 0644]

diff --git a/doc/xsl/postgis_comments.sql.xsl b/doc/xsl/postgis_comments.sql.xsl
new file mode 100644 (file)
index 0000000..b459a13
--- /dev/null
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<xsl:stylesheet version='2.0' xmlns:xsl='http://www.w3.org/1999/XSL/Transform'>\r
+       <xsl:output method="text" />\r
+       <xsl:template match='/chapter'>\r
+               <xsl:variable name="ap"><xsl:text>'</xsl:text></xsl:variable>\r
+               <xsl:for-each select='sect1/refentry'>\r
+                 <xsl:variable name='plaincomment'>\r
+                       <xsl:value-of select="refnamediv/refpurpose" />\r
+                 </xsl:variable>\r
+                 \r
+                       <xsl:variable name='comment'>\r
+                               <xsl:call-template name="globalReplace">\r
+                                       <xsl:with-param name="outputString" select="$plaincomment"/>\r
+                                       <xsl:with-param name="target" select="$ap"/>\r
+                                       <xsl:with-param name="replacement" select="''"/>\r
+                               </xsl:call-template>\r
+                       </xsl:variable>\r
+\r
+               <xsl:for-each select="refsynopsisdiv/funcsynopsis/funcprototype">\r
+COMMENT ON <xsl:choose><xsl:when test="contains(paramdef/type,'geometry set')">AGGREGATE</xsl:when><xsl:otherwise>FUNCTION</xsl:otherwise></xsl:choose><xsl:text> </xsl:text> <xsl:value-of select="funcdef/function" />(<xsl:for-each select="paramdef"><xsl:choose><xsl:when test="count(parameter) &gt; 0"> \r
+<xsl:choose><xsl:when test="contains(type,'geometry set')">geometry</xsl:when><xsl:otherwise><xsl:value-of select="type" /></xsl:otherwise></xsl:choose><xsl:if test="position()&lt;last()"><xsl:text>, </xsl:text></xsl:if></xsl:when>\r
+</xsl:choose></xsl:for-each>) IS '<xsl:call-template name="listparams"><xsl:with-param name="func" select="." /></xsl:call-template> <xsl:value-of select='$comment' />';\r
+                       </xsl:for-each>\r
+               </xsl:for-each>\r
+       </xsl:template>\r
+       \r
+<xsl:template name="globalReplace">\r
+  <xsl:param name="outputString"/>\r
+  <xsl:param name="target"/>\r
+  <xsl:param name="replacement"/>\r
+  <xsl:choose>\r
+    <xsl:when test="contains($outputString,$target)">\r
+      <xsl:value-of select=\r
+        "concat(substring-before($outputString,$target),\r
+               $replacement)"/>\r
+      <xsl:call-template name="globalReplace">\r
+        <xsl:with-param name="outputString" \r
+             select="substring-after($outputString,$target)"/>\r
+        <xsl:with-param name="target" select="$target"/>\r
+        <xsl:with-param name="replacement" \r
+             select="$replacement"/>\r
+      </xsl:call-template>\r
+    </xsl:when>\r
+    <xsl:otherwise>\r
+      <xsl:value-of select="$outputString"/>\r
+    </xsl:otherwise>\r
+  </xsl:choose>\r
+</xsl:template>\r
+\r
+<xsl:template name="listparams">\r
+       <xsl:param name="func" />\r
+       <xsl:for-each select="$func">\r
+               <xsl:if test="count(paramdef/parameter) &gt; 0">args: </xsl:if>\r
+               <xsl:for-each select="paramdef">\r
+                       <xsl:choose>\r
+                               <xsl:when test="count(parameter) &gt; 0"> \r
+                                       <xsl:value-of select="parameter" />\r
+                               </xsl:when>\r
+                       </xsl:choose>\r
+                       <xsl:if test="position()&lt;last()"><xsl:text>, </xsl:text></xsl:if>\r
+               </xsl:for-each>\r
+               <xsl:if test="count(paramdef/parameter) &gt; 0"> - </xsl:if>\r
+       </xsl:for-each> \r
+</xsl:template>\r
+\r
+\r
+</xsl:stylesheet>\r
+\r