p5dkp.ditafiles.say.xsl 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  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:p5bws="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/WPS_Functions.xsd"
  5. xmlns:system_cache__appinfo="http://biuro.biall-net.pl/xmlschema_procesy5/default_db_xml_cache/appinfo.xsd"
  6. xmlns:p5dkp="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/dita_kosztorys_projektowy/p5dkp.xsd"
  7. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  8. xmlns:p5suis="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/system_ui_info_speech/system_ui_info_speech.xsd"
  9. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  10. xmlns:p5xsda="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/xsd_asserts/p5xsda.xsd"
  11. xmlns:ditaarch="http://dita.oasis-open.org/architecture/2005/"
  12. xmlns:system_cache__dita="http://biuro.biall-net.pl/xmlschema_procesy5/default_db_xml_cache/dita.xsd"
  13. xmlns:p5ant-interface="http://biuro.biall-net.pl/xmlschema_procesy5/WPS_Functions/ant_interface/ant_interface.xsd"
  14. exclude-result-prefixes="xs ditaarch"
  15. version="2.0">
  16. <xsl:include href="p5dkp.dita_root.ditamap.used.ditaval.xsl"/>
  17. <xsl:output indent="yes" method="xml" exclude-result-prefixes="ditaarch"/>
  18. <!--<xsl:output indent="yes" method="xml" standalone="no" doctype-public="-//OASIS//DTD DITA Glossary Group//EN" doctype-system="glossgroup.dtd"/>-->
  19. <xsl:strip-space elements="*"/>
  20. <xsl:param name="p5dkp.ditafiles.filelist.xml" required="yes"/>
  21. <xsl:param name="dita_out_dir" required="yes"/>
  22. <xsl:param name="p5dkp.dita_root.ditamap.dir" required="yes"/>
  23. <xsl:template name="p5dkp:ditafiles.say.xml.analyze">
  24. <xsl:for-each-group select=".//*" group-by="name()">
  25. <p5dkp:ditafiles.say.xml.analyze>
  26. <xsl:attribute name="local-name" select="local-name()"/>
  27. <xsl:attribute name="value" select="text()"/>
  28. <xsl:choose>
  29. <xsl:when test="local-name()='map.keys.eval'"/>
  30. <xsl:when test="local-name()='ph'"/>
  31. <xsl:when test="local-name()='ditafiles.file' and @format = 'ditamap'">
  32. <p5suis:say.PL>
  33. Użyto <xsl:value-of select="count(current-group())"/> map
  34. </p5suis:say.PL>
  35. </xsl:when>
  36. <xsl:when test="local-name()='keydef' ">
  37. <p5suis:say.PL>
  38. Zdefiniowano <xsl:value-of select="count(current-group())"/> kluczy.
  39. </p5suis:say.PL>
  40. </xsl:when>
  41. <xsl:when test="local-name()='xref' ">
  42. <p5suis:say.PL>
  43. Użyto <xsl:value-of select="count(current-group())"/> odniesień .
  44. </p5suis:say.PL>
  45. <!--<xsl:for-each-group select="current-group()" group-by="@keyref">
  46. <p5suis:say.PL>
  47. <xsl:choose>
  48. <xsl:when test="@keyref">
  49. Odniesień <xsl:value-of select="count(current-group())"/> do klucza p5:object <xsl:value-of select="@keyref"/>.
  50. </xsl:when>
  51. </xsl:choose>
  52. </p5suis:say.PL>
  53. </xsl:for-each-group>-->
  54. </xsl:when>
  55. <xsl:when test="local-name()='topicref'"/>
  56. <xsl:when test="local-name()='topichead'"/>
  57. <xsl:when test="local-name()='coderef'"/>
  58. <xsl:when test="local-name()='map.keys.keyscope'"/>
  59. <xsl:when test="local-name()='ditafiles.file.info'"/>
  60. <xsl:when test="local-name()='image' or local-name()='link'">
  61. <!--<p5suis:say.PL>
  62. Użyto <xsl:value-of select="count(current-group())"/> zdjęć
  63. </p5suis:say.PL>-->
  64. </xsl:when>
  65. <xsl:when test="name()='p5dkp:ditafiles.file'">
  66. <p5suis:say.PL>
  67. Użyto <xsl:value-of select="count(current-group())"/> plików DITA
  68. </p5suis:say.PL>
  69. </xsl:when>
  70. <xsl:otherwise>
  71. <p5suis:say.PL>
  72. Użyto <xsl:value-of select="count(current-group())"/> obiektów <xsl:value-of select="local-name()"/>
  73. </p5suis:say.PL>
  74. </xsl:otherwise>
  75. </xsl:choose>
  76. </p5dkp:ditafiles.say.xml.analyze>
  77. </xsl:for-each-group>
  78. </xsl:template>
  79. <xsl:template name="p5dkp:ditafiles.error.not_aviable.say.analyze">
  80. <p5dkp:ditafiles.error.not_aviable.say.analyze>
  81. <xsl:if test=".//p5dkp:ditafiles.file[p5dkp:ditafiles.file.info[@p5dkp:ditafiles.error.not_aviable]]">
  82. <p5suis:say.PL>
  83. Uwaga Uwaga
  84. </p5suis:say.PL>
  85. </xsl:if>
  86. <xsl:for-each-group select=".//p5dkp:ditafiles.file[p5dkp:ditafiles.file.info[@p5dkp:ditafiles.error.not_aviable]]" group-by="@p5dkp:true.path">
  87. <p5suis:say.PL>
  88. brakuje pliku p5:file <xsl:value-of select="@p5dkp:true.path"/> ilość <xsl:value-of select="count(current-group())"/>.
  89. </p5suis:say.PL>
  90. </xsl:for-each-group>
  91. </p5dkp:ditafiles.error.not_aviable.say.analyze>
  92. </xsl:template>
  93. <xsl:template name="p5dkp:ditafiles.file.duplicates.analyze">
  94. <p5dkp:ditafiles.file.duplicates.analyze>
  95. <xsl:for-each-group select=".//p5dkp:ditafiles.file" group-by="@p5dkp:true.path">
  96. <p5dkp:ditafiles.file>
  97. <xsl:copy-of select="@*"/>
  98. <xsl:variable name="p5dkp:true.path" select="@p5dkp:true.path"/>
  99. <xsl:attribute name="p5dkp:ditafiles.file.duplicates.analyze.map.count" select="count(current-group())"/>
  100. <xsl:for-each-group select="current-group()" group-by="ancestor-or-self::p5dkp:ditafiles.file[concat(@processing-role,'_')]"> <!-- ancestor-or-self::p5dkp:ditafiles.file[concat(@processing-role,'_')] -->
  101. <xsl:variable name="current" select="current-group()"/>
  102. <xsl:choose>
  103. <xsl:when test="ancestor-or-self::p5dkp:ditafiles.file[@processing-role]">
  104. <xsl:attribute name="p5dkp:ditafiles.file.duplicates.analyze.processing-role" select="ancestor-or-self::p5dkp:ditafiles.file[@processing-role]"/>
  105. </xsl:when>
  106. <!--<xsl:when test="descendant::p5dkp:ditafiles.file[@format='ditamap' ]"><!-\-[ descendant::p5dkp:ditafiles.file[@p5dkp:true.path= $p5dkp:true.path] ]-\->
  107. <xsl:attribute name="p5dkp:ditafiles.file.duplicates.analyze.descendant" select="descendant::p5dkp:ditafiles.file[@format='ditamap' ]/@p5dkp:true.path"/>
  108. </xsl:when>-->
  109. <xsl:when test="count(current-group()) &gt; 1">
  110. <p5dkp:ditafiles.file.duplicates.analyze_pos>
  111. <xsl:copy-of select="@p5dkp:true.path"/>
  112. <xsl:variable name="self_included" >
  113. <self_included>
  114. <xsl:for-each select="current-group()/ancestor-or-self::p5dkp:ditafiles.file[@format='ditamap'][1]">
  115. <xsl:choose>
  116. <xsl:when test="$current//ancestor-or-self::p5dkp:ditafiles.file[@p5dkp:true.path = current-group()/@p5dkp:true.path]">
  117. <analyze.map>
  118. <xsl:attribute name="p5dkp:ditafiles.file.duplicates.analyze.map.includes_self_path" select="$current//ancestor-or-self::p5dkp:ditafiles.file[@p5dkp:true.path = current-group()/@p5dkp:true.path]/@p5dkp:true.path"/>
  119. </analyze.map>
  120. </xsl:when>
  121. </xsl:choose>
  122. </xsl:for-each>
  123. </self_included>
  124. </xsl:variable>
  125. <xsl:for-each-group select="current-group()/ancestor-or-self::p5dkp:ditafiles.file[@format='ditamap'][1]" group-by="@p5dkp:true.path">
  126. <xsl:attribute name="p5dkp:ditafiles.file.duplicates.analyze.map.{position()}" select="@p5dkp:true.path"/>
  127. <xsl:choose>
  128. <xsl:when test="$current//ancestor-or-self::p5dkp:ditafiles.file[@p5dkp:true.path = current-group()/@p5dkp:true.path]">
  129. <xsl:attribute name="p5dkp:ditafiles.file.duplicates.analyze.map.{position()}.includes_self_path" select="$current//ancestor-or-self::p5dkp:ditafiles.file[@p5dkp:true.path = current-group()/@p5dkp:true.path]/@p5dkp:true.path"/>
  130. </xsl:when>
  131. </xsl:choose>
  132. </xsl:for-each-group>
  133. <xsl:copy-of select="$self_included"/>
  134. <p5dkp:ditafiles.file.duplicates.analyze.map.self_included>
  135. <xsl:choose>
  136. <xsl:when test="count(current-group()) &gt; count($self_included//analyze.map)">
  137. <xsl:attribute name="p5dkp:ditafiles.file.duplicates.analyze.map.self_included.less"> Mniej self included</xsl:attribute>
  138. <p5suis:say.PL>
  139. Podwójnie występujący plik p5:file <xsl:value-of select="@p5dkp:true.path"/> ilość <xsl:value-of select="count(current-group())"/>
  140. <xsl:choose>
  141. <xsl:when test="ancestor-or-self::p5dkp:ditafiles.file[@processing-role = 'resource-only']">
  142. procesowany jako zasób
  143. </xsl:when>
  144. <xsl:otherwise>.</xsl:otherwise>
  145. </xsl:choose>
  146. </p5suis:say.PL>
  147. </xsl:when>
  148. <xsl:when test="count(current-group()) &lt; count($self_included//analyze.map)">
  149. <xsl:attribute name="p5dkp:ditafiles.file.duplicates.analyze.map.self_included.more"> Wiecej self included</xsl:attribute>
  150. <p5suis:say.PL>
  151. Podwójnie występujący plik p5:file <xsl:value-of select="@p5dkp:true.path"/> ilość <xsl:value-of select="count(current-group())"/>
  152. <xsl:choose>
  153. <xsl:when test="ancestor-or-self::p5dkp:ditafiles.file[@processing-role = 'resource-only']">
  154. procesowany jako zasób
  155. </xsl:when>
  156. <xsl:otherwise>.</xsl:otherwise>
  157. </xsl:choose>
  158. </p5suis:say.PL>
  159. </xsl:when>
  160. </xsl:choose>
  161. </p5dkp:ditafiles.file.duplicates.analyze.map.self_included>
  162. <!--<xsl:for-each select="current-group()">
  163. <DBEUG_CURR2>
  164. <xsl:attribute name="pos" select="position()"/>
  165. <xsl:copy-of select="."/>
  166. </DBEUG_CURR2>
  167. </xsl:for-each>-->
  168. </p5dkp:ditafiles.file.duplicates.analyze_pos>
  169. </xsl:when>
  170. <xsl:otherwise>
  171. <xsl:copy>
  172. <xsl:copy-of select="@*"/>
  173. <xsl:attribute name="p5dkp:ditafiles.file.duplicates.analyze.map.count" select="count(current-group())"/>
  174. </xsl:copy>
  175. </xsl:otherwise>
  176. </xsl:choose>
  177. </xsl:for-each-group>
  178. </p5dkp:ditafiles.file>
  179. </xsl:for-each-group>
  180. </p5dkp:ditafiles.file.duplicates.analyze>
  181. </xsl:template>
  182. <xsl:template name="p5dkp:ditafiles.filelist.xml.analyze.not.used.ditafiles">
  183. <p5dkp:ditafiles.filelist.xml.analyze.not.used.ditafiles>
  184. <xsl:attribute name="open" select="$p5dkp.ditafiles.filelist.xml"/>
  185. <xsl:for-each select="doc($p5dkp.ditafiles.filelist.xml)//p5ant-interface:p5dg.file[ p5ant-interface:dir.filename[ contains(text(),$p5dkp.dita_root.ditamap.dir) ]]">
  186. <xsl:copy-of select="." copy-namespaces="no"/>
  187. </xsl:for-each>
  188. </p5dkp:ditafiles.filelist.xml.analyze.not.used.ditafiles>
  189. </xsl:template>
  190. <xsl:template mode="p5dkp:ditafiles.say.xml" match="p5dkp:ditafiles.xml">
  191. <p5dkp:ditafiles.say.xml>
  192. <xsl:call-template name="p5dkp:ditafiles.file.duplicates.analyze"/>
  193. <xsl:call-template name="p5dkp:ditafiles.error.not_aviable.say.analyze"/>
  194. <xsl:call-template name="p5dkp:ditafiles.audience.analyze"/>
  195. <xsl:result-document href="{$p5dkp.dita_root.ditamap.used.ditaval}">
  196. <xsl:call-template name="p5dkp:dita_root.ditamap.used.ditaval"/>
  197. </xsl:result-document>
  198. <!--<xsl:call-template name="p5dkp:ditafiles.say.xml.analyze"/>-->
  199. <xsl:call-template name="p5dkp:ditafiles.filelist.xml.analyze.not.used.ditafiles"/>
  200. </p5dkp:ditafiles.say.xml>
  201. </xsl:template>
  202. </xsl:stylesheet>