d2a.keyref.element.xsl 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xsl:stylesheet xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning"
  3. xmlns:xs="http://www.w3.org/2001/XMLSchema"
  4. xmlns:p5dkp="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/dita_kosztorys_projektowy/p5dkp.xsd"
  5. xmlns:p5bws="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/WPS_Functions.xsd"
  6. xmlns:system_cache__appinfo="http://biuro.biall-net.pl/xmlschema_procesy5/default_db_xml_cache/appinfo.xsd"
  7. xmlns:d2a="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/dita-to-ant/d2a.xsd"
  8. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  9. xmlns:p5dg="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/documentation_generator/documentation_generator.xsd"
  10. exclude-result-prefixes="xs d2a system_cache__appinfo vc p5dkp p5bws p5dg"
  11. version="2.0">
  12. <xsl:include href="d2a.keyref.element.root.xsl"/>
  13. <xsl:output indent="yes"/>
  14. <xsl:strip-space elements="*"/>
  15. <xsl:param name="d2a:debug" select="'0'"/>
  16. <xsl:function name="d2a:keyref.element.loop">
  17. <xsl:param name="d2a:keyref.element.loop"/>
  18. <xsl:param name="keyref"/>
  19. <xsl:choose>
  20. <xsl:when test="count($d2a:keyref.element.loop//*[@keyref = $keyref]) &gt;1">
  21. <xsl:message>#23 LOOPPP for <xsl:value-of select="$keyref"/></xsl:message>
  22. </xsl:when>
  23. <xsl:otherwise>
  24. <xsl:message>#27 count <xsl:value-of select="count($d2a:keyref.element.loop//*)"/></xsl:message>
  25. <d2a:keyref.element.loop>
  26. <xsl:for-each select="$d2a:keyref.element.loop//keyref">
  27. <xsl:copy-of select="."/>
  28. </xsl:for-each>
  29. <keyref keyref="{$keyref}"/>
  30. </d2a:keyref.element.loop>
  31. </xsl:otherwise>
  32. </xsl:choose>
  33. </xsl:function>
  34. <xsl:function name="d2a:keyref.element"> <!-- to detect main basedir -->
  35. <xsl:param name="p5dkp:ditafiles.xml"/>
  36. <xsl:param name="keyref"/>
  37. <xsl:variable name="d2a:keyref.element.loop">
  38. <d2a:keyref.element.loop/>
  39. </xsl:variable>
  40. <xsl:copy-of select="d2a:keyref.element($p5dkp:ditafiles.xml,$keyref,$d2a:keyref.element.loop)"></xsl:copy-of>
  41. </xsl:function>
  42. <xsl:function name="d2a:keyref.element"> <!-- to detect main basedir -->
  43. <xsl:param name="p5dkp:ditafiles.xml"/>
  44. <xsl:param name="keyref"/>
  45. <xsl:param name="d2a:keyref.element.loop"/>
  46. <xsl:message>#51 analyzing for @keyref = <xsl:value-of select="$keyref"/></xsl:message>
  47. <xsl:variable name="d2a:keyref.element.loop" select="d2a:keyref.element.loop($d2a:keyref.element.loop,$keyref)"/>
  48. <xsl:choose>
  49. <xsl:when test="d2a:keyref.element.loop($d2a:keyref.element.loop,$keyref)">
  50. <xsl:for-each select="$p5dkp:ditafiles.xml/descendant-or-self::*[map.keys.eval[keys[@map.keys.eval=$keyref]]][1]">
  51. <xsl:choose>
  52. <xsl:when test="position()=1">
  53. <xsl:call-template name="d2a:keyref.element">
  54. <xsl:with-param name="p5dkp:ditafiles.xml" select="$p5dkp:ditafiles.xml"/>
  55. <xsl:with-param name="keyref" select="$keyref"/>
  56. <xsl:with-param name="d2a:keyref.element.loop" select="$d2a:keyref.element.loop"/>
  57. </xsl:call-template>
  58. </xsl:when>
  59. <xsl:otherwise>
  60. <xsl:message>#72 unintended another d2a:basedir <xsl:value-of select="@*"/></xsl:message>
  61. </xsl:otherwise>
  62. </xsl:choose>
  63. </xsl:for-each>
  64. </xsl:when>
  65. <xsl:otherwise>
  66. <LOOP_58 keyref="{$keyref}" debug="raczej prostujemy output na docelowy">
  67. </LOOP_58>
  68. </xsl:otherwise>
  69. </xsl:choose>
  70. </xsl:function>
  71. <xsl:template name="d2a:keyref.element">
  72. <xsl:param name="p5dkp:ditafiles.xml" required="yes"/>
  73. <xsl:param name="keyref" required="yes"/>
  74. <xsl:param name="d2a:keyref.element.loop" required="yes"/>
  75. <d2a:keyref.element>
  76. <xsl:choose>
  77. <xsl:when test="p5dkp:ditafiles.file/keyword/text() and ( p5dkp:ditafiles.file/data or p5dkp:ditafiles.file/varname ) ">
  78. <xsl:comment>#87 when test="p5dkp:ditafiles.file/keyword/text() and ( p5dkp:ditafiles.file/data or p5dkp:ditafiles.file/varname ) </xsl:comment>
  79. <xsl:value-of select="p5dkp:ditafiles.file/keyword/text() and ( p5dkp:ditafiles.file/data or p5dkp:ditafiles.file/varname ) "/>
  80. </xsl:when>
  81. <xsl:when test="descendant-or-self::synph ">
  82. <PRIORYTET_WARTOSCI_SYNPH searched.keyref="{$keyref}">
  83. <!-- priorytet skladania wartosci -->
  84. <xsl:if test="number($d2a:debug) &gt; 3"><debug><xsl:copy-of select="."></xsl:copy-of></debug></xsl:if>
  85. <xsl:apply-templates mode="d2a:keyref.element.synph" select=".">
  86. <xsl:with-param name="p5dkp:ditafiles.xml" select="$p5dkp:ditafiles.xml"/>
  87. <xsl:with-param name="d2a:keyref.element.loop" select="$d2a:keyref.element.loop"/>
  88. </xsl:apply-templates>
  89. </PRIORYTET_WARTOSCI_SYNPH>
  90. </xsl:when>
  91. <xsl:when test="descendant-or-self::synblk">
  92. <PRIORYTET_WARTOSCI_SYNBLK searched.keyref="{$keyref}">
  93. <!-- priorytet skladania wartosci -->
  94. <!--<debug><xsl:copy-of select="."></xsl:copy-of></debug>-->
  95. <xsl:apply-templates mode="d2a:keyref.element.synph">
  96. <xsl:with-param name="p5dkp:ditafiles.xml" select="$p5dkp:ditafiles.xml"/>
  97. <xsl:with-param name="d2a:keyref.element.loop" select="$d2a:keyref.element.loop"/>
  98. </xsl:apply-templates>
  99. </PRIORYTET_WARTOSCI_SYNBLK>
  100. </xsl:when>
  101. <!--<xsl:when test=""></xsl:when>-->
  102. <xsl:otherwise>
  103. <OTHERWISE_SSS searched.keyref="{$keyref}">
  104. <xsl:apply-templates mode="d2a:keyref.element.synph">
  105. <xsl:with-param name="p5dkp:ditafiles.xml" select="$p5dkp:ditafiles.xml"/>
  106. <xsl:with-param name="d2a:keyref.element.loop" select="$d2a:keyref.element.loop"/>
  107. </xsl:apply-templates>
  108. </OTHERWISE_SSS>
  109. </xsl:otherwise>
  110. </xsl:choose>
  111. </d2a:keyref.element>
  112. </xsl:template>
  113. <xsl:template mode="d2a:keyref.element.synph" match="map.keys.keyscope|map.keys.eval|map.keys.audience"/>
  114. <xsl:template mode="d2a:keyref.element.synph" match="topicmeta|glossentry|glossterm|keywords">
  115. <xsl:param name="p5dkp:ditafiles.xml" required="yes"/>
  116. <xsl:param name="d2a:keyref.element.loop" required="yes"/>
  117. <xsl:apply-templates mode="d2a:keyref.element.synph">
  118. <xsl:with-param name="p5dkp:ditafiles.xml" select="$p5dkp:ditafiles.xml"/>
  119. <xsl:with-param name="d2a:keyref.element.loop" select="$d2a:keyref.element.loop"/>
  120. </xsl:apply-templates>
  121. </xsl:template>
  122. <xsl:template mode="d2a:keyref.element.synph" match="data">
  123. <xsl:param name="p5dkp:ditafiles.xml" required="yes"/>
  124. <xsl:param name="d2a:keyref.element.loop" required="yes"/>
  125. <xsl:comment>#68 todo weryfikacja wzajemnych zaleznosci elementow w data - varname / synph - skladamy synph</xsl:comment>
  126. <xsl:choose>
  127. <xsl:when test="synph">
  128. <xsl:apply-templates mode="#current" select="synph">
  129. <xsl:with-param name="p5dkp:ditafiles.xml" select="$p5dkp:ditafiles.xml"/>
  130. <xsl:with-param name="d2a:keyref.element.loop" select="$d2a:keyref.element.loop"/>
  131. </xsl:apply-templates>
  132. </xsl:when>
  133. <xsl:otherwise>
  134. <xsl:apply-templates mode="#current">
  135. <xsl:with-param name="p5dkp:ditafiles.xml" select="$p5dkp:ditafiles.xml"/>
  136. <xsl:with-param name="d2a:keyref.element.loop" select="$d2a:keyref.element.loop"/>
  137. </xsl:apply-templates>;
  138. </xsl:otherwise>
  139. </xsl:choose>
  140. </xsl:template>
  141. <xsl:template match="kwd[@keyref]" mode="d2a:keyref.element.synph">
  142. <xsl:param name="p5dkp:ditafiles.xml" required="yes"/>
  143. <xsl:param name="d2a:keyref.element.loop" required="yes"/>
  144. <kwd___keyref keyref="{@keyref}">
  145. <xsl:message>#98 looking recurse for @keyref <xsl:value-of select="@keyref"/></xsl:message>
  146. <child_search>
  147. <xsl:copy-of select="d2a:keyref.element($p5dkp:ditafiles.xml/ancestor-or-self::*,@keyref,$d2a:keyref.element.loop)" copy-namespaces="no"/>
  148. </child_search>
  149. </kwd___keyref>
  150. </xsl:template>
  151. <xsl:template match="var[text()]" mode="d2a:keyref.element.synph">
  152. <xsl:copy-of select="text()"/>
  153. </xsl:template>
  154. <xsl:template mode="d2a:keyref.element.synph" match="*">
  155. <xsl:param name="p5dkp:ditafiles.xml" required="yes"/>
  156. <xsl:param name="d2a:keyref.element.loop" required="yes"/>
  157. <xsl:copy copy-namespaces="no">
  158. <xsl:apply-templates mode="#current" select="@*">
  159. <xsl:with-param name="p5dkp:ditafiles.xml" select="$p5dkp:ditafiles.xml"/>
  160. <xsl:with-param name="d2a:keyref.element.loop" select="$d2a:keyref.element.loop"/>
  161. </xsl:apply-templates>
  162. <xsl:apply-templates mode="#current">
  163. <xsl:with-param name="p5dkp:ditafiles.xml" select="$p5dkp:ditafiles.xml"/>
  164. <xsl:with-param name="d2a:keyref.element.loop" select="$d2a:keyref.element.loop"/>
  165. </xsl:apply-templates>
  166. </xsl:copy>
  167. </xsl:template>
  168. <xsl:template mode="d2a:keyref.element.synph" match="@*"/>
  169. <xsl:template mode="d2a:keyref.element.synph" match="@keyref">
  170. <xsl:param name="p5dkp:ditafiles.xml" required="yes"/>
  171. <xsl:param name="d2a:keyref.element.loop" required="yes"/>
  172. <xsl:variable name="keyref" select="."/>
  173. <d2a:keyref.element.synph debug="#139wyjasniamy klucz" klucz="{.}">
  174. <DEBUG140>
  175. <xsl:copy-of select="d2a:keyref.element($p5dkp:ditafiles.xml/ancestor-or-self::*,.,$d2a:keyref.element.loop)" copy-namespaces="no"/>
  176. </DEBUG140>
  177. <xsl:if test="number($d2a:debug) &gt; 3"><DEBUG145>
  178. <xsl:for-each select="$p5dkp:ditafiles.xml/ancestor-or-self::*">
  179. <name name="{name()}">
  180. <xsl:for-each select="descendant-or-self::*">
  181. <xsl:choose>
  182. <xsl:when test="*[@map.keys.eval=$keyref]">
  183. <OOOKS150>
  184. <xsl:copy-of select="."/>
  185. </OOOKS150>
  186. </xsl:when>
  187. </xsl:choose>
  188. </xsl:for-each>
  189. </name>
  190. </xsl:for-each>
  191. </DEBUG145></xsl:if>
  192. </d2a:keyref.element.synph>
  193. </xsl:template>
  194. <xsl:template mode="d2a:keyref.element.synph" match="text()[parent::keyword]">
  195. <xsl:copy-of select="."/>
  196. </xsl:template>
  197. <xsl:template mode="d2a:keyref.element.synph" match="text()|comment()"/>
  198. </xsl:stylesheet>