[postgis-tickets] r15502 - Put in safeguards around availability, changes, enhances so if no match, then doesn't break xml and latex validation

Regina Obe lr at pcorp.us
Sun Jul 23 13:08:43 PDT 2017


Author: robe
Date: 2017-07-23 13:08:43 -0700 (Sun, 23 Jul 2017)
New Revision: 15502

Modified:
   trunk/doc/xsl/postgis_aggs_mm.xml.xsl
Log:
Put in safeguards around availability, changes, enhances so if no match, then doesn't break xml and latex validation

Modified: trunk/doc/xsl/postgis_aggs_mm.xml.xsl
===================================================================
--- trunk/doc/xsl/postgis_aggs_mm.xml.xsl	2017-07-23 18:33:40 UTC (rev 15501)
+++ trunk/doc/xsl/postgis_aggs_mm.xml.xsl	2017-07-23 20:08:43 UTC (rev 15502)
@@ -44,7 +44,7 @@
 			</xsl:for-each>
 			</itemizedlist>
 		</sect1>
-		
+
 		<sect1 id="PostGIS_Window_Functions">
 			<title>PostGIS Window Functions</title>
 			<para>The functions given below are spatial window functions provided with PostGIS that can be used just like any other sql window function such as row_numer(), lead(), lag(). All these require an SQL OVER() clause.</para>
@@ -109,7 +109,7 @@
 		<sect1 id="PostGIS_GeographyFunctions">
 			<title>PostGIS Geography Support Functions</title>
 			<para>The functions and operators given below are PostGIS functions/operators that take as input or return as output a <link linkend="PostGIS_Geography">geography</link> data type object.</para>
-			<note><para>Functions with a (T) are not native geodetic functions, and use a ST_Transform call to and from geometry to do the operation.  As a result, they may not behave as expected when going over dateline, poles, 
+			<note><para>Functions with a (T) are not native geodetic functions, and use a ST_Transform call to and from geometry to do the operation.  As a result, they may not behave as expected when going over dateline, poles,
 				and for large geometries or geometry pairs that cover more than one UTM zone. Basic transform - (favoring UTM, Lambert Azimuthal (North/South), and falling back on mercator in worst case scenario)</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  -->
@@ -162,8 +162,8 @@
 				</xsl:for-each>
 				</itemizedlist>
 		</sect1>
-	
-		
+
+
 		<sect1 id="PostGIS_Geometry_DumpFunctions">
 			<title>PostGIS Geometry / Geography / Raster Dump Functions</title>
 			<para>The functions given below are PostGIS functions that take as input or return as output a set of or single <link linkend="geometry_dump">geometry_dump</link> or  <link linkend="geomval">geomval</link> data type object.</para>
@@ -190,7 +190,7 @@
 				</xsl:for-each>
 				</itemizedlist>
 		</sect1>
-		
+
 		<sect1 id="PostGIS_BoxFunctions">
 			<title>PostGIS Box Functions</title>
 			<para>The functions given below are PostGIS functions that take as input or return as output the box* family of PostGIS spatial types.
@@ -277,7 +277,7 @@
 				</xsl:for-each>
 				</itemizedlist>
 		</sect1>
-		
+
 		<sect1 id="PostGIS_PS_GeometryFunctions">
 			<title>PostGIS Polyhedral Surface Support Functions</title>
 			<para>The functions given below are PostGIS functions that can use POLYHEDRALSURFACE, POLYHEDRALSURFACEM geometries</para>
@@ -315,14 +315,14 @@
 			<xsl:variable name='matrix_autocast'><![CDATA[<inlinemediaobject><imageobject><imagedata fileref='images/matrix_autocast.png' /></imageobject></inlinemediaobject>]]></xsl:variable>
 			<xsl:variable name='matrix_sfcgal_required'><![CDATA[<inlinemediaobject><imageobject><imagedata fileref='images/matrix_sfcgal_required.png' /></imageobject></inlinemediaobject>]]></xsl:variable>
 			<xsl:variable name='matrix_sfcgal_enhanced'><![CDATA[<inlinemediaobject><imageobject><imagedata fileref='images/matrix_sfcgal_enhanced.png' /></imageobject></inlinemediaobject>]]></xsl:variable>
-			
+
 			<title>PostGIS Function Support Matrix</title>
 
 			<para>Below is an alphabetical listing of spatial specific functions in PostGIS and the kinds of spatial
 				types they work with or OGC/SQL compliance they try to conform to.</para>
 			<para><itemizedlist>
 				<listitem><simpara>A <xsl:value-of select="$matrix_checkmark" disable-output-escaping="yes"/> means the function works with the type or subtype natively.</simpara></listitem>
