|
|
@@ -55,9 +55,10 @@
|
|
|
<xsl:param name="ignore_maxOccurs_0" select="'1'"/>
|
|
|
|
|
|
<xsl:param name="api_recurse"/> <!-- to use api resolveDepth -->
|
|
|
- <xsl:param name="resolveDepth" select="10"/>
|
|
|
- <xsl:param name="p5:links.recurse_level.limit" select="5"/>
|
|
|
-
|
|
|
+ <xsl:param name="resolveDepth" select="5"/>
|
|
|
+ <xsl:param name="p5:links.recurse_level.limit" select="8"/>
|
|
|
+ <xsl:param name="p5:links.next.recurse_level.limit" select="10"/>
|
|
|
+ <xsl:param name="p5:links.loop.context.nodes.min.distance" select="4"/> <!-- when detected in @xlink or @next <get_wfs_recurse_xsl:context.nodes//@fid , we calculate when it is to be treated as loop, if above $p5:links.recurse_level.limit - to be optimized -->
|
|
|
|
|
|
|
|
|
|
|
|
@@ -85,7 +86,7 @@
|
|
|
<xsl:otherwise><xsl:value-of select="concat($simpleSchema_dir,'/',$targetNamespace_DEFAULTS_prefix,'/',$featureID_name_dita,'.xml')"/></xsl:otherwise>
|
|
|
</xsl:choose>
|
|
|
</xsl:variable>
|
|
|
- <xsl:message>#57 get_wfs_recurse_xsl:GetsimpleSchema: from $typeNameRealResource=<xsl:value-of select="$typeNameRealResource"/>; <xsl:value-of select="$simpleSchemaFile"/></xsl:message>
|
|
|
+ <xsl:message>#57 get_wfs_recurse_xsl:GetsimpleSchema: from $typeNameRealResource=<xsl:value-of select="$typeNameRealResource"/>; <xsl:value-of select="$simpleSchemaFile"/> for featureID_name_dita=<xsl:value-of select="$featureID_name_dita"/>;</xsl:message>
|
|
|
|
|
|
|
|
|
<xsl:if test="not( substring-before(system_cache__appinfo:translate_object_escaped_prefix_from_string(substring-before($typeNameRealResource,':')),':'))">
|
|
|
@@ -156,6 +157,43 @@
|
|
|
</xsl:template>
|
|
|
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+ <xsl:template match="*" mode="get_wfs_recurse_xsl:context.nodes">
|
|
|
+ <xsl:for-each select=".//*[@fid]">
|
|
|
+ <get_wfs_recurse_xsl:nodes fid="{@fid}" root.distance="{count( ancestor::node())}"/>
|
|
|
+ </xsl:for-each>
|
|
|
+ </xsl:template>
|
|
|
+
|
|
|
+
|
|
|
+ <xsl:function name="get_wfs_recurse_xsl:context.PRIMARYKEY.merge">
|
|
|
+ <xsl:param name="get_wfs_recurse_xsl:PRIMARYKEY.nodes"/>
|
|
|
+ <xsl:param name="p5:fid"/>
|
|
|
+ <xsl:choose>
|
|
|
+ <xsl:when test=" string-length($p5:fid) >0">
|
|
|
+ <get_wfs_recurse_xsl:context.nodes>
|
|
|
+ <xsl:copy-of select="$get_wfs_recurse_xsl:PRIMARYKEY.nodes/get_wfs_recurse_xsl:PRIMARYKEY.nodes/*"/>
|
|
|
+ <get_wfs_recurse_xsl:nodes fid="{$p5:fid}"/>
|
|
|
+ </get_wfs_recurse_xsl:context.nodes>
|
|
|
+ </xsl:when>
|
|
|
+ <xsl:otherwise>
|
|
|
+ <xsl:copy-of select="$get_wfs_recurse_xsl:PRIMARYKEY.nodes"/>
|
|
|
+ </xsl:otherwise>
|
|
|
+ </xsl:choose>
|
|
|
+
|
|
|
+ </xsl:function>
|
|
|
+
|
|
|
+
|
|
|
+ <xsl:function name="get_wfs_recurse_xsl:context.nodes.merge">
|
|
|
+ <xsl:param name="get_wfs_recurse_xsl:context.nodes"/>
|
|
|
+ <xsl:param name="current.node"/>
|
|
|
+ <get_wfs_recurse_xsl:context.nodes>
|
|
|
+ <xsl:copy-of select="$get_wfs_recurse_xsl:context.nodes/get_wfs_recurse_xsl:context.nodes/*"/>
|
|
|
+ <xsl:for-each select="$current.node//*[@fid]">
|
|
|
+ <get_wfs_recurse_xsl:nodes fid="{@fid}" root.distance="{count( ancestor::node())}" added="by_merge"/>
|
|
|
+ </xsl:for-each>
|
|
|
+ </get_wfs_recurse_xsl:context.nodes>
|
|
|
+ </xsl:function>
|
|
|
|
|
|
<xsl:function name="get_wfs_recurse_xsl:simpleTypeMakeOgcFilter">
|
|
|
<xsl:param name="get_wfs_recurse_xsl:GetsimpleSchema"/>
|
|
|
@@ -230,6 +268,66 @@
|
|
|
<xsl:value-of select="."/>
|
|
|
</xsl:template>
|
|
|
|
|
|
+ <xsl:function name="p5:get_get_from_url">
|
|
|
+ <xsl:param name="p5:url"/> <!-- https://biuro.biall-net.pl/SE/version-git/wfs-data.php?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=d -->
|
|
|
+ <xsl:param name="get"/><!-- which param from get - maybe REQUEST -->
|
|
|
+ <xsl:choose>
|
|
|
+ <xsl:when test="contains($p5:url,'?')">
|
|
|
+ <xsl:variable name="result">
|
|
|
+ <xsl:for-each select="tokenize( substring-after($p5:url,'?'),'&')">
|
|
|
+ <xsl:if test="substring-before(.,'=') = $get"><xsl:value-of select="substring-after(.,'=')"/></xsl:if>
|
|
|
+ </xsl:for-each>
|
|
|
+ </xsl:variable>
|
|
|
+ <xsl:choose>
|
|
|
+ <xsl:when test="string-length($result) > 0">
|
|
|
+ <xsl:value-of select="$result"/>
|
|
|
+ </xsl:when>
|
|
|
+ <xsl:otherwise>
|
|
|
+ <xsl:message terminate="yes">#263 p5:get_get_from_url - cannot get get value=<xsl:value-of select="$get"/> from url string = <xsl:value-of select="$p5:url"/></xsl:message>
|
|
|
+ </xsl:otherwise>
|
|
|
+ </xsl:choose>
|
|
|
+ </xsl:when>
|
|
|
+ <xsl:otherwise>
|
|
|
+ <xsl:message terminate="yes">#268 p5:get_get_from_url url=<xsl:value-of select="$p5:url"/> dont seems correct to extract get</xsl:message>
|
|
|
+ </xsl:otherwise>
|
|
|
+ </xsl:choose>
|
|
|
+
|
|
|
+ </xsl:function>
|
|
|
+
|
|
|
+ <xsl:template match="@next" mode="p5:fid">
|
|
|
+ <!-- https://biuro.biall-net.pl/SE/version-git/wfs-data.php?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=default_db__x3A__BI_audit_MSIG_name%3ABI_audit_MSIG_name&sid=p3s8biqkc8jd4q0ihbqqhr8ueeub7hka9g8nagh3haiqrep37fr6hngspi0m3155v4gl0g2te86dd2hosir0f6l83t7t0j8fsoqq3k2&resolveDepth=4&resolve=all&PRIMARYKEY=7666&SRSNAME=EPSG%3A3003&startIndex=50000&maxFeatures20 -->
|
|
|
+ <xsl:variable name="TYPENAME" select="p5:get_get_from_url(.,'TYPENAME')"/>
|
|
|
+ <xsl:variable name="PRIMARYKEY" select="p5:get_get_from_url(.,'PRIMARYKEY')"/>
|
|
|
+ <xsl:variable name="TYPENAME">
|
|
|
+ <xsl:choose>
|
|
|
+ <xsl:when test="substring-after($TYPENAME,':')">
|
|
|
+ <xsl:value-of select="substring-after($TYPENAME,':')"/>
|
|
|
+ </xsl:when>
|
|
|
+ <xsl:otherwise>
|
|
|
+ <xsl:value-of select="$TYPENAME"/>
|
|
|
+ </xsl:otherwise>
|
|
|
+ </xsl:choose>
|
|
|
+ </xsl:variable>
|
|
|
+ <xsl:value-of select="concat($TYPENAME,'.',$PRIMARYKEY)"/>
|
|
|
+ </xsl:template>
|
|
|
+
|
|
|
+ <xsl:function name="p5:fid">
|
|
|
+ <xsl:param name="p5:next"/>
|
|
|
+ <xsl:choose>
|
|
|
+ <xsl:when test="contains($p5:next,'PRIMARYKEY=')">
|
|
|
+ <xsl:variable name="TYPENAME" select="p5:get_get_from_url($p5:next,'TYPENAME')"/>
|
|
|
+ <xsl:variable name="PRIMARYKEY" select="p5:get_get_from_url($p5:next,'PRIMARYKEY')"/>
|
|
|
+ <xsl:value-of select="concat($TYPENAME,'.',$PRIMARYKEY)"/>
|
|
|
+ </xsl:when>
|
|
|
+ <xsl:otherwise>
|
|
|
+ <xsl:message>#312 cannot retrieve PRIMARYKEY from propably backreffed url=<xsl:value-of select="$p5:next"/></xsl:message>
|
|
|
+ </xsl:otherwise>
|
|
|
+
|
|
|
+ </xsl:choose>
|
|
|
+ <!-- https://biuro.biall-net.pl/SE/version-git/wfs-data.php?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=default_db__x3A__BI_audit_MSIG_name%3ABI_audit_MSIG_name&sid=p3s8biqkc8jd4q0ihbqqhr8ueeub7hka9g8nagh3haiqrep37fr6hngspi0m3155v4gl0g2te86dd2hosir0f6l83t7t0j8fsoqq3k2&resolveDepth=4&resolve=all&PRIMARYKEY=7666&SRSNAME=EPSG%3A3003&startIndex=50000&maxFeatures20 -->
|
|
|
+
|
|
|
+ </xsl:function>
|
|
|
+
|
|
|
<xsl:template name="simpleTypeMakeOgcFilter_merge"><!-- do zrobienia polaczonego filtru OGC -->
|
|
|
<xsl:param name="simpleTypeMakeOgcFilter" required="yes"/>
|
|
|
<xsl:param name="xpath_dita" required="yes"/> <!-- @value -->
|
|
|
@@ -345,7 +443,12 @@
|
|
|
</xsl:variable>
|
|
|
|
|
|
<!--<xsl:variable name="url_string" select="concat($protocol,$username,':',$username.pass,'@',$api,'/',$targetNamespace_DEFAULTS_prefix,'/',$request_string)"/>-->
|
|
|
- <xsl:message>#265 test $php_session_id_ok.string=<xsl:value-of select="$php_session_id_ok.string"/>; $url_string=<xsl:value-of select="$request_string"/> </xsl:message>
|
|
|
+ <xsl:message>#265 test $php_session_id_ok.string=<xsl:value-of select="$php_session_id_ok.string"/>; $url_string=<xsl:value-of select="$request_string"/>
|
|
|
+ p5:links.recurse_level.limit = <xsl:value-of select="$p5:links.recurse_level.limit"/>
|
|
|
+ p5:links.next.recurse_level.limit = <xsl:value-of select="$p5:links.next.recurse_level.limit"/>
|
|
|
+ resolveDepth = <xsl:value-of select="$resolveDepth"/>
|
|
|
+
|
|
|
+ </xsl:message>
|
|
|
<xsl:variable name="get_wfs_recurse_xsl:wfs_response" select="doc($request_string)"/>
|
|
|
<xsl:if test="$debug > 5">
|
|
|
<wfs_response>
|
|
|
@@ -354,11 +457,28 @@
|
|
|
<test>https://a.binder:@biuro.biall-net.pl/SE/version-git/wfs-data.php/default_db/?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=p5_default_db:PROCES_INIT&SRSNAME=EPSG:3003&MAXFEATURES=15</test>
|
|
|
|
|
|
<!--<xsl:copy-of select="$wfs_response"/>-->
|
|
|
-
|
|
|
<xsl:copy-of select="$get_wfs_recurse_xsl:wfs_response"/>
|
|
|
</wfs_response>
|
|
|
</xsl:if>
|
|
|
- <xsl:choose>
|
|
|
+ <xsl:variable name="get_wfs_recurse_xsl:context.nodes">
|
|
|
+ <get_wfs_recurse_xsl:context.nodes>
|
|
|
+ <xsl:apply-templates mode="get_wfs_recurse_xsl:context.nodes" select="$get_wfs_recurse_xsl:wfs_response"/>
|
|
|
+ </get_wfs_recurse_xsl:context.nodes>
|
|
|
+ </xsl:variable>
|
|
|
+ <xsl:variable name="get_wfs_recurse_xsl:context.PRIMARYKEY">
|
|
|
+ <get_wfs_recurse_xsl:context.PRIMARYKEY>
|
|
|
+ <xsl:for-each select="$get_wfs_recurse_xsl:wfs_response/wfs:FeatureCollection/gml:featureMember/*">
|
|
|
+ <get_wfs_recurse_xsl:nodes>
|
|
|
+ <xsl:attribute name="fid" select="@fid"/>
|
|
|
+ </get_wfs_recurse_xsl:nodes>
|
|
|
+ </xsl:for-each>
|
|
|
+ </get_wfs_recurse_xsl:context.PRIMARYKEY>
|
|
|
+ </xsl:variable>
|
|
|
+ <xsl:if test="number($debug) > 3">
|
|
|
+ <xsl:copy-of select="$get_wfs_recurse_xsl:context.PRIMARYKEY"/>
|
|
|
+ <xsl:copy-of select="$get_wfs_recurse_xsl:context.nodes"/>
|
|
|
+ </xsl:if>
|
|
|
+ <xsl:choose>
|
|
|
<xsl:when test="$api_recurse">
|
|
|
<xsl:if test="$get_wfs_recurse_xsl:wfs_response/ServiceExceptionReport" xpath-default-namespace="http://www.opengis.net/ogc">
|
|
|
<xsl:message terminate="yes"> Error with query <xsl:value-of select="$get_wfs_recurse_xsl:wfs_response//ServiceException/text()" xpath-default-namespace="http://www.opengis.net/ogc"/></xsl:message>
|
|
|
@@ -370,17 +490,28 @@
|
|
|
<xsl:copy-of select="$get_wfs_recurse_xsl:wfs_response/wfs:FeatureCollection/gml:featureMember/namespace::node()"/>
|
|
|
<xsl:copy-of select="$get_wfs_recurse_xsl:wfs_response/wfs:FeatureCollection/gml:featureMember/*/namespace::node()"/>
|
|
|
<xsl:copy-of select="$get_wfs_recurse_xsl:wfs_response/wfs:FeatureCollection/gml:featureMember//*/namespace::node()"/>-->
|
|
|
- <xsl:apply-templates mode="p5:links.evaluate" select="$get_wfs_recurse_xsl:wfs_response/wfs:FeatureCollection/gml:featureMember/*" xpath-default-namespace="http://www.opengis.net/wfs"/>
|
|
|
+ <xsl:apply-templates mode="p5:links.evaluate" select="$get_wfs_recurse_xsl:wfs_response/wfs:FeatureCollection/gml:featureMember/*" xpath-default-namespace="http://www.opengis.net/wfs">
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.nodes" select="$get_wfs_recurse_xsl:context.nodes"/>
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.PRIMARYKEY" select="$get_wfs_recurse_xsl:context.PRIMARYKEY"/>
|
|
|
+ <xsl:with-param name="debug.last_wfs_request" select="$request_string"/>
|
|
|
+ </xsl:apply-templates>
|
|
|
</xsl:when>
|
|
|
<xsl:otherwise>
|
|
|
<xsl:copy-of select="$get_wfs_recurse_xsl:wfs_response/wfs:FeatureCollection/gml:featureMember/*"/>
|
|
|
- <xsl:apply-templates mode="p5:links.evaluate" select="$get_wfs_recurse_xsl:wfs_response/wfs:FeatureCollection/gml:featureMember/*" xpath-default-namespace="http://www.opengis.net/wfs"/>
|
|
|
+ <xsl:apply-templates mode="p5:links.evaluate" select="$get_wfs_recurse_xsl:wfs_response/wfs:FeatureCollection/gml:featureMember/*" xpath-default-namespace="http://www.opengis.net/wfs">
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.nodes" select="$get_wfs_recurse_xsl:context.nodes"/>
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.PRIMARYKEY" select="$get_wfs_recurse_xsl:context.PRIMARYKEY"/>
|
|
|
+ <xsl:with-param name="debug.last_wfs_request" select="$request_string"/>
|
|
|
+ </xsl:apply-templates>
|
|
|
</xsl:otherwise>
|
|
|
</xsl:choose>
|
|
|
</xsl:when>
|
|
|
<xsl:otherwise>
|
|
|
<xsl:apply-templates mode="after_first_ant_assing_vars" select="$get_wfs_recurse_xsl:GetsimpleSchema">
|
|
|
<xsl:with-param name="get_wfs_recurse_xsl:wfs_response" select="$get_wfs_recurse_xsl:wfs_response"/>
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.nodes" select="$get_wfs_recurse_xsl:context.nodes"/>
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.PRIMARYKEY" select="$get_wfs_recurse_xsl:context.PRIMARYKEY"/>
|
|
|
+ <xsl:with-param name="debug.last_wfs_request" select="$request_string"/>
|
|
|
</xsl:apply-templates>
|
|
|
</xsl:otherwise>
|
|
|
</xsl:choose>
|
|
|
@@ -390,39 +521,98 @@
|
|
|
|
|
|
<xsl:template match="*[@xlink:href]" mode="p5:links.evaluate" xpath-default-namespace="http://www.opengis.net/wfs">
|
|
|
<xsl:param name="p5:links.recurse_level" select="1"/>
|
|
|
+ <xsl:param name="p5:links.next.recurse_level" select="1"/>
|
|
|
+ <xsl:param name="get_wfs_recurse_xsl:context.nodes" required="yes"/>
|
|
|
+ <xsl:param name="get_wfs_recurse_xsl:context.PRIMARYKEY" required="yes"/>
|
|
|
+ <xsl:param name="debug.last_wfs_request" required="yes"/>
|
|
|
+ <xsl:variable name="p5:fid" select="get_wfs_recurse_xsl:REQUEST.fid(@xlink:href)"/>
|
|
|
<!--<xlink:href.evaluate>-->
|
|
|
- <xsl:copy>
|
|
|
+ <!-- <xsl:copy>
|
|
|
+ <xsl:copy-of select="@*"/>-->
|
|
|
+ <xsl:if test="number($debug) > 3">
|
|
|
+ <xlink:href.debug509>
|
|
|
+ <xsl:attribute name="debug.last_wfs_request" select="$debug.last_wfs_request"/>
|
|
|
<xsl:copy-of select="@*"/>
|
|
|
+ </xlink:href.debug509>
|
|
|
+ </xsl:if>
|
|
|
+ <xsl:message>#516-A name()<xsl:value-of select="name()"/>; @xlink:href=<xsl:value-of select="@xlink:href"/>;</xsl:message>
|
|
|
+ <xsl:comment>#516-A name()<xsl:value-of select="name()"/>; @xlink:href=<xsl:value-of select="@xlink:href"/>;</xsl:comment>
|
|
|
<xsl:variable name="xlink:request_string">
|
|
|
<xsl:apply-templates mode="xlink:request_string" select="."/>
|
|
|
</xsl:variable>
|
|
|
- <xsl:message>#398 p5:links.recurse_level=<xsl:value-of select="$p5:links.recurse_level"/>; at @xlink:href xlink:request_string=<xsl:value-of select="$xlink:request_string"/></xsl:message>
|
|
|
+ <xsl:message>#516-A anchestors.count(<xsl:value-of select="count(ancestor::node())"/>); context.PRIMARYKEY count(<xsl:value-of select="count($get_wfs_recurse_xsl:context.PRIMARYKEY//*[@fid])"/>); previous @fid=count(<xsl:value-of select="count(root()//*[@fid])"/>); get_wfs_recurse_xsl:context.nodes count(<xsl:value-of select="count($get_wfs_recurse_xsl:context.nodes//*[@fid])"/>); debug.last_wfs_request=<xsl:value-of select="$debug.last_wfs_request"/>;</xsl:message>
|
|
|
+ <xsl:comment>#516-A anchestors.count(<xsl:value-of select="count(ancestor::node())"/>); context.PRIMARYKEY count(<xsl:value-of select="count($get_wfs_recurse_xsl:context.PRIMARYKEY//*[@fid])"/>); previous @fid=count(<xsl:value-of select="count(root()//*[@fid])"/>); get_wfs_recurse_xsl:context.nodes count(<xsl:value-of select="count($get_wfs_recurse_xsl:context.nodes//*[@fid])"/>); debug.last_wfs_request=<xsl:value-of select="$debug.last_wfs_request"/>;</xsl:comment>
|
|
|
+ <!--<xsl:message>#401 previous @fid
|
|
|
+ <xsl:for-each select="root()//*[@fid]">
|
|
|
+ <xsl:value-of select="@fid"/>
|
|
|
+ </xsl:for-each>
|
|
|
+ </xsl:message>-->
|
|
|
<xsl:choose>
|
|
|
- <xsl:when test="p5:links.recurse_level.limit($p5:links.recurse_level)"/>
|
|
|
+ <!--<xsl:when test="$get_wfs_recurse_xsl:context.nodes//*[@fid = get_wfs_recurse_xsl:REQUEST.fid( current()/@xlink:href)]">
|
|
|
+
|
|
|
+ </xsl:when>-->
|
|
|
+ <xsl:when test="root()//*[number(@root.distance) < number($p5:links.loop.context.nodes.min.distance) and @fid = get_wfs_recurse_xsl:REQUEST.fid( current()/@xlink:href)]">
|
|
|
+ <xsl:message>#398-A match="*[@xlink:href]" - LOOP DETECTED for <xsl:value-of select="root()//*[@fid = get_wfs_recurse_xsl:REQUEST.fid( current()/@xlink:href)]/concat(@fid,' dist:',@root.distance)"/> at p5:links.recurse_level=<xsl:value-of select="$p5:links.recurse_level"/>; at p5:links.next.recurse_level=<xsl:value-of select="$p5:links.next.recurse_level"/>; BYPASSING @xlink:href=<xsl:value-of select="@xlink:href"/>; debug.last_wfs_request=<xsl:value-of select="$debug.last_wfs_request"/>;</xsl:message>
|
|
|
+ <xsl:comment>#398-A match="*[@xlink:href]" - LOOP DETECTED for <xsl:value-of select="root()//*[@fid = get_wfs_recurse_xsl:REQUEST.fid( current()/@xlink:href)]/concat(@fid,' dist:',@root.distance)"/> at p5:links.recurse_level=<xsl:value-of select="$p5:links.recurse_level"/>; at p5:links.next.recurse_level=<xsl:value-of select="$p5:links.next.recurse_level"/> BYPASSING @xlink:href=<xsl:value-of select="@xlink:href"/>; debug.last_wfs_request=<xsl:value-of select="$debug.last_wfs_request"/>;</xsl:comment>
|
|
|
+ </xsl:when>
|
|
|
+ <xsl:when test="p5:links.recurse_level.limit($p5:links.recurse_level)">
|
|
|
+ <xsl:message>#398-B match="*[@xlink:href]" HIT LIMIT p5:links.recurse_level=<xsl:value-of select="$p5:links.recurse_level"/>; at p5:links.next.recurse_level=<xsl:value-of select="$p5:links.next.recurse_level"/>; BYPASSING @xlink:href=<xsl:value-of select="@xlink:href"/>; debug.last_wfs_request=<xsl:value-of select="$debug.last_wfs_request"/>;</xsl:message>
|
|
|
+ <xsl:comment>#398-B match="*[@xlink:href]" HIT LIMIT p5:links.recurse_level=<xsl:value-of select="$p5:links.recurse_level"/>; at p5:links.next.recurse_level=<xsl:value-of select="$p5:links.next.recurse_level"/>; BYPASSING @xlink:href=<xsl:value-of select="@xlink:href"/>; debug.last_wfs_request=<xsl:value-of select="$debug.last_wfs_request"/>;</xsl:comment>
|
|
|
+ <xsl:copy-of select="."/>
|
|
|
+ </xsl:when>
|
|
|
<xsl:when test=" string-length($xlink:request_string) = 0">
|
|
|
- <xsl:message>#402 stopped recursion due to ERROR in empty $xlink:request_string - DEBUGGING TODO 2018-01-5</xsl:message>
|
|
|
+ <xsl:message>#402-C match="*[@xlink:href]" stopped recursion due to ERROR in empty $xlink:request_string - DEBUGGING TODO 2018-01-5; debug.last_wfs_request=<xsl:value-of select="$debug.last_wfs_request"/>;</xsl:message>
|
|
|
+ <xsl:comment>#402-C match="*[@xlink:href]" stopped recursion due to ERROR in empty $xlink:request_string - DEBUGGING TODO 2018-01-5; debug.last_wfs_request=<xsl:value-of select="$debug.last_wfs_request"/>;</xsl:comment>
|
|
|
</xsl:when>
|
|
|
<xsl:otherwise>
|
|
|
+ <xsl:message>#398-D match="*[@xlink:href]"-B count(.)=<xsl:value-of select="count(.)"/>; continuing still digging at @xlink:href xlink:request_string=<xsl:value-of select="$xlink:request_string"/>; debug.last_wfs_request=<xsl:value-of select="$debug.last_wfs_request"/>;</xsl:message>
|
|
|
+ <xsl:comment>#398-D match="*[@xlink:href]"-B count(.)=<xsl:value-of select="count(.)"/>; continuing still digging at @xlink:href xlink:request_string=<xsl:value-of select="$xlink:request_string"/>; debug.last_wfs_request=<xsl:value-of select="$debug.last_wfs_request"/>;</xsl:comment>
|
|
|
+
|
|
|
+ <!--<xsl:variable name="xlink:request_string">
|
|
|
+ <xsl:apply-templates mode="xlink:request_string" select="."/>
|
|
|
+ </xsl:variable>-->
|
|
|
<xsl:apply-templates select=" get_wfs_recurse_xsl:wfs_response($xlink:request_string)" mode="p5:links.evaluate">
|
|
|
- <xsl:with-param name="p5:links.recurse_level" select="$p5:links.recurse_level + 1"/>
|
|
|
+ <xsl:with-param name="p5:links.recurse_level" select="number($p5:links.recurse_level) + 1"/>
|
|
|
+ <xsl:with-param name="p5:links.next.recurse_level" select="1"/> <!-- $p5:links.next.recurse_level TODO researching start from beginning -->
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.nodes" select="$get_wfs_recurse_xsl:context.nodes"/>
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.PRIMARYKEY" select="get_wfs_recurse_xsl:context.PRIMARYKEY.merge($get_wfs_recurse_xsl:context.PRIMARYKEY,$p5:fid)"/>
|
|
|
+ <xsl:with-param name="debug.last_wfs_request" select="$xlink:request_string"/>
|
|
|
</xsl:apply-templates>
|
|
|
</xsl:otherwise>
|
|
|
|
|
|
</xsl:choose>
|
|
|
|
|
|
- </xsl:copy>
|
|
|
+ <!--</xsl:copy>-->
|
|
|
<!--</xlink:href.evaluate>-->
|
|
|
</xsl:template>
|
|
|
|
|
|
|
|
|
<xsl:template match="*" mode="p5:links.evaluate" xpath-default-namespace="http://www.opengis.net/wfs">
|
|
|
<xsl:param name="p5:links.recurse_level" select="1"/>
|
|
|
- <xsl:copy>
|
|
|
+ <xsl:param name="p5:links.next.recurse_level" select="1"/>
|
|
|
+ <xsl:param name="get_wfs_recurse_xsl:context.nodes" required="yes"/>
|
|
|
+ <xsl:param name="get_wfs_recurse_xsl:context.PRIMARYKEY" required="yes"/>
|
|
|
+ <xsl:param name="debug.last_wfs_request" required="yes"/>
|
|
|
+ <!-- <xsl:element name="{name()}" inherit-namespaces="yes">
|
|
|
+ <xsl:copy-of select="namespace::node()"/>-->
|
|
|
+ <xsl:copy><!-- debug -->
|
|
|
<xsl:copy-of select="@*"/>
|
|
|
- <xsl:apply-templates mode="xlink:href.evaluate" select="@xlink:href"/>
|
|
|
+ <!--<xsl:attribute name="debug.566"> match=* mode=p5:links.evaluate</xsl:attribute>-->
|
|
|
+ <xsl:apply-templates mode="xlink:href.evaluate" select="@xlink:href">
|
|
|
+ <xsl:with-param name="p5:links.recurse_level" select="$p5:links.recurse_level"/>
|
|
|
+ <xsl:with-param name="p5:links.next.recurse_level" select="$p5:links.next.recurse_level"/>
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.nodes" select="$get_wfs_recurse_xsl:context.nodes"/>
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.PRIMARYKEY" select="$get_wfs_recurse_xsl:context.PRIMARYKEY"/>
|
|
|
+ <xsl:with-param name="debug.last_wfs_request" select="$debug.last_wfs_request"/>
|
|
|
+ </xsl:apply-templates>
|
|
|
<xsl:apply-templates mode="p5:links.evaluate">
|
|
|
<xsl:with-param name="p5:links.recurse_level" select="$p5:links.recurse_level"/>
|
|
|
+ <xsl:with-param name="p5:links.next.recurse_level" select="$p5:links.next.recurse_level"/>
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.nodes" select="$get_wfs_recurse_xsl:context.nodes"/>
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.PRIMARYKEY" select="$get_wfs_recurse_xsl:context.PRIMARYKEY"/>
|
|
|
+ <xsl:with-param name="debug.last_wfs_request" select="$debug.last_wfs_request"/>
|
|
|
</xsl:apply-templates>
|
|
|
+ <!--</xsl:element>-->
|
|
|
</xsl:copy>
|
|
|
<!--<xsl:element name="{name()}" inherit-namespaces="yes" xpath-default-namespace="http://www.opengis.net/wfs">
|
|
|
|
|
|
@@ -434,14 +624,24 @@
|
|
|
<xsl:function name="p5:links.recurse_level.limit">
|
|
|
<xsl:param name="p5:links.recurse_level"/>
|
|
|
<xsl:choose>
|
|
|
- <xsl:when test="$p5:links.recurse_level > $p5:links.recurse_level.limit">
|
|
|
+ <xsl:when test="number($p5:links.recurse_level) > number($p5:links.recurse_level.limit)">
|
|
|
<xsl:value-of select="'limit hit'"/>
|
|
|
- <xsl:message>#431 $p5:links.recurse_level.limit at <xsl:value-of select="$p5:links.recurse_level"/></xsl:message>
|
|
|
+ <xsl:message>#431-R LIMIT HIT p5:links.recurse_level.limit($p5:links.recurse_level.limit at <xsl:value-of select="$p5:links.recurse_level"/>);</xsl:message>
|
|
|
+ <xsl:comment>#431-R LIMIT HIT p5:links.recurse_level.limit($p5:links.recurse_level.limit at <xsl:value-of select="$p5:links.recurse_level"/>)</xsl:comment>
|
|
|
</xsl:when>
|
|
|
</xsl:choose>
|
|
|
-
|
|
|
</xsl:function>
|
|
|
|
|
|
+ <xsl:function name="p5:links.next.recurse_level.limit">
|
|
|
+ <xsl:param name="p5:links.next.recurse_level"/>
|
|
|
+ <xsl:choose>
|
|
|
+ <xsl:when test="number($p5:links.next.recurse_level.limit) > number($p5:links.next.recurse_level.limit)">
|
|
|
+ <xsl:value-of select="'limit hit'"/>
|
|
|
+ <xsl:message>#431-N LIMIT HIT p5:links.next.recurse_level.limit(<xsl:value-of select="$p5:links.next.recurse_level.limit"/>) at p5:links.next.recurse_level=<xsl:value-of select="$p5:links.next.recurse_level"/>;</xsl:message>
|
|
|
+ <xsl:comment>#431-N LIMIT HIT p5:links.next.recurse_level.limit(<xsl:value-of select="$p5:links.next.recurse_level.limit"/>) at p5:links.next.recurse_level=<xsl:value-of select="$p5:links.next.recurse_level"/>;</xsl:comment>
|
|
|
+ </xsl:when>
|
|
|
+ </xsl:choose>
|
|
|
+ </xsl:function>
|
|
|
|
|
|
<xsl:function name="get_wfs_recurse_xsl:php_session_id_ok.string">
|
|
|
<xsl:param name="php_session_id_ok.string"/>
|
|
|
@@ -487,7 +687,18 @@
|
|
|
|
|
|
<!--<xsl:value-of select="tokenize($xlink:href,'/')[ 1 to count(tokenize($xlink:href,'.'))]"/>-->
|
|
|
</xsl:function>
|
|
|
-
|
|
|
+
|
|
|
+ <xsl:function name="get_wfs_recurse_xsl:REQUEST.fid">
|
|
|
+ <xsl:param name="xlink:href"/>
|
|
|
+ <xsl:choose>
|
|
|
+ <xsl:when test="substring-after($xlink:href,'#')">
|
|
|
+ <xsl:value-of select=" substring-after($xlink:href,'#')"/>
|
|
|
+ </xsl:when>
|
|
|
+ <xsl:otherwise><xsl:value-of select="false()"/></xsl:otherwise>
|
|
|
+ </xsl:choose>
|
|
|
+
|
|
|
+ </xsl:function>
|
|
|
+
|
|
|
<xsl:function name="get_wfs_recurse_xsl:REQUEST.TYPE.PRIMARYKEY">
|
|
|
<xsl:param name="xlink:href"/>
|
|
|
|
|
|
@@ -543,6 +754,7 @@
|
|
|
|
|
|
<xsl:function name="get_wfs_recurse_xsl:wfs_response">
|
|
|
<xsl:param name="request_string"/>
|
|
|
+ <xsl:message>#741 quering wfs for request_string= <xsl:value-of select="$request_string"/> ;</xsl:message>
|
|
|
<xsl:variable name="get_wfs_recurse_xsl:wfs_response" select="doc($request_string)"/>
|
|
|
<xsl:if test="$get_wfs_recurse_xsl:wfs_response/ServiceExceptionReport" xpath-default-namespace="http://www.opengis.net/ogc">
|
|
|
<xsl:message terminate="yes"> Error with query <xsl:value-of select="$get_wfs_recurse_xsl:wfs_response//ServiceException/text()" xpath-default-namespace="http://www.opengis.net/ogc"/></xsl:message>
|
|
|
@@ -560,6 +772,10 @@
|
|
|
|
|
|
<xsl:template match="p5:links" mode="p5:links.evaluate">
|
|
|
<xsl:param name="p5:links.recurse_level" select="1"/>
|
|
|
+ <xsl:param name="p5:links.next.recurse_level" select="1"/>
|
|
|
+ <xsl:param name="get_wfs_recurse_xsl:context.nodes" required="yes"/>
|
|
|
+ <xsl:param name="get_wfs_recurse_xsl:context.PRIMARYKEY" required="yes"/>
|
|
|
+ <xsl:param name="debug.last_wfs_request" required="yes"/>
|
|
|
<xsl:variable name="php_session_id_ok.string">
|
|
|
<xsl:if test=" string-length($php_session_id_ok.string) > 0">
|
|
|
<xsl:value-of select="concat('&sid=',normalize-space($php_session_id_ok.string))"/>
|
|
|
@@ -572,12 +788,26 @@
|
|
|
</xsl:when>
|
|
|
</xsl:choose>
|
|
|
</xsl:variable>
|
|
|
- <xsl:copy>
|
|
|
-
|
|
|
+ <!-- <xsl:copy>-->
|
|
|
+ <p5:links><xsl:copy-of select="*"/></p5:links>
|
|
|
|
|
|
+ <xsl:variable name="p5:fid" select="p5:fid(p5:next/text())"/>
|
|
|
+ <xsl:message>#684 debug match="p5:links" detected $p5:fid = <xsl:value-of select="$p5:fid"/></xsl:message>
|
|
|
+ <xsl:comment>#684 debug match="p5:links" detected $p5:fid = <xsl:value-of select="$p5:fid"/></xsl:comment>
|
|
|
+ <xsl:copy-of select="$get_wfs_recurse_xsl:context.PRIMARYKEY"/>
|
|
|
+ <xsl:copy-of select="$get_wfs_recurse_xsl:context.nodes"/>
|
|
|
<xsl:choose>
|
|
|
- <xsl:when test="$p5:links.recurse_level > $p5:links.recurse_level.limit">
|
|
|
- <xsl:message>#430 $p5:links.recurse_level.limit at <xsl:value-of select="$p5:links.recurse_level"/></xsl:message>
|
|
|
+ <xsl:when test="number($p5:links.recurse_level) > number($p5:links.recurse_level.limit)">
|
|
|
+ <xsl:message>#430 STOPPED digging links by HIT $p5:links.recurse_level.limit at <xsl:value-of select="$p5:links.recurse_level"/>; at p5:links.next.recurse_level=<xsl:value-of select="$p5:links.next.recurse_level"/>;</xsl:message>
|
|
|
+ <xsl:comment>#430 STOPPED digging links by HIT $p5:links.recurse_level.limit at <xsl:value-of select="$p5:links.recurse_level"/>; at p5:links.next.recurse_level=<xsl:value-of select="$p5:links.next.recurse_level"/>;</xsl:comment>
|
|
|
+ </xsl:when>
|
|
|
+ <xsl:when test="$get_wfs_recurse_xsl:context.PRIMARYKEY//*[@fid = $p5:fid]">
|
|
|
+ <xsl:message> #690 STOPPED match="p5:links" DETECTED PRIMARYKEY FUTURE LOOP BY PRIMARY KEY $p5:fid=<xsl:value-of select="$p5:fid"/>;</xsl:message>
|
|
|
+ <xsl:comment> #690 STOPPED match="p5:links" DETECTED PRIMARYKEY FUTURE LOOP BY PRIMARY KEY $p5:fid=<xsl:value-of select="$p5:fid"/>;</xsl:comment>
|
|
|
+ </xsl:when>
|
|
|
+ <xsl:when test="$get_wfs_recurse_xsl:context.PRIMARYKEY//*[@fid = $p5:fid]">
|
|
|
+ <xsl:message> #691 STOPPED match="p5:links" DETECTED FUTURE LOOP BY PRIMARY KEY $p5:fid=<xsl:value-of select="$p5:fid"/>;</xsl:message>
|
|
|
+ <xsl:comment> #691 STOPPED match="p5:links" DETECTED FUTURE LOOP BY PRIMARY KEY $p5:fid=<xsl:value-of select="$p5:fid"/>;</xsl:comment>
|
|
|
</xsl:when>
|
|
|
<xsl:otherwise>
|
|
|
<xsl:variable name="MAXFEATURES.request">
|
|
|
@@ -588,8 +818,8 @@
|
|
|
</xsl:variable>
|
|
|
|
|
|
<xsl:variable name="request_string" select="concat(p5:next/text(),$php_session_id_ok.string,$api_recurse.request,$MAXFEATURES.request)"/> <!-- ,'&maxFeatures=999' -->
|
|
|
- <xsl:message>#415 $p5:links.recurse_level=<xsl:value-of select="$p5:links.recurse_level"/>; requesting p5:links <xsl:value-of select="$request_string"/> <xsl:copy-of select="p5:next/@*"></xsl:copy-of></xsl:message>
|
|
|
- <xsl:comment>#415 $p5:links.recurse_level=<xsl:value-of select="$p5:links.recurse_level"/>; requesting p5:links <xsl:value-of select="$request_string"/></xsl:comment>
|
|
|
+ <xsl:message>#415 $p5:links.recurse_level=<xsl:value-of select="$p5:links.recurse_level"/>; p5:links.next.recurse_level=<xsl:value-of select="$p5:links.next.recurse_level"/>; requesting p5:links <xsl:value-of select="$request_string"/> <xsl:copy-of select="p5:next/@*"></xsl:copy-of></xsl:message>
|
|
|
+ <xsl:comment>#415 $p5:links.recurse_level=<xsl:value-of select="$p5:links.recurse_level"/>; p5:links.next.recurse_level=<xsl:value-of select="$p5:links.next.recurse_level"/>; requesting p5:links <xsl:value-of select="$request_string"/></xsl:comment>
|
|
|
<!--<request_string>
|
|
|
<xsl:copy-of select="$request_string"/>
|
|
|
</request_string>-->
|
|
|
@@ -601,29 +831,41 @@
|
|
|
<xsl:choose>
|
|
|
<xsl:when test="$get_wfs_recurse_xsl:wfs_response/wfs:FeatureCollection/@next">
|
|
|
<!--<debug.438>-->
|
|
|
- <xsl:comment>debug.438</xsl:comment>
|
|
|
- <xsl:message> #360-recurse-A to parse to retrieve links and merge xml <xsl:value-of select="$get_wfs_recurse_xsl:wfs_response//p5:next/text()"/></xsl:message>
|
|
|
+ <xsl:comment>360-recurse-A $p5:links.recurse_level=<xsl:value-of select="$p5:links.recurse_level"/>; p5:links.next.recurse_level=<xsl:value-of select="$p5:links.next.recurse_level"/>; to parse to retrieve links and merge xml <xsl:value-of select="$get_wfs_recurse_xsl:wfs_response//p5:next/text()"/></xsl:comment>
|
|
|
+ <xsl:message> #360-recurse-A $p5:links.recurse_level=<xsl:value-of select="$p5:links.recurse_level"/>; p5:links.next.recurse_level=<xsl:value-of select="$p5:links.next.recurse_level"/>; to parse to retrieve links and merge xml <xsl:value-of select="$get_wfs_recurse_xsl:wfs_response//p5:next/text()"/></xsl:message>
|
|
|
<xsl:apply-templates mode="#current" select="$get_wfs_recurse_xsl:wfs_response">
|
|
|
- <xsl:with-param name="p5:links.recurse_level" select="( $p5:links.recurse_level + 1 )"/>
|
|
|
+ <xsl:with-param name="p5:links.recurse_level" select="number($p5:links.recurse_level)"/> <!-- + 1 --><!-- setting to 1 again to research child node -->
|
|
|
+ <xsl:with-param name="p5:links.next.recurse_level" select="number($p5:links.next.recurse_level) + 1"/>
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.nodes" select="get_wfs_recurse_xsl:context.nodes.merge($get_wfs_recurse_xsl:context.nodes,$get_wfs_recurse_xsl:wfs_response)"/>
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.PRIMARYKEY" select="get_wfs_recurse_xsl:context.PRIMARYKEY.merge($get_wfs_recurse_xsl:context.PRIMARYKEY,$p5:fid)"/>
|
|
|
+ <xsl:with-param name="debug.last_wfs_request" select="$request_string"/>
|
|
|
</xsl:apply-templates>
|
|
|
<!--</debug.438>-->
|
|
|
</xsl:when>
|
|
|
<xsl:when test="$get_wfs_recurse_xsl:wfs_response//p5:next">
|
|
|
<!--<debug.441>-->
|
|
|
- <xsl:comment>debug.441</xsl:comment>
|
|
|
- <xsl:message> #360-recurse-B to parse to retrieve links and merge xml <xsl:value-of select="$get_wfs_recurse_xsl:wfs_response//p5:next/text()"/></xsl:message>
|
|
|
+ <xsl:comment> #360-recurse-B $p5:links.recurse_level=<xsl:value-of select="$p5:links.recurse_level"/>; p5:links.next.recurse_level=<xsl:value-of select="$p5:links.next.recurse_level"/>; to parse to retrieve links and merge xml <xsl:value-of select="$get_wfs_recurse_xsl:wfs_response//p5:next/text()"/></xsl:comment>
|
|
|
+ <xsl:message> #360-recurse-B $p5:links.recurse_level=<xsl:value-of select="$p5:links.recurse_level"/>; p5:links.next.recurse_level=<xsl:value-of select="$p5:links.next.recurse_level"/>; to parse to retrieve links and merge xml <xsl:value-of select="$get_wfs_recurse_xsl:wfs_response//p5:next/text()"/></xsl:message>
|
|
|
<xsl:apply-templates mode="#current" select="$get_wfs_recurse_xsl:wfs_response">
|
|
|
- <xsl:with-param name="p5:links.recurse_level" select="( $p5:links.recurse_level + 1 )"/>
|
|
|
+ <xsl:with-param name="p5:links.recurse_level" select="$p5:links.recurse_level"/> <!-- + 1 ) -->
|
|
|
+ <xsl:with-param name="p5:links.next.recurse_level" select=" number($p5:links.next.recurse_level) + 1"/>
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.nodes" select="get_wfs_recurse_xsl:context.nodes.merge($get_wfs_recurse_xsl:context.nodes,$get_wfs_recurse_xsl:wfs_response)"/>
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.PRIMARYKEY" select="get_wfs_recurse_xsl:context.PRIMARYKEY.merge($get_wfs_recurse_xsl:context.PRIMARYKEY,$p5:fid)"/>
|
|
|
+ <xsl:with-param name="debug.last_wfs_request" select="$request_string"/>
|
|
|
</xsl:apply-templates>
|
|
|
<!--</debug.441>-->
|
|
|
</xsl:when>
|
|
|
<xsl:otherwise>
|
|
|
<!--<debug.447>-->
|
|
|
- <xsl:comment>debug.447</xsl:comment>
|
|
|
- <xsl:message> #360-recurse-C to parse to retrieve links and merge xml <xsl:value-of select="$get_wfs_recurse_xsl:wfs_response//p5:next/text()"/></xsl:message>
|
|
|
+ <xsl:comment> #360-recurse-C $p5:links.recurse_level=<xsl:value-of select="$p5:links.recurse_level"/>; p5:links.next.recurse_level=<xsl:value-of select="$p5:links.next.recurse_level"/>; to parse to retrieve links and merge xml <xsl:value-of select="$get_wfs_recurse_xsl:wfs_response//p5:next/text()"/></xsl:comment>
|
|
|
+ <xsl:message> #360-recurse-C $p5:links.recurse_level=<xsl:value-of select="$p5:links.recurse_level"/>; p5:links.next.recurse_level=<xsl:value-of select="$p5:links.next.recurse_level"/>; to parse to retrieve links and merge xml <xsl:value-of select="$get_wfs_recurse_xsl:wfs_response//p5:next/text()"/></xsl:message>
|
|
|
<xsl:copy-of select="$get_wfs_recurse_xsl:wfs_response/wfs:FeatureCollection/@*"/>
|
|
|
<xsl:apply-templates mode="#current" select="$get_wfs_recurse_xsl:wfs_response">
|
|
|
- <xsl:with-param name="p5:links.recurse_level" select="( $p5:links.recurse_level + 1 )"/>
|
|
|
+ <xsl:with-param name="p5:links.recurse_level" select="$p5:links.recurse_level"/> <!-- +1 -->
|
|
|
+ <xsl:with-param name="p5:links.next.recurse_level" select=" number($p5:links.next.recurse_level) + 1"/>
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.nodes" select="get_wfs_recurse_xsl:context.nodes.merge($get_wfs_recurse_xsl:context.nodes,$get_wfs_recurse_xsl:wfs_response)"/>
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.PRIMARYKEY" select="get_wfs_recurse_xsl:context.PRIMARYKEY.merge($get_wfs_recurse_xsl:context.PRIMARYKEY,$p5:fid)"/>
|
|
|
+ <xsl:with-param name="debug.last_wfs_request" select="$request_string"/>
|
|
|
</xsl:apply-templates>
|
|
|
<!--</debug.447>-->
|
|
|
</xsl:otherwise>
|
|
|
@@ -631,7 +873,7 @@
|
|
|
</xsl:otherwise>
|
|
|
</xsl:choose>
|
|
|
|
|
|
- </xsl:copy>
|
|
|
+ <!--</xsl:copy>-->
|
|
|
</xsl:template>
|
|
|
|
|
|
|
|
|
@@ -643,7 +885,10 @@
|
|
|
|
|
|
<xsl:template match="wfs:FeatureCollection[@next and gml:featureMember/*]" mode="p5:links.evaluate" >
|
|
|
<xsl:param name="p5:links.recurse_level" select="1"/>
|
|
|
-
|
|
|
+ <xsl:param name="p5:links.next.recurse_level" select="1"/>
|
|
|
+ <xsl:param name="get_wfs_recurse_xsl:context.PRIMARYKEY" required="yes"/>
|
|
|
+ <xsl:param name="get_wfs_recurse_xsl:context.nodes" required="yes"/>
|
|
|
+ <xsl:param name="debug.last_wfs_request" required="yes"/>
|
|
|
|
|
|
<xsl:variable name="php_session_id_ok.string">
|
|
|
<xsl:if test=" string-length($php_session_id_ok.string) > 0">
|
|
|
@@ -653,13 +898,11 @@
|
|
|
<xsl:variable name="MAXFEATURES.request">
|
|
|
<xsl:choose>
|
|
|
<xsl:when test="contains(@next,'maxFeatures')"/>
|
|
|
- <xsl:otherwise><xsl:value-of select="concat('&maxFeatures',$MAXFEATURES)"/></xsl:otherwise>
|
|
|
+ <xsl:otherwise><xsl:value-of select="concat('&maxFeatures=',$MAXFEATURES)"/></xsl:otherwise>
|
|
|
</xsl:choose>
|
|
|
</xsl:variable>
|
|
|
<xsl:variable name="request_string" select="concat(@next,$MAXFEATURES.request)"/>
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
<!--<xsl:variable name="api_recurse.request">
|
|
|
<xsl:choose>
|
|
|
<xsl:when test="1=1"></xsl:when>
|
|
|
@@ -670,51 +913,105 @@
|
|
|
</xsl:variable>-->
|
|
|
|
|
|
|
|
|
+ <xsl:variable name="p5:fid">
|
|
|
+ <xsl:choose>
|
|
|
+ <xsl:when test="contains(@next,'PRIMARYKEY=')">
|
|
|
+ <xsl:apply-templates select="@next" mode="p5:fid"/>
|
|
|
+ </xsl:when>
|
|
|
+ <xsl:otherwise>
|
|
|
+ <xsl:message>#833 cannot get PRIMARYKEY from Backreffed - check loop in another leaf from <xsl:value-of select="@next"/></xsl:message>
|
|
|
+ <xsl:comment>#833 cannot get PRIMARYKEY from Backreffed - check loop in another leaf from <xsl:value-of select="@next"/></xsl:comment>
|
|
|
+ </xsl:otherwise>
|
|
|
+ </xsl:choose>
|
|
|
+ </xsl:variable>
|
|
|
<!-- ,'&maxFeatures=999' -->
|
|
|
- <xsl:message>#511 $p5:links.recurse_level=<xsl:value-of select="$p5:links.recurse_level"/>; requesting @next <xsl:value-of select="$request_string"/></xsl:message>
|
|
|
- <xsl:comment>#511 $p5:links.recurse_level=<xsl:value-of select="$p5:links.recurse_level"/>; requesting @next <xsl:value-of select="$request_string"/></xsl:comment>
|
|
|
+ <xsl:message>#511 p5:fid=<xsl:value-of select="$p5:fid"/> $p5:links.recurse_level=<xsl:value-of select="$p5:links.recurse_level"/>; p5:links.next.recurse_level=<xsl:value-of select="$p5:links.next.recurse_level"/>; requesting @next <xsl:value-of select="$request_string"/>; debug.last_wfs_request=<xsl:value-of select="$debug.last_wfs_request"/>;</xsl:message>
|
|
|
+ <xsl:comment>#511 p5:fid=<xsl:value-of select="$p5:fid"/> $p5:links.recurse_level=<xsl:value-of select="$p5:links.recurse_level"/>; p5:links.next.recurse_level=<xsl:value-of select="$p5:links.next.recurse_level"/>; requesting @next <xsl:value-of select="$request_string"/>; debug.last_wfs_request=<xsl:value-of select="$debug.last_wfs_request"/>;</xsl:comment>
|
|
|
<!--<request_string>
|
|
|
<xsl:copy-of select="$request_string"/>
|
|
|
</request_string>-->
|
|
|
- <xsl:variable name="get_wfs_recurse_xsl:wfs_response" select="doc($request_string)"/>
|
|
|
- <!--<debug.470>-->
|
|
|
- <!--<xsl:copy-of select="@*"/>-->
|
|
|
- <!--<debug_current>-->
|
|
|
- <xsl:comment>debug.current</xsl:comment>
|
|
|
+ <xsl:choose>
|
|
|
+
|
|
|
+ <xsl:when test="number($p5:links.recurse_level) > $p5:links.recurse_level.limit">
|
|
|
+ <xsl:message>#692-R stopped digging for new p5:fid=<xsl:value-of select="$p5:fid"/> $p5:links.recurse_level.limit at <xsl:value-of select="$p5:links.recurse_level"/>; p5:links.next.recurse_level=<xsl:value-of select="$p5:links.next.recurse_level"/>; debug.last_wfs_request=<xsl:value-of select="$debug.last_wfs_request"/>;</xsl:message>
|
|
|
+ <xsl:comment>#692-R stopped digging for new p5:fid=<xsl:value-of select="$p5:fid"/> $p5:links.recurse_level.limit at <xsl:value-of select="$p5:links.recurse_level"/>; p5:links.next.recurse_level=<xsl:value-of select="$p5:links.next.recurse_level"/>; debug.last_wfs_request=<xsl:value-of select="$debug.last_wfs_request"/>;</xsl:comment>
|
|
|
+ </xsl:when>
|
|
|
+ <xsl:when test="number($p5:links.next.recurse_level) > $p5:links.next.recurse_level.limit">
|
|
|
+ <xsl:message>#692-L stopped digging for new p5:fid=<xsl:value-of select="$p5:fid"/> $p5:links.recurse_level.limit at <xsl:value-of select="$p5:links.recurse_level"/>; p5:links.next.recurse_level=<xsl:value-of select="$p5:links.next.recurse_level"/>; debug.last_wfs_request=<xsl:value-of select="$debug.last_wfs_request"/>;</xsl:message>
|
|
|
+ <xsl:comment>#692-L stopped digging for new p5:fid=<xsl:value-of select="$p5:fid"/> $p5:links.recurse_level.limit at <xsl:value-of select="$p5:links.recurse_level"/>; p5:links.next.recurse_level=<xsl:value-of select="$p5:links.next.recurse_level"/>; debug.last_wfs_request=<xsl:value-of select="$debug.last_wfs_request"/>;</xsl:comment>
|
|
|
+ </xsl:when>
|
|
|
+ <xsl:otherwise>
|
|
|
+
|
|
|
+ <xsl:comment>debug.current lower; debug.last_wfs_request=<xsl:value-of select="$debug.last_wfs_request"/>;</xsl:comment>
|
|
|
<xsl:apply-templates mode="#current">
|
|
|
- <xsl:with-param name="p5:links.recurse_level" select="$p5:links.recurse_level + 1"/>
|
|
|
+ <xsl:with-param name="p5:links.recurse_level" select="number($p5:links.recurse_level) + 1"/>
|
|
|
+ <xsl:with-param name="p5:links.next.recurse_level" select="$p5:links.next.recurse_level"/>
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.nodes" select="$get_wfs_recurse_xsl:context.nodes"/>
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.PRIMARYKEY" select="get_wfs_recurse_xsl:context.PRIMARYKEY.merge($get_wfs_recurse_xsl:context.PRIMARYKEY,$p5:fid)"/>
|
|
|
+ <xsl:with-param name="debug.last_wfs_request" select="$debug.last_wfs_request"/>
|
|
|
</xsl:apply-templates>
|
|
|
- <!--</debug_current>-->
|
|
|
- <!--<debug_reffered>-->
|
|
|
- <xsl:comment>debug.reffered</xsl:comment>
|
|
|
+ <xsl:comment>debug.current upper / debug.reffered lower; debug.last_wfs_request=<xsl:value-of select="$debug.last_wfs_request"/>;</xsl:comment>
|
|
|
+
|
|
|
<xsl:choose>
|
|
|
- <xsl:when test="$get_wfs_recurse_xsl:wfs_response//gml:featureMember/*">
|
|
|
- <xsl:apply-templates mode="#current" select="$get_wfs_recurse_xsl:wfs_response">
|
|
|
- <xsl:with-param name="p5:links.recurse_level" select="$p5:links.recurse_level + 1"/>
|
|
|
- </xsl:apply-templates>
|
|
|
+ <xsl:when test="$get_wfs_recurse_xsl:context.PRIMARYKEY//*[@fid = $p5:fid]">
|
|
|
+ <xsl:message>#797 detected FUTURE LOOP for fid=<xsl:value-of select="$p5:fid"/> in match="wfs:FeatureCollection[@next </xsl:message>
|
|
|
</xsl:when>
|
|
|
<xsl:otherwise>
|
|
|
- <xsl:message>#498 not any childs</xsl:message>
|
|
|
+ <xsl:variable name="get_wfs_recurse_xsl:wfs_response" select="doc($request_string)"/>
|
|
|
+ <xsl:choose>
|
|
|
+ <xsl:when test="$get_wfs_recurse_xsl:wfs_response//gml:featureMember/*">
|
|
|
+ <xsl:apply-templates mode="#current" select="$get_wfs_recurse_xsl:wfs_response">
|
|
|
+ <xsl:with-param name="p5:links.recurse_level" select="number($p5:links.recurse_level)"/> <!-- + 1 -->
|
|
|
+ <xsl:with-param name="p5:links.next.recurse_level" select="number($p5:links.next.recurse_level) + 1"/>
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.nodes" select="get_wfs_recurse_xsl:context.nodes.merge($get_wfs_recurse_xsl:context.nodes,$get_wfs_recurse_xsl:wfs_response)"/>
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.PRIMARYKEY" select="get_wfs_recurse_xsl:context.PRIMARYKEY.merge($get_wfs_recurse_xsl:context.PRIMARYKEY,$p5:fid)"/>
|
|
|
+ <xsl:with-param name="debug.last_wfs_request" select="$debug.last_wfs_request"/>
|
|
|
+ </xsl:apply-templates>
|
|
|
+ </xsl:when>
|
|
|
+ <xsl:otherwise>
|
|
|
+
|
|
|
+ <xsl:message>#498 not any childs</xsl:message>
|
|
|
+ </xsl:otherwise>
|
|
|
+ </xsl:choose>
|
|
|
</xsl:otherwise>
|
|
|
</xsl:choose>
|
|
|
|
|
|
- <!--</debug_reffered>-->
|
|
|
- <!--</debug.470>-->
|
|
|
+
|
|
|
+ <!--</debug_reffered>-->
|
|
|
+ <!--</debug.470>-->
|
|
|
+ </xsl:otherwise>
|
|
|
+ </xsl:choose>
|
|
|
|
|
|
</xsl:template>
|
|
|
|
|
|
<xsl:template match="wfs:FeatureCollection" mode="p5:links.evaluate" >
|
|
|
<xsl:param name="p5:links.recurse_level" select="1"/>
|
|
|
- <xsl:message>#538 match wfs:FeatureCollection $p5:links.recurse_level=<xsl:value-of select="$p5:links.recurse_level"/>;</xsl:message>
|
|
|
+ <xsl:param name="p5:links.next.recurse_level" select="1"/>
|
|
|
+ <xsl:param name="get_wfs_recurse_xsl:context.nodes" required="yes"/>
|
|
|
+ <xsl:param name="get_wfs_recurse_xsl:context.PRIMARYKEY" required="yes"/>
|
|
|
+ <xsl:param name="debug.last_wfs_request" required="yes"/>
|
|
|
+ <xsl:message>#538 match wfs:FeatureCollection $p5:links.recurse_level=<xsl:value-of select="$p5:links.recurse_level"/>; p5:links.next.recurse_level=<xsl:value-of select="$p5:links.next.recurse_level"/>;</xsl:message>
|
|
|
<xsl:apply-templates mode="#current">
|
|
|
- <xsl:with-param name="p5:links.recurse_level" select="($p5:links.recurse_level + 1)"/>
|
|
|
+ <xsl:with-param name="p5:links.recurse_level" select="(number($p5:links.recurse_level) + 1)"/>
|
|
|
+ <xsl:with-param name="p5:links.next.recurse_level" select="$p5:links.next.recurse_level"/>
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.nodes" select="$get_wfs_recurse_xsl:context.nodes"/>
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.PRIMARYKEY" select="$get_wfs_recurse_xsl:context.PRIMARYKEY"/>
|
|
|
+ <xsl:with-param name="debug.last_wfs_request" select="$debug.last_wfs_request"/>
|
|
|
</xsl:apply-templates>
|
|
|
</xsl:template>
|
|
|
|
|
|
<xsl:template match="gml:featureMember" mode="p5:links.evaluate">
|
|
|
<xsl:param name="p5:links.recurse_level" select="1"/>
|
|
|
+ <xsl:param name="p5:links.next.recurse_level" select="1"/>
|
|
|
+ <xsl:param name="get_wfs_recurse_xsl:context.nodes" required="yes"/>
|
|
|
+ <xsl:param name="get_wfs_recurse_xsl:context.PRIMARYKEY" required="yes"/>
|
|
|
+ <xsl:param name="debug.last_wfs_request" required="yes"/>
|
|
|
<xsl:apply-templates mode="#current">
|
|
|
<xsl:with-param name="p5:links.recurse_level" select="$p5:links.recurse_level"/>
|
|
|
+ <xsl:with-param name="p5:links.next.recurse_level" select="$p5:links.next.recurse_level"/>
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.nodes" select="$get_wfs_recurse_xsl:context.nodes"/>
|
|
|
+ <xsl:with-param name="get_wfs_recurse_xsl:context.PRIMARYKEY" select="$get_wfs_recurse_xsl:context.PRIMARYKEY"/>
|
|
|
+ <xsl:with-param name="debug.last_wfs_request" select="$debug.last_wfs_request"/>
|
|
|
</xsl:apply-templates>
|
|
|
</xsl:template>
|
|
|
|
|
|
@@ -977,7 +1274,8 @@
|
|
|
</xsl:choose>
|
|
|
</xsl:variable>
|
|
|
<!--<xsl:variable name="curr_xpath_tmpl" select="'asdf'"/>-->
|
|
|
- <xsl:element name="{name()}" >
|
|
|
+ <!--<xsl:element name="{name()}" >-->
|
|
|
+ <xsl:copy>
|
|
|
<xsl:attribute name="xpath" select="$curr_xpath_tmpl"/>
|
|
|
<xsl:for-each select="@*">
|
|
|
<xsl:choose>
|
|
|
@@ -989,7 +1287,8 @@
|
|
|
<xsl:apply-templates mode="after_first_ant_assing_xpath">
|
|
|
<xsl:with-param name="curr_xpath" select="$curr_xpath_tmpl"/>
|
|
|
</xsl:apply-templates>
|
|
|
- </xsl:element>
|
|
|
+ </xsl:copy>
|
|
|
+ <!--</xsl:element>-->
|
|
|
</xsl:otherwise>
|
|
|
</xsl:choose>
|
|
|
</xsl:template>
|
|
|
@@ -1225,5 +1524,48 @@
|
|
|
</xsl:template>
|
|
|
|
|
|
|
|
|
+ <xsl:template match="*" mode="anonimize_for_devel">
|
|
|
+ <xsl:copy>
|
|
|
+ <xsl:copy-of select="@*"/>
|
|
|
+ <xsl:apply-templates mode="#current"/>
|
|
|
+ </xsl:copy>
|
|
|
+ </xsl:template>
|
|
|
+
|
|
|
+ <xsl:template match="RelatedFeatureRoot" mode="anonimize_for_devel">
|
|
|
+ <wfs:FeatureCollection>
|
|
|
+ <xsl:apply-templates mode="#current"/>
|
|
|
+ </wfs:FeatureCollection>
|
|
|
+ </xsl:template>
|
|
|
+
|
|
|
+ <xsl:template match="*" mode="anonimize_for_devel">
|
|
|
+ <gml:featureMember>
|
|
|
+ <xsl:apply-templates mode="anonimize_for_devel.child"/>
|
|
|
+ </gml:featureMember>
|
|
|
+ </xsl:template>
|
|
|
+
|
|
|
+
|
|
|
+ <xsl:template match="get_wfs_recurse_xsl:context.PRIMARYKEY|get_wfs_recurse_xsl:context.nodes" mode="anonimize_for_devel.child"/>
|
|
|
+ <xsl:template match="text()" mode="anonimize_for_devel.child"/>
|
|
|
+
|
|
|
+ <xsl:template match="comment()" mode="anonimize_for_devel.child">
|
|
|
+ <xsl:copy-of select="."/>
|
|
|
+ </xsl:template>
|
|
|
+
|
|
|
+ <xsl:template match="*" mode="anonimize_for_devel.child">
|
|
|
+ <xsl:copy copy-namespaces="no">
|
|
|
+ <xsl:copy-of select="@*"/>
|
|
|
+ <xsl:copy-of select="text()"/>
|
|
|
+ <xsl:apply-templates mode="#current"/>
|
|
|
+ </xsl:copy>
|
|
|
+ </xsl:template>
|
|
|
+
|
|
|
+ <xsl:template match="*[ local-name()='krs' or local-name()='pesel' or local-name()='nazwa' or local-name()='nazwisko' or local-name()='NIP' or local-name()='REGON' or local-name()='KRS' or local-name()='Pelna_nazwa_kontrahenta' or
|
|
|
+ local-name()='Ulica' or local-name()='Miejscowosc' or local-name()='Kod_pocztowy' or local-name()='TERYT_SYM_UL' or local-name()='TERYT_SYM' or local-name()='Numer_budynku']" mode="anonimize_for_devel.child">
|
|
|
+ <xsl:copy copy-namespaces="no">
|
|
|
+ <xsl:copy-of select="@*"/>
|
|
|
+ <xsl:value-of select="concat(substring(text(),1,2),'*****',string-length(text()))"/>
|
|
|
+ </xsl:copy>
|
|
|
+ </xsl:template>
|
|
|
+
|
|
|
|
|
|
</xsl:stylesheet>
|