p5dkp.ditafiles.wordindex.merged.ditafiles.topic.relpath.xsl 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  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:p5ant-interface="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/ant_interface/ant_interface.xsd"
  6. xmlns:p5suis="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/system_ui_info_speech/system_ui_info_speech.xsd"
  7. exclude-result-prefixes="xs p5dkp p5ant-interface p5suis"
  8. version="2.0">
  9. <xsl:output indent="yes" method="xml" />
  10. <xsl:strip-space elements="*"/>
  11. <xsl:function name="p5dkp:ditafiles.wordindex.index.file.href"> <!-- do linkowania wewnetrznych/tworzonych dita -->
  12. <xsl:param name="level"/>
  13. <xsl:param name="levels"/>
  14. <xsl:param name="entity"/>
  15. <xsl:param name="ext"/>
  16. <!--<xsl:param name="p5dkp:ditafiles.wordindex.merge.ditafiles"/>-->
  17. <xsl:variable name="out">
  18. <xsl:for-each select="$levels//level">
  19. <xsl:choose>
  20. <xsl:when test="position() = 1 and position() = last()">
  21. <xsl:value-of select="concat($p5dkp.dita_root_path,'/p5dkp.ditafiles.wordindex/',p5dkp:ditafiles.wordindex.entity.filename(@name,$entity,$ext))"/>
  22. </xsl:when>
  23. <xsl:when test="position() = 1">
  24. <xsl:value-of select="concat($p5dkp.dita_root_path,'/p5dkp.ditafiles.wordindex/',@name)"/>
  25. </xsl:when>
  26. <xsl:when test="position() = last() or @name = $level">
  27. <xsl:value-of select="concat('/',p5dkp:ditafiles.wordindex.entity.filename(@name,$entity,$ext))"/>
  28. </xsl:when>
  29. <xsl:otherwise>
  30. <xsl:value-of select="concat('/',@name)"/>
  31. </xsl:otherwise>
  32. </xsl:choose>
  33. </xsl:for-each>
  34. </xsl:variable>
  35. <xsl:value-of select="$out"/>
  36. </xsl:function>
  37. <xsl:function name="p5dkp:ditafiles.wordindex.index.file.href.rel">
  38. <xsl:param name="level"/>
  39. <xsl:param name="levels"/>
  40. <xsl:param name="entity"/>
  41. <xsl:param name="ext"/>
  42. <xsl:value-of select="concat(p5dkp:ditafiles.wordindex.index.file.href.rel($level,$levels,$entity),$ext)"/>
  43. </xsl:function>
  44. <xsl:function name="p5dkp:ditafiles.wordindex.index.file.href.rel"> <!-- do linkowania wewnetrznych/tworzonych dita - zaklada, ze plik moze byc zamapowany z podkatalogu, jak byl oryginalnie -->
  45. <xsl:param name="level"/>
  46. <xsl:param name="levels"/>
  47. <xsl:param name="p5dkp:ditafiles.file_from_fullpath"/>
  48. <!--<xsl:param name="p5dkp:ditafiles.wordindex.merge.ditafiles"/>-->
  49. <xsl:variable name="out">
  50. <xsl:for-each select="$levels//level">
  51. <xsl:choose>
  52. <xsl:when test="position() = 1 and position() = last()">
  53. <xsl:value-of select="concat($p5dkp.dita_root_path,'/p5dkp.ditafiles.wordindex/',$p5dkp:ditafiles.file_from_fullpath)"/>
  54. </xsl:when>
  55. <xsl:when test="position() = 1">
  56. <xsl:value-of select="concat($p5dkp.dita_root_path,'/p5dkp.ditafiles.wordindex/',@name)"/>
  57. </xsl:when>
  58. <xsl:when test="position() = last() or @name = $level">
  59. <xsl:value-of select="concat('/',@name,'/',$p5dkp:ditafiles.file_from_fullpath)"/>
  60. </xsl:when>
  61. <xsl:otherwise>
  62. <xsl:value-of select="concat('/',@name)"/>
  63. </xsl:otherwise>
  64. </xsl:choose>
  65. </xsl:for-each>
  66. </xsl:variable>
  67. <xsl:value-of select="$out"/>
  68. </xsl:function>
  69. <xsl:function name="p5dkp:ditafiles.wordindex.index.file.reldir"> <!-- do linkowania wewnetrznych/tworzonych dita -->
  70. <xsl:param name="level"/>
  71. <xsl:param name="levels"/>
  72. <!--<xsl:param name="p5dkp:ditafiles.wordindex.merge.ditafiles"/>-->
  73. <xsl:variable name="out">
  74. <xsl:for-each select="$levels//level">
  75. <xsl:choose>
  76. <xsl:when test="position() = 1 and position() = last()">
  77. <xsl:value-of select="concat($p5dkp.dita_root_path,'/p5dkp.ditafiles.wordindex/')"/>
  78. </xsl:when>
  79. <xsl:when test="position() = 1">
  80. <xsl:value-of select="concat($p5dkp.dita_root_path,'/p5dkp.ditafiles.wordindex/')"/>
  81. </xsl:when>
  82. <xsl:when test="position() = last() or @name = $level">
  83. <xsl:value-of select="'/'"/>
  84. </xsl:when>
  85. <xsl:otherwise>
  86. <xsl:value-of select="'/'"/>
  87. </xsl:otherwise>
  88. </xsl:choose>
  89. </xsl:for-each>
  90. </xsl:variable>
  91. <xsl:value-of select="$out"/>
  92. </xsl:function>
  93. <xsl:function name="p5dkp:ditafiles.wordindex.join.fileindex">
  94. <xsl:param name="p5dkp:ditafiles.wordindex.xml.thread.no"/>
  95. <xsl:param name="p5dkp:ditafiles.wordindex.xml.thread.no.foreign"/>
  96. <xsl:param name="p5dkp:ditafiles.wordindex.xml.thread.no.merge.no"/>
  97. <xsl:value-of select="concat($p5dkp:ditafiles.wordindex.xml.thread.no,'_',$p5dkp:ditafiles.wordindex.xml.thread.no.foreign,'_',$p5dkp:ditafiles.wordindex.xml.thread.no.merge.no)"/>
  98. </xsl:function>
  99. <xsl:function name="p5dkp:ditafiles.wordindex.join.fileindex">
  100. <xsl:param name="p5dkp:ditafiles.wordindex.merge.ditafiles"/>
  101. <xsl:value-of select="concat($p5dkp:ditafiles.wordindex.merge.ditafiles/@p5dkp:ditafiles.wordindex.xml.thread.no,'.',$p5dkp:ditafiles.wordindex.merge.ditafiles/@p5dkp:ditafiles.wordindex.xml.thread.no.foreign,'.',$p5dkp:ditafiles.wordindex.merge.ditafiles/@p5dkp:ditafiles.wordindex.xml.thread.no.merge.no,'.')"/>
  102. </xsl:function>
  103. <xsl:function name="p5dkp:ditafiles.wordindex.entity.filename">
  104. <xsl:param name="name"/>
  105. <xsl:param name="entity"/>
  106. <xsl:param name="ext"/>
  107. <xsl:value-of select="concat($name,'.',$entity,'.',$ext)"/>
  108. </xsl:function>
  109. <xsl:function name="p5dkp:ditafiles.wordindex.index.file.relate.href.parent">
  110. <xsl:param name="levels.current"/>
  111. <xsl:param name="levels.parent"/>
  112. <xsl:param name="entity"/>
  113. <xsl:param name="ext"/>
  114. <xsl:variable name="count.levels.current" select="count($levels.current//level)"/>
  115. <xsl:variable name="count.levels.parent" select="count($levels.parent//level)"/>
  116. <xsl:variable name="name" select="$levels.parent//level[ position() = last()]/@name"/>
  117. <xsl:for-each select="$count.levels.parent to $count.levels.current ">
  118. <!--<xsl:value-of select="current()"/>-->
  119. <xsl:value-of select="'../'"/><xsl:value-of select="$levels.current//level[ $count.levels.current - current()]"/>
  120. </xsl:for-each>
  121. <!--<xsl:for-each select="$levels.parent//level">
  122. <xsl:choose>
  123. <xsl:when test="position() &gt; $count.levels.current"/>
  124. <xsl:otherwise><xsl:value-of select="'../'"/></xsl:otherwise>
  125. </xsl:choose>
  126. </xsl:for-each>-->
  127. <xsl:value-of select="p5dkp:ditafiles.wordindex.entity.filename($name,$entity,$ext)"/>
  128. </xsl:function>
  129. <xsl:function name="p5dkp:ditafiles.wordindex.index.file.relate.href.child">
  130. <xsl:param name="levels.current"/>
  131. <xsl:param name="levels.child"/>
  132. <xsl:param name="entity"/>
  133. <xsl:param name="ext"/>
  134. <xsl:variable name="count.levels.current" select="count($levels.current//level)"/>
  135. <xsl:variable name="count.levels.child" select="count($levels.child//level)"/>
  136. <xsl:variable name="name" select="$levels.child//level[ position() = last()]/@name"/>
  137. <xsl:for-each select="$levels.child//level">
  138. <xsl:choose>
  139. <xsl:when test="position() &gt; $count.levels.current"/>
  140. <xsl:otherwise><xsl:value-of select="concat(@name,'/')"/></xsl:otherwise>
  141. </xsl:choose>
  142. </xsl:for-each>
  143. <xsl:value-of select="p5dkp:ditafiles.wordindex.entity.filename($name,$entity, p5dkp:escapeit($ext))"/>
  144. </xsl:function>
  145. <xsl:function name="p5dkp:ditafiles.wordindex.add.sublevel">
  146. <xsl:param name="new.levelname"/>
  147. <xsl:param name="level.current"/>
  148. <xsl:param name="levels.current"/>
  149. <levels>
  150. <xsl:for-each select="$levels.current//level">
  151. <xsl:copy-of select="."/>
  152. </xsl:for-each>
  153. <level name="{$new.levelname}"/>
  154. </levels>
  155. </xsl:function>
  156. <xsl:function name="p5dkp:ditafiles.wordindex.index.file.href.ext.A">
  157. <xsl:param name="level"/>
  158. <xsl:param name="levels"/>
  159. <xsl:param name="p5dkp:ditafiles.wordindex.merge.ditafiles"/>
  160. <xsl:param name="HIT"/>
  161. <xsl:value-of select="p5dkp:ditafiles.func.merge_path.string(p5dkp:ditafiles.dir_from_fullpath($p5dkp:ditafiles.wordindex.merge.ditafiles/@p5ant-interface:dir.filename),p5dkp:ditafiles.file_from_fullpath($p5dkp:ditafiles.wordindex.merge.ditafiles/@p5ant-interface:dir.filename),p5dkp:ditafiles.dir_from_fullpath( p5dkp:ditafiles.wordindex.index.file.href($level,$levels,'',$level)),$level)"/>
  162. </xsl:function>
  163. <xsl:function name="p5dkp:ditafiles.wordindex.index.file.href.ext.A.rel">
  164. <xsl:param name="level"/>
  165. <xsl:param name="levels"/>
  166. <xsl:param name="p5dkp:ditafiles.wordindex.merge.ditafiles"/>
  167. <xsl:param name="HIT"/>
  168. <xsl:value-of select="p5dkp:ditafiles.func.merge_path.string(p5dkp:ditafiles.dir_from_fullpath($p5dkp:ditafiles.wordindex.merge.ditafiles/@p5ant-interface:dir.filename),p5dkp:ditafiles.file_from_fullpath($p5dkp:ditafiles.wordindex.merge.ditafiles/@p5ant-interface:dir.filename),p5dkp:ditafiles.dir_from_fullpath( p5dkp:ditafiles.wordindex.index.file.href.rel($level,$levels,$HIT/@p5ant-interface:dir.filename.remote)),'')"/>
  169. </xsl:function>
  170. <xsl:function name="p5dkp:ditafiles.wordindex.index.file.href.ext.rel.result-document">
  171. <xsl:param name="level"/>
  172. <xsl:param name="levels"/>
  173. <xsl:param name="p5dkp:ditafiles.wordindex.merge.ditafiles.text"/>
  174. <xsl:param name="result-document"/>
  175. <xsl:value-of select="p5dkp:ditafiles.func.merge_path.string(p5dkp:ditafiles.dir_from_fullpath($p5dkp:ditafiles.wordindex.merge.ditafiles.text),p5dkp:ditafiles.file_from_fullpath($p5dkp:ditafiles.wordindex.merge.ditafiles.text),$result-document,'')"/>
  176. </xsl:function>
  177. <xsl:function name="p5dkp:ditafiles.wordindex.index.file.href.ext.rel.result-document.debug">
  178. <xsl:param name="level"/>
  179. <xsl:param name="levels"/>
  180. <xsl:param name="p5dkp:ditafiles.wordindex.merge.ditafiles.text"/>
  181. <xsl:param name="result-document"/>
  182. <xsl:copy-of select="p5dkp:ditafiles.func.merge_path(p5dkp:ditafiles.dir_from_fullpath($p5dkp:ditafiles.wordindex.merge.ditafiles.text),p5dkp:ditafiles.file_from_fullpath($p5dkp:ditafiles.wordindex.merge.ditafiles.text),$result-document,'')"/>
  183. </xsl:function>
  184. <xsl:function name="p5dkp:ditafiles.wordindex.index.file.href.ext.A.rel.debug">
  185. <xsl:param name="level"/>
  186. <xsl:param name="levels"/>
  187. <xsl:param name="p5dkp:ditafiles.wordindex.merge.ditafiles"/>
  188. <xsl:param name="HIT"/>
  189. <xsl:copy-of select="p5dkp:ditafiles.func.merge_path(p5dkp:ditafiles.dir_from_fullpath($p5dkp:ditafiles.wordindex.merge.ditafiles/@p5ant-interface:dir.filename),p5dkp:ditafiles.file_from_fullpath($p5dkp:ditafiles.wordindex.merge.ditafiles/@p5ant-interface:dir.filename),p5dkp:ditafiles.dir_from_fullpath( p5dkp:ditafiles.wordindex.index.file.href.rel($level,$levels,$HIT/@p5ant-interface:dir.filename.remote)),'')"/>
  190. </xsl:function>
  191. <xsl:function name="p5dkp:ditafiles.wordindex.index.file.href.ext.B">
  192. <xsl:param name="level"/>
  193. <xsl:param name="levels"/>
  194. <xsl:param name="p5dkp:ditafiles.wordindex.merge.ditafiles"/>
  195. <xsl:param name="HIT"/>
  196. <xsl:value-of select="p5dkp:ditafiles.func.merge_path.string(p5dkp:ditafiles.dir_from_fullpath($HIT/@p5ant-interface:dir.filename.remote),p5dkp:ditafiles.file_from_fullpath($HIT/@p5ant-interface:dir.filename.remote),p5dkp:ditafiles.dir_from_fullpath( p5dkp:ditafiles.wordindex.index.file.href($level,$levels,'',$level)),$level)"/>
  197. </xsl:function>
  198. <xsl:function name="p5dkp:ditafiles.wordindex.index.file.href.ext.B.rel">
  199. <xsl:param name="level"/>
  200. <xsl:param name="levels"/>
  201. <xsl:param name="p5dkp:ditafiles.wordindex.merge.ditafiles"/>
  202. <xsl:param name="HIT"/>
  203. <xsl:value-of select="p5dkp:ditafiles.func.merge_path.string(p5dkp:ditafiles.dir_from_fullpath($HIT/@p5ant-interface:dir.filename.remote),p5dkp:ditafiles.file_from_fullpath($HIT/@p5ant-interface:dir.filename.remote),p5dkp:ditafiles.dir_from_fullpath( p5dkp:ditafiles.wordindex.index.file.href.rel($level,$levels,$HIT/@p5ant-interface:dir.filename.remote)),'')"/>
  204. </xsl:function>
  205. <xsl:function name="p5dkp:ditafiles.wordindex.index.file.href.ext.B.rel.debug">
  206. <xsl:param name="level"/>
  207. <xsl:param name="levels"/>
  208. <xsl:param name="p5dkp:ditafiles.wordindex.merge.ditafiles"/>
  209. <xsl:param name="HIT"/>
  210. <xsl:copy-of select="p5dkp:ditafiles.func.merge_path(p5dkp:ditafiles.dir_from_fullpath($HIT/@p5ant-interface:dir.filename.remote),p5dkp:ditafiles.file_from_fullpath($HIT/@p5ant-interface:dir.filename.remote),p5dkp:ditafiles.dir_from_fullpath( p5dkp:ditafiles.wordindex.index.file.href.rel($level,$levels,$HIT/@p5ant-interface:dir.filename.remote)),'')"/>
  211. </xsl:function>
  212. </xsl:stylesheet>