|
|
@@ -1,6 +1,10 @@
|
|
|
<?xml version="1.0" encoding="UTF-8"?>
|
|
|
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
|
|
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
|
|
+ xmlns:gml="http://www.opengis.net/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
|
+ xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
|
+ xmlns:p5_default_db="https://biuro.biall-net.pl/wfs/default_db"
|
|
|
+ xmlns:wfs="http://www.opengis.net/wfs"
|
|
|
exclude-result-prefixes="xs"
|
|
|
version="2.0">
|
|
|
<xsl:output indent="yes" />
|
|
|
@@ -12,22 +16,173 @@
|
|
|
<property name="DwebRootUrl" value="${$webRootUrl}"/> - this is the place where script is localized to easyli to target user GUI by href to generated output -->
|
|
|
|
|
|
<!-- variables to be set first by GUI first_request from executing API (php -> bash)-->
|
|
|
- <xsl:param name="uuid" />
|
|
|
- <xsl:param name="passwordBase64Basic" />
|
|
|
+ <xsl:param name="uuid" required="yes" /> <!-- pewnie bedziemy ignorowac i dzialac na bazie ${'wfs_output'} ktory juz jest tempfilem -->
|
|
|
+ <xsl:param name="passwordBase64Basic" required="yes" />
|
|
|
<xsl:param name="url" />
|
|
|
- <xsl:param name="DwebRootUrl" />
|
|
|
-
|
|
|
+ <xsl:param name="webRootUrl" />
|
|
|
|
|
|
+ <xsl:param name="out_task.dita"/> <!-- nazwa temp docelowego zrodla do wykonania pliku pdf -->
|
|
|
+ <!--<xsl:param name="current_leaf.dita" required="yes"/>--> <!-- nazwa aktualnego przetowarzenia .dita - najpierw main_build_recurse_ant.dita potem przechodzi w 1.1.root_x2f_IN7_DZIENNIK_KORESP.1.dita.xml -->
|
|
|
+ <!--<xsl:param name="wfs_output" select="concat('temp/wfs_output.',$uuid)"/>-->
|
|
|
+ <!-- jak parametr jest to znaczy, ze przetwarzamy -->
|
|
|
+ <xsl:param name="wfs_output" required="yes"/> <!-- potem wfs_output.xml jak sciagnie nazwa temp sciagniecia z api xml forsowana przez pierwsze sciagniecie -->
|
|
|
+ <xsl:param name="api_url" select="'https://biuro.biall-net.pl/SE/version-git/wfs-data.php'"/>
|
|
|
+ <!--<xsl:param name="namespace_prefix" select="'p5_default_db'"/>-->
|
|
|
+ <xsl:param name="typeName" required="yes" /> <!-- to be set initially ex: p5_default_db:IN7_DZIENNIK_KORESP -->
|
|
|
+ <xsl:param name="xpath" required="yes" /> <!-- to be set initially ex: ID -->
|
|
|
+ <xsl:param name="xpath_value" required="yes" /> <!-- to be set ex: 1000 -->
|
|
|
+ <xsl:param name="loop_xpath" required="yes"/> <!-- sciezka do zapisywania xmli w przetwarzaniu plikow default root -->
|
|
|
|
|
|
<!-- static project variables as default styles.dita/xsl and names-->
|
|
|
<xsl:param name="main_build_recurse_ant.dita" select="'main_build_recurse_ant.dita'"/>
|
|
|
<xsl:param name="build_recurse_ant.xsl" select="'build_recurse_ant.xsl'"/>
|
|
|
|
|
|
+ <!-- second step fist loop - with data -->
|
|
|
+ <!--<xsl:param name="wfs_output.xml"/>--> <!-- to be set in second step by ant build generated by this style to fill by its data childs -->
|
|
|
|
|
|
+ <xsl:template match="*">
|
|
|
+ <xsl:param name="typeName" select="$typeName" />
|
|
|
+ <xsl:param name="xpath" select="$xpath" />
|
|
|
+ <xsl:param name="xpath_value" select="$xpath_value" />
|
|
|
+ <xsl:param name="loop_xpath" select="$loop_xpath"/>
|
|
|
+ <xsl:param name="input_obj_with_xpath" /> <!-- przekazany z template match="RelatedFeature" mode="after_first_ant_assing_vars_childs" -->
|
|
|
+ <xsl:choose>
|
|
|
+ <xsl:when test="name()='RelatedFeature'">
|
|
|
+ <xsl:variable name="RelatedFeatureCount" select="last()"/>
|
|
|
+ <xsl:variable name="RelatedFeaturePos" select="position()"/>
|
|
|
+ <xsl:variable name="featureID_name" select="substring-after($typeName,':')"/>
|
|
|
+ <xsl:variable name="typeName_dita" select="@typeName"/>
|
|
|
+ <xsl:variable name="featureID_name_dita" select="substring-after($typeName_dita,':')"/>
|
|
|
+ <xsl:variable name="wfs_output" select="concat($uuid,'.',$loop_xpath,'_x2f_',$featureID_name)"/>
|
|
|
+ <xsl:variable name="wfs_output.xml" select="concat($wfs_output,'.',position(),'.xml')"/>
|
|
|
+ <xsl:variable name="wfs_output.dita" select="concat($wfs_output,'.',position(),'.dita.xml')"/>
|
|
|
+ <!-- dane z oczekiwanego template .dita -->
|
|
|
+ <xsl:variable name="xpath_dita" select="@xpath"/>
|
|
|
+ <xsl:variable name="xpath_value_dita">
|
|
|
+ <xsl:choose>
|
|
|
+ <xsl:when test="@xpath_value">
|
|
|
+ <!--<xsl:variable name="xpath_value_tokens" select="tokenize(@xpath_value,'/')"/>-->
|
|
|
+ <!--<xsl:value-of select="'todo zapytanie xpath do przetworzenia'"/>-->
|
|
|
+ <!--<xsl:copy-of select="$xpath_value_tokens"></xsl:copy-of>-->
|
|
|
+ <xsl:message>#67 probuje ustali wartosc z @xpath_value=<xsl:value-of select="@xpath_value"/>; $input_obj_with_xpath/node()[@xpath="ID_BILLING_OWNER"] =<xsl:value-of select="$input_obj_with_xpath/node()[@xpath='ID_BILLING_OWNER']"/>; </xsl:message>
|
|
|
+ <xsl:variable name="xpath_value_token">
|
|
|
+ <xsl:for-each select=" tokenize(@xpath_value,'/')">
|
|
|
+ <xsl:message>#70 znalazlem dla=<xsl:value-of select="."/>; <xsl:value-of select="$input_obj_with_xpath/node()[@xpath=current()]"/></xsl:message>
|
|
|
+ <xsl:copy-of select="$input_obj_with_xpath/node()[@xpath='ID_BILLING_OWNER']"></xsl:copy-of><!-- todo to jest bledne ale dziala tymczasowo-->
|
|
|
+ </xsl:for-each>
|
|
|
+ </xsl:variable>
|
|
|
+ <xsl:message>#73 ustalam na <xsl:value-of select="$xpath_value_token/node()[1]/text()"/>;</xsl:message>
|
|
|
+ <xsl:value-of select="$xpath_value_token/node()[1]/text()"/>
|
|
|
+ </xsl:when>
|
|
|
+ <xsl:otherwise>
|
|
|
+ <xsl:value-of select="$xpath_value"/><!-- parametr z template narzuca wartosc -->
|
|
|
+ </xsl:otherwise>
|
|
|
+ </xsl:choose>
|
|
|
+ </xsl:variable>
|
|
|
+ <xsl:message>#71 wstawiam projekt $loop_xpath=<xsl:value-of select="$loop_xpath"/>; </xsl:message>
|
|
|
+ <project basedir="../." name="get_related_feature" default="get_related_feature_run_child_ant">
|
|
|
+ <xsl:comment>RelatedFeatureCount:<xsl:value-of select="count(*)"/></xsl:comment>
|
|
|
+ <!--<xsl:variable name="typeName" select='replace($typeName,""","")'/>--><!-- oczyszczenie z apostrofow -->
|
|
|
+ <xsl:element name="property">
|
|
|
+ <xsl:attribute name="name" select="'uuid'"/>
|
|
|
+ <xsl:attribute name="value" select="$uuid"/>
|
|
|
+ </xsl:element>
|
|
|
+ <xsl:element name="property">
|
|
|
+ <xsl:attribute name="name" select="'passwordBase64Basic'"/>
|
|
|
+ <xsl:attribute name="value" select="$passwordBase64Basic"/>
|
|
|
+ </xsl:element>
|
|
|
+ <xsl:element name="property">
|
|
|
+ <xsl:attribute name="name" select="'url'"/>
|
|
|
+ <xsl:attribute name="value" select="$url"/>
|
|
|
+ </xsl:element>
|
|
|
+ <xsl:element name="property">
|
|
|
+ <xsl:attribute name="name" select="'webRootUrl'"/>
|
|
|
+ <xsl:attribute name="value" select="$webRootUrl"/>
|
|
|
+ </xsl:element>
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ <xsl:apply-templates mode="ant_target" select=".">
|
|
|
+ <xsl:with-param name="typeName_dita" select="$typeName_dita"/>
|
|
|
+ <xsl:with-param name="featureID_name_dita" select="$featureID_name_dita"/>
|
|
|
+ <xsl:with-param name="wfs_output" select="$wfs_output"/>
|
|
|
+ <xsl:with-param name="wfs_output.xml" select="$wfs_output.xml"/>
|
|
|
+ <xsl:with-param name="wfs_output.dita" select="$wfs_output.dita"/>
|
|
|
+ <xsl:with-param name="xpath" select="$xpath"/>
|
|
|
+ <xsl:with-param name="xpath_dita" select="$xpath_dita"/>
|
|
|
+ <xsl:with-param name="featureID_name" select="$featureID_name"/>
|
|
|
+ <xsl:with-param name="xpath_value_dita" select="$xpath_value_dita"/>
|
|
|
+ <xsl:with-param name="RelatedFeatureCount" select="$RelatedFeatureCount"/>
|
|
|
+ <xsl:with-param name="RelatedFeaturePos" select="$RelatedFeaturePos"/>
|
|
|
+ <xsl:with-param name="typeName" select="$typeName"/>
|
|
|
+ <xsl:with-param name="xpath_value" select="$xpath_value"/>
|
|
|
+ <xsl:with-param name="loop_xpath" select="$loop_xpath"/>
|
|
|
+ </xsl:apply-templates>
|
|
|
+ <!-- na koniec przetwarzania kazdego z wezlow, podmieniamy xsl biezacy wezel -->
|
|
|
+
|
|
|
+ <xsl:comment>template match="RelatedFeature" mode="after_first_ant_assing_vars_childs"
|
|
|
+ robi result-document href="build_{$loop_xpath}.{$uuid}.xml
|
|
|
+ wiec powinnismy uruchomic ant ten plik w ciemno znajac jego nizsze wezly</xsl:comment>
|
|
|
+ <xsl:variable name="featureID_name_child" select="substring-after($typeName,':')"/>
|
|
|
+ <xsl:variable name="loop_xpath_child" select="concat($loop_xpath,'_x2f_',$featureID_name)"/>
|
|
|
+
|
|
|
+ <xsl:choose>
|
|
|
+ <xsl:when test=".//RelatedFeature">
|
|
|
+ <xsl:element name="target">
|
|
|
+ <xsl:attribute name="name" select="'get_related_feature_run_child_ant'"/>
|
|
|
+ <xsl:attribute name="depends" select="concat('get_related_feature.',$RelatedFeaturePos)"/>
|
|
|
+ <ant antfile="temp/{$uuid}.build_{$loop_xpath_child}.xml" dir="."/>
|
|
|
+ </xsl:element>
|
|
|
+ </xsl:when>
|
|
|
+ <xsl:otherwise>
|
|
|
+ <xsl:comment>#135 nie ma wiecej //RelatedFeature</xsl:comment>
|
|
|
+ <xsl:element name="target">
|
|
|
+ <xsl:attribute name="name" select="'get_related_feature_run_child_ant'"/>
|
|
|
+ <xsl:attribute name="depends" select="concat('get_related_feature.',$RelatedFeaturePos)"/>
|
|
|
+ </xsl:element>
|
|
|
+ </xsl:otherwise>
|
|
|
+ </xsl:choose>
|
|
|
+
|
|
|
+ <!-- na koniec przetwarzania danego zaglebienia uruchamiamy calosc ponownie do kolejnego zaglebienia -->
|
|
|
+
|
|
|
+ <!-- task do polaczenia zaglebien -->
|
|
|
+
|
|
|
+ <!-- jak nie ma zaglebien to generujemy pdf i dajemy uzytkownikowi linka -->
|
|
|
+
|
|
|
+ </project>
|
|
|
+ </xsl:when>
|
|
|
+ <xsl:otherwise>
|
|
|
+ <xsl:apply-templates mode="child_nodes"/>
|
|
|
+ </xsl:otherwise>
|
|
|
+ </xsl:choose>
|
|
|
+ </xsl:template>
|
|
|
|
|
|
|
|
|
- <xsl:template match="RelatedFeature" >
|
|
|
- <!-- template do przetworzenia dity w celu wykrycia:
|
|
|
+ <xsl:template mode="child_nodes" match="*">
|
|
|
+ <xsl:copy-of select="."/>
|
|
|
+ </xsl:template>
|
|
|
+
|
|
|
+
|
|
|
+ <xsl:template match="RelatedFeature" mode="ant_target" >
|
|
|
+ <xsl:param name="typeName_dita" required="yes"/>
|
|
|
+ <xsl:param name="featureID_name_dita" required="yes"/>
|
|
|
+ <xsl:param name="wfs_output" required="yes"/>
|
|
|
+ <xsl:param name="wfs_output.xml" required="yes"/>
|
|
|
+ <xsl:param name="wfs_output.dita" required="yes"/>
|
|
|
+ <xsl:param name="xpath_dita" required="yes"/>
|
|
|
+ <xsl:param name="xpath_value_dita" required="yes"/>
|
|
|
+ <xsl:param name="xpath" required="yes"/>
|
|
|
+ <xsl:param name="featureID_name" required="yes"/>
|
|
|
+ <xsl:param name="RelatedFeatureCount" required="yes"/>
|
|
|
+ <xsl:param name="RelatedFeaturePos" required="yes"/>
|
|
|
+ <xsl:param name="typeName" required="yes"/>
|
|
|
+ <xsl:param name="xpath_value" required="yes"/>
|
|
|
+ <xsl:param name="loop_xpath" required="yes"/>
|
|
|
+ <xsl:choose>
|
|
|
+ <xsl:when test="$wfs_output"/>
|
|
|
+ <xsl:otherwise><xsl:message terminate="yes">Not required param wfs_output - nazwa temp sciagniecia z api xml forsowana przez pierwsze sciagniecie - to set by next parraler step in ant build </xsl:message></xsl:otherwise>
|
|
|
+ </xsl:choose>
|
|
|
+ <!-- template do przetworzenia dity w celu wykrycia:
|
|
|
<RelatedFeature xpath="ID_BILLING_OWNER" typeName="p5_default_db:BILLING_OWNER">
|
|
|
<ph>Nadawca:</ph><br/>
|
|
|
<ph xpath="name1"/><br/>
|
|
|
@@ -43,32 +198,240 @@
|
|
|
Template powinien budować projekt ant do wyzwolenia z odpowiednimi parametrami dalszymi
|
|
|
|
|
|
-->
|
|
|
- <project basedir="." name="PRINT_TEMPLATE" default="buildpdf">
|
|
|
- <property name="uuid" value="${'uuid'}"/>
|
|
|
- <property name="passwordBase64Basic" value="'${passwordBase64Basic}'"/>
|
|
|
- <property name="url" value="${url}"/>
|
|
|
- <property name="DwebRootUrl" value="'${webRootUrl}'"/>
|
|
|
-
|
|
|
- <tempfile property="out_task.dita" deleteonexit="no" destdir="temp"/>
|
|
|
- <tempfile property="wfs_output" deleteonexit="no" destdir="temp" />
|
|
|
-
|
|
|
- <target name="get_related_feature">
|
|
|
- <exec executable="curl" output="${'wfs_output'}'" errorproperty="wfs_error" resultproperty="wfs_result">
|
|
|
- <arg line="'-H 'Authorization: Basic ${passwordBase64Basic}' ${url}'"/>
|
|
|
- </exec>
|
|
|
- <echo message="'curl -H 'Authorization: Basic ${passwordBase64Basic}' '${url}''"/>
|
|
|
-
|
|
|
- <echo message="ERROR__START"/>
|
|
|
- <echo message="${wfs_error}"/>
|
|
|
-
|
|
|
- <echo> gues path of pdf is </echo>
|
|
|
- <exec executable="bash" dir="." outputproperty="url_of_current_script">
|
|
|
- <arg value="-c"/>
|
|
|
- <arg value="'echo "${url}" |sed 's/[a-zA-Z0-9]*.php.*//''"/>
|
|
|
- </exec>
|
|
|
- <echo message="ERROR__END"/>
|
|
|
- </target>
|
|
|
- </project>
|
|
|
+ <!-- sprawdzamy czy template pasuje do zadania wyzwolenia czy xpath=xpath_dita oraz czy typeName=typeName_dita-->
|
|
|
+ <xsl:choose>
|
|
|
+ <xsl:when test="string($xpath_dita)= string($xpath) and string($featureID_name)=string($featureID_name_dita)">
|
|
|
+ <!-- calculate query to api default_db/?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=p5_default_db:IN7_DZIENNIK_KORESP&SRSNAME=EPSG:3003&featureID=IN7_DZIENNIK_KORESP.1000'-->
|
|
|
+ <xsl:variable name="url">
|
|
|
+ <xsl:value-of select="$api_url"/>/default_db/?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=<xsl:value-of select="$typeName_dita"/>&SRSNAME=EPSG:3003&featureID=<xsl:value-of select="$featureID_name_dita"/>.<xsl:value-of select="$xpath_value_dita"/>
|
|
|
+ </xsl:variable>
|
|
|
+
|
|
|
+ <xsl:element name="target">
|
|
|
+ <xsl:attribute name="name" select="concat('get_related_feature.',position())"/>
|
|
|
+ <xsl:choose>
|
|
|
+ <xsl:when test="$RelatedFeatureCount=$RelatedFeaturePos"/>
|
|
|
+ <xsl:otherwise>
|
|
|
+ <xsl:attribute name="depends" select="concat('get_related_feature.',position()-1)"/>
|
|
|
+ </xsl:otherwise>
|
|
|
+ </xsl:choose>
|
|
|
+
|
|
|
+ <tempfile property="out_task.dita" deleteonexit="no" destdir="temp"/>
|
|
|
+ <tempfile property="wfs_output" deleteonexit="no" destdir="temp" suffix=".xml" />
|
|
|
+ <xsl:element name="exec">
|
|
|
+ <xsl:attribute name="executable" select="'curl'"/>
|
|
|
+ <xsl:attribute name="output" select="concat('temp/',$wfs_output.xml)"/>
|
|
|
+ <xsl:attribute name="errorproperty" select="'wfs_error'"/>
|
|
|
+ <xsl:attribute name="resultproperty" select="'wfs_result'"/>
|
|
|
+ <xsl:element name="arg">
|
|
|
+ <!--<xsl:attribute name="line" select='concat("-H ","&Authorization: Basic ",$passwordBase64Basic," ",$url)'/>-->
|
|
|
+ <xsl:attribute name="line">-H 'Authorization: Basic <xsl:value-of select="$passwordBase64Basic"/>' "<xsl:value-of select="$url"/>"</xsl:attribute>
|
|
|
+ </xsl:element>
|
|
|
+ </xsl:element>
|
|
|
+ <echo message="ERROR__START"/>
|
|
|
+ <xsl:element name="echo">
|
|
|
+ <xsl:attribute name="message">${wfs_error}</xsl:attribute>
|
|
|
+ </xsl:element>
|
|
|
+ <echo message="ERROR__END"/>
|
|
|
+ <xsl:choose>
|
|
|
+ <xsl:when test="position()=last()">
|
|
|
+ <xsl:comment>antcall target="build_recurse_ant.<xsl:value-of select="position()+1"/>.xml"</xsl:comment>
|
|
|
+ </xsl:when>
|
|
|
+ <xsl:otherwise>
|
|
|
+ <antcall target="build_recurse_ant.{position()+1}.xml"/>
|
|
|
+ </xsl:otherwise>
|
|
|
+ </xsl:choose>
|
|
|
+ <echo> related .dita.xml template is: $wfs_output.dita=<xsl:value-of select="$wfs_output.dita"/>; do przetwarzania na podstawie: $wfs_output.xml=<xsl:value-of select="$wfs_output.xml"/>;</echo>
|
|
|
+ <xsl:comment> teraz podmieniamy dane z otrzymanego xmla do pliku dita aby potem zrobic polaczony plik w kolejnym wyzwoleniu ant</xsl:comment>
|
|
|
+ <delete file="temp/{$wfs_output.dita}.vals.dita"/>
|
|
|
+ <xslt basedir="./" style="{$build_recurse_ant.xsl}" in="temp/{$wfs_output.dita}" destdir="./" out="temp/{$wfs_output.dita}.vals.dita" >
|
|
|
+ <factory name="net.sf.saxon.TransformerFactoryImpl">
|
|
|
+ <attribute name="http://saxon.sf.net/feature/xinclude-aware" value="true"/>
|
|
|
+ <attribute name="http://saxon.sf.net/feature/initialMode" value="after_first_ant_assing_vars"/>
|
|
|
+ </factory>
|
|
|
+ <classpath location="/opt/local/share/java/saxon9he.jar"/>
|
|
|
+ <param name="wfs_output" expression="temp/{$wfs_output.xml}"/>
|
|
|
+ <param name="xpath" expression="{$xpath}" /> <!-- kontrolnie - nie potrzebne -->
|
|
|
+ <param name="xpath_value" expression="{$xpath_value}" /> <!-- kontrolnie - nie potrzebne -->
|
|
|
+ <param name="loop_xpath" expression="{$loop_xpath}"/>
|
|
|
+ <param name="typeName" expression="{$typeName}"/><!-- kontrolnie - nie potrzebne -->
|
|
|
+ <param name="uuid" expression="{$uuid}"/>
|
|
|
+ <param name="passwordBase64Basic" expression="{$passwordBase64Basic}"/>
|
|
|
+ </xslt>
|
|
|
+
|
|
|
+ </xsl:element>
|
|
|
+ <!-- zapisujemy wynik naszego biezacego przetwarzania dita element nizej do kolejnego przejechania z ant wyniku dla podstawienia danych -->
|
|
|
+ <!-- blad - result jest po tym template -->
|
|
|
+ <xsl:result-document href="{$wfs_output.dita}"><xsl:copy-of select="."/></xsl:result-document>
|
|
|
+ </xsl:when>
|
|
|
+ <xsl:otherwise>
|
|
|
+ <error>
|
|
|
+ <xsl:attribute name="xpath" select="$xpath"/>
|
|
|
+ <xsl:attribute name="xpath_dita" select="$xpath_dita"/>
|
|
|
+ <xsl:attribute name="xpath_value" select="$xpath_value"/>
|
|
|
+ <xsl:attribute name="xpath_value_dita" select="$xpath_value_dita"/>
|
|
|
+ <xsl:attribute name="typeName" select="$typeName"/>
|
|
|
+ <xsl:attribute name="typeName_dita" select="$typeName_dita"/>
|
|
|
+ <xsl:attribute name="featureID_name" select="$featureID_name"/>
|
|
|
+ <xsl:attribute name="featureID_name_dita" select="$featureID_name_dita"/>
|
|
|
+ Current template doesnt fit the requested data - TODO search for another template!
|
|
|
+ </error>
|
|
|
+ </xsl:otherwise>
|
|
|
+ </xsl:choose>
|
|
|
</xsl:template>
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+ <!-- second step from local ant leaf -->
|
|
|
+
|
|
|
+
|
|
|
+ <xsl:template match="RelatedFeature" mode="after_first_ant_assing_vars">
|
|
|
+ <RelatedFeatureRoot>
|
|
|
+ <xsl:message>#228 templ match RelatedFeature mode after_first_ant_assing_vars dla @typeName=<xsl:value-of select="@typeName"/>;</xsl:message>
|
|
|
+ <!-- first assign xpath to features from -->
|
|
|
+ <xsl:variable name="wfs_output_nodes" select="doc($wfs_output)"/>
|
|
|
+ <!--<input_obj_with_xpath_debug>
|
|
|
+ <xsl:copy-of select="$wfs_output_nodes"/>
|
|
|
+ </input_obj_with_xpath_debug>-->
|
|
|
+ <xsl:variable name="input_obj_with_xpath">
|
|
|
+ <xsl:apply-templates mode="after_first_ant_assing_xpath" select="$wfs_output_nodes"/>
|
|
|
+ </xsl:variable>
|
|
|
+ <!--<input_obj_with_xpath_debug>
|
|
|
+ <xsl:attribute name="xpath" select="$xpath"/>
|
|
|
+ <!-\-<xsl:attribute name="xpath_dita" select="$xpath_dita"/>-\->
|
|
|
+ <xsl:attribute name="xpath_value" select="$xpath_value"/>
|
|
|
+ <!-\-<xsl:attribute name="xpath_value_dita" select="$xpath_value_dita"/>-\->
|
|
|
+ <xsl:attribute name="typeName" select="$typeName"/>
|
|
|
+ <!-\-<xsl:attribute name="typeName_dita" select="$typeName_dita"/>-\->
|
|
|
+ <!-\-<xsl:attribute name="featureID_name" select="$featureID_name"/>-\->
|
|
|
+ <!-\-<xsl:attribute name="featureID_name_dita" select="$featureID_name_dita"/>-\->
|
|
|
+ <xsl:copy-of select="$input_obj_with_xpath"/>
|
|
|
+ </input_obj_with_xpath_debug>-->
|
|
|
+ <!--<input_node_debug>
|
|
|
+ <xsl:copy-of select="."/>
|
|
|
+ </input_node_debug>-->
|
|
|
+ <xsl:apply-templates mode="after_first_ant_assing_vars_childs">
|
|
|
+ <xsl:with-param name="input_obj_with_xpath" select="$input_obj_with_xpath"/>
|
|
|
+ </xsl:apply-templates>
|
|
|
+ </RelatedFeatureRoot>
|
|
|
+ </xsl:template>
|
|
|
+
|
|
|
+ <xsl:template match="wfs:FeatureCollection|gml:featureMember" mode="after_first_ant_assing_xpath">
|
|
|
+ <xsl:apply-templates mode="after_first_ant_assing_xpath"/>
|
|
|
+ </xsl:template>
|
|
|
+
|
|
|
+
|
|
|
+ <xsl:template mode="after_first_ant_assing_xpath" match="*">
|
|
|
+ <xsl:param name="curr_xpath"/>
|
|
|
+ <xsl:choose>
|
|
|
+ <xsl:when test="name()=$typeName">
|
|
|
+ <xsl:apply-templates mode="after_first_ant_assing_xpath">
|
|
|
+ <xsl:with-param name="curr_xpath" select="$curr_xpath"/>
|
|
|
+ </xsl:apply-templates>
|
|
|
+ </xsl:when>
|
|
|
+ <xsl:otherwise>
|
|
|
+ <xsl:variable name="curr_xpath_tmpl">
|
|
|
+ <xsl:choose>
|
|
|
+ <xsl:when test="$curr_xpath=''">
|
|
|
+ <xsl:value-of select="local-name()"/>
|
|
|
+ </xsl:when>
|
|
|
+ <xsl:otherwise>
|
|
|
+ <xsl:value-of select="concat($curr_xpath,'/',local-name())"/>
|
|
|
+ </xsl:otherwise>
|
|
|
+ </xsl:choose>
|
|
|
+ </xsl:variable>
|
|
|
+ <!--<xsl:variable name="curr_xpath_tmpl" select="'asdf'"/>-->
|
|
|
+ <xsl:element name="{name()}">
|
|
|
+ <xsl:attribute name="xpath" select="$curr_xpath_tmpl"/>
|
|
|
+ <xsl:for-each select="@*">
|
|
|
+ <xsl:attribute name="{name()}"><xsl:value-of select="."/></xsl:attribute>
|
|
|
+ </xsl:for-each>
|
|
|
+ <xsl:value-of select="text()"/>
|
|
|
+ <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:otherwise>
|
|
|
+ </xsl:choose>
|
|
|
+ </xsl:template>
|
|
|
+
|
|
|
+ <xsl:template match="text()" mode="after_first_ant_assing_xpath"/>
|
|
|
+
|
|
|
+ <xsl:template match="RelatedFeature" mode="after_first_ant_assing_vars_childs">
|
|
|
+ <xsl:param name="input_obj_with_xpath" required="yes"/>
|
|
|
+ <!-- jest okazja do zrobienia bilda aby sciagnal rzeczy nizej -->
|
|
|
+ <xsl:variable name="featureID_name" select="substring-after($typeName,':')"/>
|
|
|
+ <xsl:variable name="loop_xpath" select="concat($loop_xpath,'_x2f_',$featureID_name)"/>
|
|
|
+ <!--<debug_358_RelatedFeature>
|
|
|
+ <xsl:copy-of select="$input_obj_with_xpath"/>
|
|
|
+ </debug_358_RelatedFeature>-->
|
|
|
+ <xsl:result-document href="{$uuid}.build_{$loop_xpath}.xml">
|
|
|
+ <xsl:apply-templates select=".">
|
|
|
+ <xsl:with-param name="typeName" select="@typeName"/>
|
|
|
+ <xsl:with-param name="xpath" select="@xpath"/>
|
|
|
+ <xsl:with-param name="xpath_value" select="@xpath_value"/>
|
|
|
+ <xsl:with-param name="loop_xpath" select="$loop_xpath"/>
|
|
|
+ <xsl:with-param name="input_obj_with_xpath" select="$input_obj_with_xpath"/>
|
|
|
+ </xsl:apply-templates>
|
|
|
+ </xsl:result-document>
|
|
|
+ <xsl:element name="RelatedFeature">
|
|
|
+ <xsl:copy-of select="@*"/>
|
|
|
+ <xsl:attribute name="featureID_name" select="$featureID_name"/>
|
|
|
+ <xsl:attribute name="loop_xpath" select="$loop_xpath"/>
|
|
|
+ </xsl:element>
|
|
|
+
|
|
|
+ </xsl:template>
|
|
|
+
|
|
|
+ <xsl:template match="*" mode="after_first_ant_assing_vars_childs">
|
|
|
+ <xsl:param name="input_obj_with_xpath" required="yes"/>
|
|
|
+ <xsl:for-each select=".">
|
|
|
+ <xsl:choose>
|
|
|
+ <!--<xsl:when test="node()='topic'">asdad</xsl:when>-->
|
|
|
+ <!--<xsl:when test="name()='RelatedFeature'">
|
|
|
+ <xsl:for-each select="data/apiname[@base='PROCES_INCLUDE']">
|
|
|
+ <xsl:apply-templates mode="PROCES_INCLUDE">
|
|
|
+ <xsl:with-param name="ID_PROCES" select="text()"/>
|
|
|
+ </xsl:apply-templates>
|
|
|
+ </xsl:for-each>
|
|
|
+ </xsl:when>-->
|
|
|
+ <!--<xsl:when test="name()='data-about'">
|
|
|
+ <xsl:for-each select="data/apiname[@base='PROCES_INCLUDE']">
|
|
|
+ <xsl:apply-templates mode="PROCES_INCLUDE">
|
|
|
+ <xsl:with-param name="ID_PROCES" select="text()"/>
|
|
|
+ </xsl:apply-templates>
|
|
|
+ </xsl:for-each>
|
|
|
+ </xsl:when>-->
|
|
|
+ <xsl:when test="1=2"/>
|
|
|
+ <xsl:otherwise>
|
|
|
+ <xsl:element name="{name()}">
|
|
|
+ <!--<xsl:copy-of select="namespace::node()"/>-->
|
|
|
+ <xsl:for-each select="@*">
|
|
|
+ <xsl:choose>
|
|
|
+ <xsl:when test="name()='xpath'">
|
|
|
+ <!--<xsl:attribute name="xpath_parsed" select="."/>-->
|
|
|
+ <!--1:<xsl:value-of select="$parent_obj//node()[@system_cache__appinfo:xpath=$xpath]/text()"/>-->
|
|
|
+ <!--<xsl:value-of select="$parent_obj//node()[local-name()=$xpath]/text()"/>-->
|
|
|
+ <!--V:<xsl:value-of select="$xpath"/>-->
|
|
|
+ </xsl:when>
|
|
|
+ <xsl:otherwise><xsl:copy-of select="."/></xsl:otherwise>
|
|
|
+ </xsl:choose>
|
|
|
+ </xsl:for-each>
|
|
|
+ <xsl:choose>
|
|
|
+ <xsl:when test="@xpath">
|
|
|
+ <xsl:copy-of select="$input_obj_with_xpath/node()[local-name()=current()/@xpath]/text()"/>
|
|
|
+ </xsl:when>
|
|
|
+ </xsl:choose>
|
|
|
+ <xsl:value-of select="text()"/>
|
|
|
+ <xsl:apply-templates mode="after_first_ant_assing_vars_childs">
|
|
|
+ <xsl:with-param name="input_obj_with_xpath" select="$input_obj_with_xpath"/>
|
|
|
+ </xsl:apply-templates>
|
|
|
+ </xsl:element>
|
|
|
+ </xsl:otherwise>
|
|
|
+ </xsl:choose>
|
|
|
+ </xsl:for-each>
|
|
|
+ </xsl:template>
|
|
|
+ <xsl:template match="text()" mode="after_first_ant_assing_vars_childs"/>
|
|
|
+
|
|
|
+ <!-- pozbieranie do kupy wszystkich xmli i zlozenie dity -->
|
|
|
+
|
|
|
+
|
|
|
</xsl:stylesheet>
|