-				<listitem><simpara>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 
+				<listitem><simpara>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
 						and may accumulate floating point junk.</simpara></listitem>
 				<listitem><simpara>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.</simpara></listitem>
 				<listitem><simpara>A <xsl:value-of select="$matrix_sfcgal_required" disable-output-escaping="yes"/> means the function only available if PostGIS compiled with SFCGAL support.</simpara></listitem>
@@ -334,7 +334,7 @@
 				<listitem><simpara>T - Triangles and Triangulated Irregular Network surfaces (TIN)</simpara></listitem>
 				</itemizedlist>
 			</para>
-				
+
 			<para>
 				<informaltable frame='all'>
 					<tgroup cols='8' align='left' colsep='1' rowsep='1'>
@@ -372,7 +372,7 @@
 							<xsl:variable name="refname">
 								<xsl:value-of select="refnamediv/refname" />
 							</xsl:variable>
-			
+
 							<row>
 								<!-- Display name of function and link to it -->
 								<entry><link linkend="{$refid}"><xsl:value-of select="$refname" /></link></entry>
@@ -406,7 +406,7 @@
 										<entry></entry>
 									</xsl:otherwise>
 								</xsl:choose>
-								
+
 								<!-- If at least one paragraph contains support 3d -->
 								<xsl:choose>
 									<!-- supports -->
@@ -431,7 +431,7 @@
 									<xsl:otherwise>
 										<entry></entry>
 									</xsl:otherwise>
-								</xsl:choose>	
+								</xsl:choose>
 								<!-- SQL MM compliance -->
 								<xsl:choose>
 									<!-- supports -->
@@ -475,7 +475,7 @@
 						</xsl:for-each>
 						</tbody>
 					</tgroup>
-		</informaltable>	
+		</informaltable>
 		</para>
 	   </sect1>
 
@@ -485,6 +485,7 @@
             <sect2 id="NewFunctions_2_4">
 				<title>PostGIS Functions new or enhanced in 2.4</title>
 				<para>The functions given below are PostGIS functions that were added or enhanced.</para>
+                <xsl:if test="//para[contains(text(),'Availability: 2.4')]">
 				<para>Functions new in PostGIS 2.4</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  -->
@@ -496,12 +497,12 @@
 						<xsl:variable name="refid">
 							<xsl:value-of select="@id" />
 						</xsl:variable>
-						
+
 						<xsl:variable name="refname">
 							<xsl:value-of select="refnamediv/refname" />
 						</xsl:variable>
-				
-				
+
+
 				<!-- For each section if there is note about availability in this version -->
 							<xsl:for-each select="refsection">
 								<xsl:for-each select="para | */para">
@@ -514,11 +515,12 @@
 							</xsl:for-each>
 					</xsl:for-each>
 				</itemizedlist>
-				
+                </xsl:if>
+
 				<para>TODO: Enhance some functions in 2.4 so this space isn't empty.</para>
-				
+
 			</sect2>
-            
+
 			<sect2 id="NewFunctions_2_3">
 				<title>PostGIS Functions new or enhanced in 2.3</title>
 				<para>The functions given below are PostGIS functions that were added or enhanced.</para>
@@ -526,6 +528,7 @@
                 <note><para>PostGIS 2.3.0: PostGIS extension, all functions schema qualified to reduce issues in database restore.</para></note>
                 <note><para>PostGIS 2.3.0: PostgreSQL 9.4+ support for BRIN indexes. Refer to <xref linkend="brin_indexes" />.</para></note>
                 <note><para>PostGIS 2.3.0: Tiger Geocoder upgraded to work with TIGER 2016 data.</para></note>
+                <xsl:if test="//para[contains(text(),'Availability: 2.3')]">
 				<para>Functions new in PostGIS 2.3</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  -->
@@ -537,12 +540,12 @@
 						<xsl:variable name="refid">
 							<xsl:value-of select="@id" />
 						</xsl:variable>
-						
+
 						<xsl:variable name="refname">
 							<xsl:value-of select="refnamediv/refname" />
 						</xsl:variable>
-				
-				
+
+
 				<!-- For each section if there is note about availability in this version -->
 							<xsl:for-each select="refsection">
 								<xsl:for-each select="para | */para">
@@ -555,7 +558,9 @@
 							</xsl:for-each>
 					</xsl:for-each>
 				</itemizedlist>
