p5dkp.ditafiles.wordindex.merged.ditafiles.xsl 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  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. exclude-result-prefixes="xs"
  7. version="2.0">
  8. <xsl:output indent="yes"/>
  9. <xsl:strip-space elements="*"/>
  10. <xsl:param name="p5dkp:ditafiles.wordindex.xml.thread.count" required="yes"/> <!-- ilosc rownoleglych zapodan -->
  11. <xsl:param name="p5dkp:ditafiles.wordindex.xml.thread.no" required="yes"/> <!-- numer procesu -->
  12. <xsl:param name="p5dkp:ditafiles.wordindex.xml.thread.no.foreign" required="yes"/>
  13. <xsl:param name="p5dkp:ditafiles.wordindex.xml.thread.no.merge.count" required="yes"/> <!-- ilosc rownoleglych zapodan merge -->
  14. <xsl:param name="p5dkp:ditafiles.wordindex.xml.thread.no.merge.no" required="yes"/> <!-- numer procesu merge -->
  15. <xsl:param name="p5dkp.ditafiles.wordindex.merged.ditafiles.index.dir" required="yes"/> <!-- indeksownae nazwy -->
  16. <xsl:template mode="p5dkp:ditafiles.wordindex.merged.ditafiles.xml" match="p5dkp:ditafiles.wordindex.strings.merge.xml">
  17. <p5dkp:ditafiles.wordindex.merged.ditafiles.xml>
  18. <xsl:attribute name="p5dkp:ditafiles.wordindex.xml.thread.count" select="$p5dkp:ditafiles.wordindex.xml.thread.count"/>
  19. <xsl:attribute name="p5dkp:ditafiles.wordindex.xml.thread.no" select="$p5dkp:ditafiles.wordindex.xml.thread.no"/>
  20. <xsl:attribute name="p5dkp:ditafiles.wordindex.xml.thread.no.foreign" select="$p5dkp:ditafiles.wordindex.xml.thread.no.foreign"/>
  21. <xsl:attribute name="p5dkp:ditafiles.wordindex.xml.thread.no.merge.count" select="$p5dkp:ditafiles.wordindex.xml.thread.no.merge.count"/>
  22. <xsl:attribute name="p5dkp:ditafiles.wordindex.xml.thread.no.merge.no" select="$p5dkp:ditafiles.wordindex.xml.thread.no.merge.no"/>
  23. <xsl:attribute name="TEST28">TEST2259</xsl:attribute>
  24. <xsl:copy-of select="@*"/>
  25. <xsl:apply-templates mode="#current"/>
  26. <xsl:call-template name="p5dkp:ditafiles.wordindex.merged.ditafiles.index.dir">
  27. <xsl:with-param name="p5dkp:ditafiles.wordindex.strings.merge.xml" select="."/>
  28. </xsl:call-template>
  29. </p5dkp:ditafiles.wordindex.merged.ditafiles.xml>
  30. </xsl:template>
  31. <xsl:function name="p5dkp:ditafiles.index">
  32. <xsl:param name="HIT.s.text"/>
  33. <xsl:value-of select="concat($p5dkp.ditafiles.wordindex.merged.ditafiles.index.dir,'/',$HIT.s.text,',',$p5dkp:ditafiles.wordindex.xml.thread.no,'.',$p5dkp:ditafiles.wordindex.xml.thread.no.foreign,',',$p5dkp:ditafiles.wordindex.xml.thread.no.merge.no,'.xml')"/>
  34. </xsl:function>
  35. <xsl:template name="p5dkp:ditafiles.wordindex.merged.ditafiles.index.dir">
  36. <xsl:param name="p5dkp:ditafiles.wordindex.strings.merge.xml" required="yes"/>
  37. <p5dkp:ditafiles.wordindex.merged.ditafiles.index.dir>
  38. <xsl:for-each-group select="$p5dkp:ditafiles.wordindex.strings.merge.xml/ditafiles.wordindex.merge/HIT/HIT.s" group-by="text()">
  39. <xsl:variable name="p5dkp:ditafiles.index">
  40. <p5dkp:ditafiles.index>
  41. <xsl:attribute name="text" select="text()"/>
  42. <xsl:attribute name="p5dkp:ditafiles.wordindex.merge.ditafiles.hit.count" select="count(current-group())"/>
  43. <xsl:attribute name="p5dkp:ditafiles.wordindex.merge.ditafiles.hit.s.sum.text.len" select="sum(current-group()/string-length(text()))"/>
  44. <xsl:attribute name="generate_id_53" select=" concat('generate_id_53_',$p5dkp:ditafiles.wordindex.xml.thread.no,'_',$p5dkp:ditafiles.wordindex.xml.thread.no.merge.no,'_',$p5dkp:ditafiles.wordindex.xml.thread.no.foreign,'_',generate-id())"/>
  45. <xsl:for-each-group select="current-group()/ancestor-or-self::p5dkp:ditafiles.wordindex.merge" group-by="@p5ant-interface:dir.filename">
  46. <p5ant-interface:dir.filename>
  47. <xsl:attribute name="generate_id_55" select=" concat('generate_id_55_',$p5dkp:ditafiles.wordindex.xml.thread.no,'_',$p5dkp:ditafiles.wordindex.xml.thread.no.merge.no,'_',$p5dkp:ditafiles.wordindex.xml.thread.no.foreign,'_',generate-id())"/>
  48. <xsl:attribute name="p5ant-interface:dir.filename" select="@p5ant-interface:dir.filename"/>
  49. <xsl:attribute name="p5dkp:ditafiles.wordindex.merge.ditafiles.hit.count" select="count(current-group())"/>
  50. <xsl:attribute name="p5dkp:ditafiles.wordindex.merge.ditafiles.hit.s.sum.text.len" select="sum(current-group()/string-length(text()))"/>
  51. <xsl:copy-of select="p5dkp:ditafiles.wordindex.audience" copy-namespaces="no"/>
  52. <xsl:copy-of select="p5dkp:ditafiles.wordindex.audience.map.path" copy-namespaces="no"/>
  53. </p5ant-interface:dir.filename>
  54. </xsl:for-each-group>
  55. </p5dkp:ditafiles.index>
  56. </xsl:variable>
  57. <xsl:copy-of select="$p5dkp:ditafiles.index"/>
  58. <xsl:result-document href="{p5dkp:ditafiles.index(HIT.s/text())}" >
  59. <xsl:copy-of select="$p5dkp:ditafiles.index"></xsl:copy-of>
  60. </xsl:result-document>
  61. </xsl:for-each-group>
  62. </p5dkp:ditafiles.wordindex.merged.ditafiles.index.dir>
  63. </xsl:template>
  64. <xsl:template name="p5dkp:ditafiles.wordindex.index">
  65. <xsl:param name="HIT" required="yes"/>
  66. <HIT>
  67. <xsl:attribute name="generate_id_76" select=" concat('generate_id_76_',$p5dkp:ditafiles.wordindex.xml.thread.no,'_',$p5dkp:ditafiles.wordindex.xml.thread.no.merge.no,'_',$p5dkp:ditafiles.wordindex.xml.thread.no.foreign,'_',generate-id())"/>
  68. <xsl:attribute name="p5dkp:ditafiles.wordindex.merge.ditafiles.hit.count" select="count(current-group())"/>
  69. <xsl:attribute name="p5dkp:ditafiles.wordindex.merge.ditafiles.hit.s.sum.text.len" select="sum(current-group()/HIT.s/string-length(text()))"/>
  70. <xsl:attribute name="p5dkp:ditafiles.wordindex.merge.ditafiles.hit.s.text" select="HIT.s/text()"/>
  71. <xsl:attribute name="p5dkp:ditafiles.wordindex.merge.ditafiles.hit.s.texts"><xsl:for-each select="HIT.s/text()"><xsl:value-of select="."/><xsl:text> </xsl:text></xsl:for-each></xsl:attribute>
  72. <xsl:attribute name="p5dkp:ditafiles.wordindex.merge.ditafiles.hit.ss.len.sum" select="sum(current-group()/HIT.ss/number(@len))"/>
  73. <xsl:attribute name="p5dkp:ditafiles.wordindex.merge.ditafiles.hit.ss.len.max" select="max(current-group()/HIT.ss/number(@len))"/>
  74. <xsl:attribute name="p5dkp:ditafiles.wordindex.merge.ditafiles.hit.ss.len.avg" select="avg(current-group()/HIT.ss/number(@len))"/>
  75. <xsl:attribute name="p5dkp:ditafiles.wordindex.merge.ditafiles.hit.t.p.len.sum" select="sum(current-group()/HIT.t.p/number(@len))"/>
  76. <xsl:attribute name="p5dkp:ditafiles.wordindex.merge.ditafiles.hit.t.p.len.max" select="max(current-group()/HIT.t.p/number(@len))"/>
  77. <xsl:attribute name="p5dkp:ditafiles.wordindex.merge.ditafiles.hit.t.p.len.avg" select="avg(current-group()/HIT.t.p/number(@len))"/>
  78. <xsl:attribute name="p5ant-interface:dir.filename.remote" select="@p5ant-interface:dir.filename.remote"/>
  79. <!--<xsl:copy-of select="$HIT/preceding-sibling::p5dkp:ditafiles.wordindex.audience.map.path[1]"/>-->
  80. <!--<xsl:copy-of select="$HIT/preceding-sibling::p5dkp:ditafiles.wordindex.audience[1]"/>-->
  81. </HIT>
  82. </xsl:template>
  83. <xsl:template mode="p5dkp:ditafiles.wordindex.merged.ditafiles.xml" match="p5dkp:ditafiles.wordindex.merge[HIT]">
  84. <p5dkp:ditafiles.wordindex.merge.ditafiles>
  85. <xsl:copy-of select="@p5ant-interface:dir.filename"/>
  86. <xsl:attribute name="generate_id_96" select=" concat('generate_id_96_',$p5dkp:ditafiles.wordindex.xml.thread.no,'_',$p5dkp:ditafiles.wordindex.xml.thread.no.merge.no,'_',$p5dkp:ditafiles.wordindex.xml.thread.no.foreign,'_',generate-id())"/>
  87. <xsl:for-each-group select="HIT" group-by="@p5ant-interface:dir.filename.remote">
  88. <xsl:copy-of select="../p5dkp:ditafiles.wordindex.audience.map.path[1]" copy-namespaces="no"/>
  89. <xsl:copy-of select="../p5dkp:ditafiles.wordindex.audience[1]" copy-namespaces="no"/>
  90. <xsl:call-template name="p5dkp:ditafiles.wordindex.index">
  91. <xsl:with-param name="HIT" select="."/>
  92. </xsl:call-template>
  93. </xsl:for-each-group>
  94. </p5dkp:ditafiles.wordindex.merge.ditafiles>
  95. </xsl:template>
  96. <xsl:template mode="p5dkp:ditafiles.wordindex.merged.ditafiles.xml" match="p5dkp:ditafiles.wordindex.audience|p5dkp:ditafiles.wordindex.audience.map.path">
  97. <xsl:copy-of select="."/>
  98. </xsl:template>
  99. <xsl:template mode="p5dkp:ditafiles.wordindex.merged.ditafiles.xml" match="comment()|text()"/>
  100. <xsl:template mode="p5dkp:ditafiles.wordindex.merged.ditafiles.xml" match="*"/>
  101. </xsl:stylesheet>