-				
+                </xsl:if>
+
+                <xsl:if test="//para[contains(text(),'Enhanced: 2.3')]">
 				<para>The functions given below are PostGIS functions that are enhanced in PostGIS 2.3.</para>
 				<itemizedlist>
 				<!-- Pull out the purpose section for each ref entry   -->
@@ -564,7 +569,7 @@
 						<xsl:variable name="refid">
 							<xsl:value-of select="@id" />
 						</xsl:variable>
-						
+
 						<xsl:variable name="refname">
 							<xsl:value-of select="refnamediv/refname" />
 						</xsl:variable>
@@ -579,18 +584,20 @@
 								</xsl:for-each>
 							</xsl:for-each>
 					</xsl:for-each>
-				</itemizedlist>	
+				</itemizedlist>
+                </xsl:if>
 
 			</sect2>
-			
+
 			<sect2 id="NewFunctions_2_2">
 				<title>PostGIS Functions new or enhanced in 2.2</title>
 				<para>The functions given below are PostGIS functions that were added or enhanced.</para>
-				
+
 				<note><para>postgis_sfcgal now can be installed as an extension using CREATE EXTENSION postgis_sfcgal;</para></note>
 				<note><para>PostGIS 2.2.0: Tiger Geocoder upgraded to work with TIGER 2015 data.</para></note>
 				<note><para>address_standardizer, address_standardizer_data_us extensions for standardizing address data refer to <xref linkend="Address_Standardizer" /> for details.</para></note>
 				<note><para>Many functions in topology rewritten as C functions for increased performance.</para></note>
+				<xsl:if test="//para[contains(text(),'Availability: 2.2')]">
 				<para>Functions new in PostGIS 2.2</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  -->
@@ -602,12 +609,12 @@
 						<xsl:variable name="refid">
 							<xsl:value-of select="@id" />
 						</xsl:variable>
-						
+
 						<xsl:variable name="refname">
 							<xsl:value-of select="refnamediv/refname" />
 						</xsl:variable>
-				
-				
+
+
 				<!-- For each section if there is note about availability in this version -->
 							<xsl:for-each select="refsection">
 								<xsl:for-each select="para | */para">
@@ -620,7 +627,9 @@
 							</xsl:for-each>
 					</xsl:for-each>
 				</itemizedlist>
-				
+				</xsl:if>
+
+				 <xsl:if test="//para[contains(text(),'Enhanced: 2.2')]">
 				<para>The functions given below are PostGIS functions that are enhanced in PostGIS 2.2.</para>
 				<itemizedlist>
 				<!-- Pull out the purpose section for each ref entry   -->
@@ -629,7 +638,7 @@
 						<xsl:variable name="refid">
 							<xsl:value-of select="@id" />
 						</xsl:variable>
-						
+
 						<xsl:variable name="refname">
 							<xsl:value-of select="refnamediv/refname" />
 						</xsl:variable>
@@ -644,10 +653,12 @@
 								</xsl:for-each>
 							</xsl:for-each>
 					</xsl:for-each>
-				</itemizedlist>				
+				</itemizedlist>
+				</xsl:if>
 			</sect2>
-			
-		 <sect2 id="ChangedFunctions_2_2"><title>PostGIS functions breaking changes in 2.2</title>
+
+			<xsl:if test="//para[contains(text(),'Changed: 2.2')]">
+		 	<sect2 id="ChangedFunctions_2_2"><title>PostGIS functions breaking changes in 2.2</title>
 				<para>The functions given below are PostGIS functions that have possibly breaking changes in PostGIS 2.2.  If you use any of these, you may need to check your existing code.</para>
 				<itemizedlist>
 				<!-- Pull out the purpose section for each ref entry   -->
@@ -656,7 +667,7 @@
 						<xsl:variable name="refid">
 							<xsl:value-of select="@id" />
 						</xsl:variable>
-						
+
 						<xsl:variable name="refname">
 							<xsl:value-of select="refnamediv/refname" />
 						</xsl:variable>
@@ -673,17 +684,19 @@
 					</xsl:for-each>
 				</itemizedlist>
 			</sect2>
+			</xsl:if>
 
-			
+
 			<sect2 id="NewFunctions_2_1">
 				<title>PostGIS Functions new or enhanced in 2.1</title>
 				<para>The functions given below are PostGIS functions that were added or enhanced.</para>
-				
+
 				<note><para>More Topology performance Improvements.  Please refer to <xref linkend="Topology" /> for more details.</para></note>
 				<note><para>Bug fixes (particularly with handling of out-of-band rasters), many new functions (often shortening code you have to write to accomplish a common task) and massive speed improvements to raster functionality. Refer to <xref linkend="RT_reference" /> for more details. </para></note>
-				<note><para>PostGIS 2.1.0: Tiger Geocoder upgraded to work with TIGER 2012 census data. <varname>geocode_settings</varname> added for debugging and tweaking rating preferences, loader made less greedy, now only downloads tables to be loaded. PostGIS 2.1.1: Tiger Geocoder upgraded to work with TIGER 2013 data. 
+				<note><para>PostGIS 2.1.0: Tiger Geocoder upgraded to work with TIGER 2012 census data. <varname>geocode_settings</varname> added for debugging and tweaking rating preferences, loader made less greedy, now only downloads tables to be loaded. PostGIS 2.1.1: Tiger Geocoder upgraded to work with TIGER 2013 data.
 					Please refer to <xref linkend="Tiger_Geocoder" /> for more details.</para></note>
-					
+
+				<xsl:if test="//para[contains(text(),'Availability: 2.1')]">
 				<para>Functions new in PostGIS 2.1</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  -->
@@ -695,7 +708,7 @@
 						<xsl:variable name="refid">
 							<xsl:value-of select="@id" />
 						</xsl:variable>
-						
+
 						<xsl:variable name="refname">
 							<xsl:value-of select="refnamediv/refname" />
 						</xsl:variable>
@@ -713,7 +726,9 @@
 							</xsl:for-each>
 					</xsl:for-each>
 				</itemizedlist>
-			
+				</xsl:if>
+
+				<xsl:if test="//para[contains(text(),'Enhanced: 2.1')]">
 				<para>The functions given below are PostGIS functions that are enhanced in PostGIS 2.1.</para>
 				<itemizedlist>
 				<!-- Pull out the purpose section for each ref entry   -->
@@ -722,7 +737,7 @@
 						<xsl:variable name="refid">
 							<xsl:value-of select="@id" />
 						</xsl:variable>
-						
+
 						<xsl:variable name="refname">
 							<xsl:value-of select="refnamediv/refname" />
 						</xsl:variable>
@@ -737,10 +752,12 @@
 								</xsl:for-each>
 							</xsl:for-each>
 					</xsl:for-each>
-				</itemizedlist>	
-			
+				</itemizedlist>
+				</xsl:if>
+
 			</sect2>
-			
+
+			<xsl:if test="//para[contains(text(),'Changed: 2.1')]">
 			<sect2 id="ChangedFunctions_2_1"><title>PostGIS functions breaking changes in 2.1</title>
 				<para>The functions given below are PostGIS functions that have possibly breaking changes in PostGIS 2.1.  If you use any of these, you may need to check your existing code.</para>
 				<itemizedlist>
@@ -750,7 +767,7 @@
 						<xsl:variable name="refid">
 							<xsl:value-of select="@id" />
 						</xsl:variable>
-						
+
 						<xsl:variable name="refname">
 							<xsl:value-of select="refnamediv/refname" />
 						</xsl:variable>
@@ -767,17 +784,20 @@
 					</xsl:for-each>
 				</itemizedlist>
 			</sect2>
+			</xsl:if>
 
-		
+
 			<sect2 id="NewFunctions_2_0">
 				<title>PostGIS Functions new, behavior changed, or enhanced in 2.0</title>
 				<para>The functions given below are PostGIS functions that were added, enhanced, or have <xref linkend="NewFunctions_2_0_Changed" /> breaking changes in 2.0 releases.</para>
 				<para>New geometry types: TIN and Polyhedral surfaces was introduced in 2.0</para>
 				<note><para>Greatly improved support for Topology.  Please refer to <xref linkend="Topology" /> for more details.</para></note>
-				<note><para>In PostGIS 2.0, raster type and raster functionality has been integrated.  There are way too many new raster functions to list here and all are new so 
+				<note><para>In PostGIS 2.0, raster type and raster functionality has been integrated.  There are way too many new raster functions to list here and all are new so
 					please refer to <xref linkend="RT_reference" /> for more details of the raster functions available. Earlier pre-2.0 versions had raster_columns/raster_overviews as real tables. These were changed to views before release.  Functions such as <varname>ST_AddRasterColumn</varname> were removed and replaced with <xref linkend="RT_AddRasterConstraints"/>, <xref linkend="RT_DropRasterConstraints"/> as a result some apps that created raster tables may need changing.</para></note>
 				<note><para>Tiger Geocoder upgraded to work with TIGER 2010 census data and now included in the core PostGIS documentation.  A reverse geocoder function was also added.
 					Please refer to <xref linkend="Tiger_Geocoder" /> for more details.</para></note>
+
+				<xsl:if test="//para[contains(text(),'Availability: 2.0')]">
 				<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='//refentry'>
@@ -788,7 +808,7 @@
 						<xsl:variable name="refid">
 							<xsl:value-of select="@id" />
 						</xsl:variable>
-						
+
 						<xsl:variable name="refname">
 							<xsl:value-of select="refnamediv/refname" />
 						</xsl:variable>
@@ -806,7 +826,9 @@
 							</xsl:for-each>
 					</xsl:for-each>
 				</itemizedlist>
-				
+				</xsl:if>
+
+				<xsl:if test="//para[contains(text(),'Enhanced: 2.0')]">
 				<para>The functions given below are PostGIS functions that are enhanced in PostGIS 2.0.</para>
 				<itemizedlist>
 				<!-- Pull out the purpose section for each ref entry   -->
@@ -815,7 +837,7 @@
 						<xsl:variable name="refid">
 							<xsl:value-of select="@id" />
 						</xsl:variable>
-						
+
 						<xsl:variable name="refname">
 							<xsl:value-of select="refnamediv/refname" />
 						</xsl:variable>
@@ -830,8 +852,10 @@
 								</xsl:for-each>
 							</xsl:for-each>
 					</xsl:for-each>
-				</itemizedlist>				
+				</itemizedlist>
+				</xsl:if>
 			</sect2>
+
 			<sect2 id="NewFunctions_2_0_Changed">
 			       <title>PostGIS Functions changed behavior in 2.0</title>
 			       <para>The functions given below are PostGIS functions that have changed behavior in PostGIS 2.0 and may require application changes.</para>
@@ -844,6 +868,8 @@
                     	often return a different more accurate answer in PostGIS 2.0+ than it did in prior versions which may very well slightly
                     	change answers to view port queries.</para></note>
                     <note><para>The arguments hasnodata was replaced with exclude_nodata_value which has the same meaning as the older hasnodata but clearer in purpose.</para></note>
+
+					<xsl:if test="//para[contains(text(),'Changed: 2.0')]">
                     <itemizedlist>
                     <!-- Pull out the purpose section for each ref entry   -->
                         <xsl:for-each select='//refentry'>
@@ -851,7 +877,7 @@
                             <xsl:variable name="refid">
                                 <xsl:value-of select="@id" />
                             </xsl:variable>
-                            
+
                             <xsl:variable name="refname">
                                 <xsl:value-of select="refnamediv/refname" />
                             </xsl:variable>
@@ -867,9 +893,12 @@
                                 </xsl:for-each>
                         </xsl:for-each>
                     </itemizedlist>
+					</xsl:if>
              </sect2>
+
 			<sect2 id="NewFunctions_1_5">
 				<title>PostGIS Functions new, behavior changed, or enhanced in 1.5</title>
+				<xsl:if test="//para[contains(text(),'Availability: 1.5')]">
 				<para>The functions given below are PostGIS functions that were introduced or enhanced in this minor release.</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  -->
@@ -881,7 +910,7 @@
 						<xsl:variable name="refid">
 							<xsl:value-of select="@id" />
 						</xsl:variable>
-						
+
 						<xsl:variable name="refname">
 							<xsl:value-of select="refnamediv/refname" />
 						</xsl:variable>
@@ -899,10 +928,12 @@
 							</xsl:for-each>
 					</xsl:for-each>
 				</itemizedlist>
+				</xsl:if>
 			</sect2>
 			<sect2 id="NewFunctions_1_4">
 				<title>PostGIS Functions new, behavior changed, or enhanced in 1.4</title>
 				<para>The functions given below are PostGIS functions that were introduced or enhanced in the 1.4 release.</para>
+				<xsl:if test="//para[contains(text(),'Availability: 1.4')]">
 				<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='//refentry'>
@@ -926,10 +957,12 @@
 							</xsl:for-each>
 					</xsl:for-each>
 				</itemizedlist>
+				</xsl:if>
 			</sect2>
 			<sect2 id="NewFunctions_1_3">
 				<title>PostGIS Functions new in 1.3</title>
 				<para>The functions given below are PostGIS functions that were introduced in the 1.3 release.</para>
+				<xsl:if test="//para[contains(text(),'Availability: 1.3')]">
 				<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='//refentry'>
@@ -953,6 +986,7 @@
 						</xsl:for-each>
 				</xsl:for-each>
 				</itemizedlist>
+				</xsl:if>
 			</sect2>
 		</sect1>
 



More information about the postgis-tickets mailing list